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

MySQL:Разлика между `... ADD INDEX(a); ... ADD INDEX(b);` и `... ADD INDEX(a,b);`?

Комбинираният ИНДЕКС е комбинация от клавишите "a" и "b". Той значително подобрява достъпа, ако „a“ или „a“ И „b“ са част от израза за търсене.

Този индекс не е полезен, ако предоставите само "b" във вашите SQL изрази.

Следователно може да е полезно да предоставите два различни индекса - но те трябва да използват различни имена.

В зависимост от моделите на достъп бих препоръчал индекс на "a" и "b" и допълнителен индекс на "b", ако това отговаря на вашите нужди.

Моля, имайте предвид, че всеки допълнителен индекс забавя базата данни при всички операции, които променят данните. Понякога е по-добре да държите някои индекси далеч. Обикновено е добър съвет да НЕ ИЗПОЛЗВАТЕ индекси в никоя колона на таблица.

Още един съвет:за да решите дали трябва да се използва INDEX(a,b) или INDEX(b,a), погледнете разпределението на вашите данни. Поставете стойностите с по-голямо разпространение на различни стойности в първата колона на индекса, за да увеличите селективността на този индекс. Тази стойност обикновено се базира на качеството на първия индексен елемент.

Например индекс на колони NAME и SEX трябва да бъде създаден като INDEX(NAME, SEX), защото има много повече имена от различен пол(и?).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да кодирам (utf8mb4) в Python

  2. потърсете тези записи, които имат стойност на колона, съдържа % знак в mysql

  3. Грешка при получаване на таблица не съществува, но таблицата съществува (ActiveRecord::StatementInvalid Mysql2::Error:Table не съществува)

  4. Мога ли да изпълня всяка програма извън mysql чрез mysql тригери?

  5. как да нулирам паролата си за mysql в mac os 10.13.3