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

Всички колони на таблицата трябва да бъдат индексирани или не mysql база данни?

Създаването на индекс изисква допълнително дисково пространство и че твърде много индекси могат да причинят проблеми, произтичащи от ограниченията за размера на файловата система, трябва да се обмисли внимателно, за да се изберат правилните полета за индексиране.

Тъй като индексите се използват само за ускоряване на търсенето на съвпадащо поле в записите, логично е, че полетата за индексиране, използвани само за изход, биха били просто загуба на дисково пространство и време за обработка при извършване на операция вмъкване или изтриване и по този начин трябва да се избягва. Също така като се има предвид естеството на двоично търсене, кардиналността или уникалността на данните е важна. Индексирането на поле с мощност 2 ще раздели данните наполовина, докато кардиналитет от 1000 ще върне приблизително 1000 записа. При такава ниска мощност ефективността се намалява до линейно сортиране и оптимизаторът на заявки ще избегне използването на индекса, ако мощността е по-голяма от 30% от броя на записа, което на практика прави индекса загуба на място.

Така че е по-добре да добавите индексиране към група колони.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Йерархия много към много с множество родители - PHP, MySQL

  2. Изходният параметър на MySQLdb Stored Procedure Out не работи

  3. Добавяне на връзка едно към много към самореферентен родител/дете

  4. Как мога да използвам ако съществува за създаване или пускане на индекс в MySQL?

  5. Вмъкнете персийски текст в таблицата на mysql