Mysql
 sql >> база данни >  >> RDS >> Mysql

Ще помогне ли да добавите индекс към колона BIGINT в MySQL?

Ако имате много голяма таблица, тогава търсенето на стойности, които не са индексирани, може да бъде изключително бавно. От гледна точка на MySQL този вид заявка завършва като „сканиране на таблица“, което е начин да се каже, че трябва да се тества срещу всеки ред в таблицата последователно. Това очевидно не е най-добрият начин да го направите.

Добавянето на индекс ще помогне при четене скорости, но цената, която плащате, е малко по-бавна пишете скорости. Винаги има компромис, когато се прави оптимизация, но във вашия случай намаляването на времето за четене би било огромно, докато увеличението на времето за запис би било незначително.

Имайте предвид, че добавянето на индекс към голяма таблица може да отнеме значително време, така че тествайте това спрямо производствени данни, преди да го приложите към вашата производствена система. Таблицата вероятно ще бъде заключена за времетраенето на ALTER TABLE изявление.

Както винаги, използвайте EXPLAIN на вашите заявки, за да определи стратегията им за изпълнение. Във вашия случай това би било нещо като:

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. Извличане на данни с йерархична структура в MySQL

  2. как мога да задам данни от базата данни в квадратчето за отметка, използвайки формуляр в zend framework 1.11

  3. Използвайте разделен със запетаи низ в `IN ()` в MySQL

  4. Как да създадете връзка в MySQL Workbench

  5. как да добавите дата и час с име на архивния файл с помощта на mysqldump от командния ред и да дефинирате пътя на архивния файл