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

B-дърво срещу хеш таблица

Можете да осъществявате достъп до елементите само чрез техния първичен ключ в хештаблица. Това е по-бързо, отколкото с алгоритъм на дърво (O(1) вместо log(n) ), но не можете да избирате диапазони (всичко между x и y ).Дървовидните алгоритми поддържат това в Log(n) докато хеш индексите могат да доведат до пълно сканиране на таблица O(n) .Също така постоянните допълнителни разходи за хеш индексите обикновено са по-големи (което не е фактор в тета нотацията, но все още съществува ).Също така алгоритмите на дървото обикновено са по-лесни за поддръжка, нарастват с данни, мащаб и т.н.

Хеш индексите работят с предварително дефинирани хеш размери, така че в крайна сметка получавате някои "кофи", където се съхраняват обектите. Тези обекти се повтарят отново, за да намерят наистина правилния в този дял.

Така че, ако имате малки размери, имате много режийни разходи за малки елементи, големите размери водят до по-нататъшно сканиране.

Алгоритмите на днешните хеш таблици обикновено се мащабират, но мащабирането може да бъде неефективно.

Въпреки това може да има момент, в който вашият индекс надвишава поносим размер в сравнение с вашите хеш размери и целият ви индекс трябва да бъде изграден отново. Обикновено това не е проблем, но за огромни-огромни-огромни бази данни това може да отнеме дни.

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

Ако обаче имате много точен случай на употреба и знаете точно какво и само какво ще ви е необходимо, можете да се възползвате от хеширане на индекси.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. странно - sql::SQLException на mysql не се улавя от своя тип, но се улавя като std::exception и се връща успешно

  2. Обобщена заявка без GROUP BY

  3. Свържете се с отдалечена база данни MySQL чрез Python

  4. актуализирайте две таблици наведнъж

  5. Избиране на всички съответни полета с помощта на MAX и GROUP BY