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

намаляване на производителността на низовете като първични ключове?

DB трябва да поддържа B-дърво (или подобна структура) с ключа по начин, по който да ги поръчате.

Ако ключът е хеширан и съхранен в B-дървото, би било добре да проверите бързо уникалността на ключа - ключът все още може да се търси ефективно. Но няма да можете да търсите ефективно за обхват от данни (например с LIKE ), тъй като B-дървото вече не е подредено според стойността на низа.

Така че мисля, че повечето DB наистина съхраняват низа в B-дървото, което може (1) да заеме повече пространство отколкото числовите стойности и (2) изискват B-дървото да бъде ребалансирано ако ключовете са вмъкнати в произволен ред (няма идея за увеличаване на стойността, както при числовия pk).

наказанието на практика може да варира от незначително до огромно. Всичко зависи от употребата, броя на редовете, средния размер на низовия ключ, заявките, които обединяват таблицата и т.н.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. AVG() – Изчислете средната стойност на колона в MySQL

  2. Не е намерен доставчик на Entity Framework за доставчик на ADO.NET „MySql.Data.MySqlClient“

  3. 10 причини да се придържате към MySQL

  4. mysql Фатална грешка:не може да задели памет за буферния пул

  5. MYSQL изход в дървовиден формат ИЛИ Добавяне на ниво (Родител-Дете)