Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak zoptymalizować indeksy mysql, aby operacje INSERT odbywały się szybko na dużej tabeli z częstymi zapisami i odczytami?

Operacje zapisu pojedynczego wiersza w tabeli danych nie zajmie 5 sekund, niezależnie od wielkości stołu.

Czy Twój indeks klastrowy jest oparty na polu sygnatury czasowej? Jeśli nie, to powinno być, więc nie piszesz gdzieś na środku stołu. Upewnij się również, że używasz tabel InnoDB - MyISAM nie jest zoptymalizowany pod kątem zapisów.

Proponowałbym napisać do dwóch tabele:jedna tabela długoterminowa, jedna tabela raportowania krótkoterminowego z niewielkim indeksowaniem lub bez indeksowania, które są następnie zrzucane w razie potrzeby.

Innym rozwiązaniem byłoby użycie bazy danych memcached lub bazy danych w pamięci dla danych raportowania na żywo, dzięki czemu nie ma trafienia na produkcyjną bazę danych.

Jeszcze jedna myśl:dokładnie, jak „na żywo” musi być którykolwiek z tych raportów? Być może pobieranie nowej listy na czas zamiast raz na co wystarczyłby widok strony.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PreparedStatement zgłasza błąd składni

  2. mysql jak znaleźć całkowitą liczbę wierszy potomnych w odniesieniu do rodzica

  3. Ustawianie limitu czasu php

  4. Dlaczego ten rodzaj w Solr nie działa?

  5. Najlepsze dopasowanie przy użyciu MySQL i PHP