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

Czy pomogłoby dodanie indeksu do kolumny BIGINT w MySQL?

Jeśli masz bardzo dużą tabelę, wyszukiwanie wartości, które nie są indeksowane, może być bardzo powolne. W terminologii MySQL ten rodzaj zapytania kończy się „skanowaniem tabeli”, co oznacza, że ​​musi testować kolejno każdy wiersz w tabeli. To oczywiście nie jest najlepszy sposób na zrobienie tego.

Dodanie indeksu pomoże w czytaniu prędkości, ale cena, którą płacisz, jest nieco wolniejsza zapis prędkości. Podczas optymalizacji zawsze istnieje kompromis, ale w twoim przypadku skrócenie czasu odczytu byłoby ogromne, podczas gdy wzrost czasu zapisu byłby marginalny.

Należy pamiętać, że dodanie indeksu do dużej tabeli może zająć dużo czasu, więc przetestuj to z danymi produkcyjnymi przed zastosowaniem go w systemie produkcyjnym. Tabela prawdopodobnie zostanie zablokowana na czas trwania ALTER TABLE oświadczenie.

Jak zawsze, użyj EXPLAIN na Twoje zapytania, aby określić ich strategię wykonania. W twoim przypadku byłoby to coś takiego:

EXPLAIN SELECT * FROM table1 WHERE my_big_number=19287319283784


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak uzyskać wynik zapytania select count(*) w PHP?

  2. OperationalError:(2002, Nie można połączyć się z lokalnym serwerem MySQL przez gniazdo '/var/run/mysqld/mysqld.sock' (2))

  3. Maksymalna długość nazwy tabeli w MySQL

  4. Sql Ansi do zarządzania wartościami DateTime

  5. Najlepsze praktyki w PHP i MySQL z międzynarodowymi ciągami