Как понять мощность в комбинированном первичном в MySQL - PullRequest
0 голосов
/ 31 октября 2018

Я запускаю команду:

Показать индекс из atpco_fare. atpco_r1_fare_cls;

И результат в таблице

Table, Non_unique, Key_name, Seq_in_index, Column_name, Collation, Cardinality, Sub_part, Packed, Null, Index_type, Comment, Index_comment, Visible 
atpco_r1_fare_cls   0   PRIMARY 1   tar_nbr A   7707    BTREE   YES 
atpco_r1_fare_cls   0   PRIMARY 2   carr_cd A   46531   BTREE   YES 
atpco_r1_fare_cls   0   PRIMARY 3   rule_nbr    A   426326  BTREE   YES 
atpco_r1_fare_cls   0   PRIMARY 4   fare_cls    A   30087162    BTREE   YES 
atpco_r1_fare_cls   0   PRIMARY 5   seq_nbr A   21610918    BTREE   YES 
atpco_r1_fare_cls   0   PRIMARY 6   mcn A   31260526    BTREE   YES 
atpco_r1_fare_cls   0   PRIMARY 7   eff_date    A   31260526    BTREE   YES 
atpco_r1_fare_cls   0   PRIMARY 8   proc_ind    A   31260526    BTREE   YES 

Я не понимаю мощности объединенного первичного ключа, так как он не показывает полностью, что с увеличением последовательности он должен быть скорее уникальным, чем меньшим. По крайней мере, не должно быть меньше, исходя из моего понимания индекса.

Первый вопрос: почему seq_nbr, который является порядковым номером, имеет меньшую мощность? На что это указывает?

Во-вторых, почему последние три имеют одинаковую мощность? На что это указывает?

1 Ответ

0 голосов
/ 31 октября 2018
  • Количество элементов является приблизительным.
  • Количество элементов в многоколоночном индексе имеет очень мало значения.
  • Является ли некоторое подмножество этих 8 столбцов "уникальным"? Если это так, вы должны сократить PK.
  • Каковы типы данных столбцов? (Пожалуйста, предоставьте SHOW CREATE TABLE.)
  • Есть ли около 31M строк в таблице? Если это так, то оценки указывают на то, что индекс уже «уникален». (Это предположение может быть неверным.)
  • Какая версия MySQL? (Порядок получения статистики изменился в последней паре основных версий.)
  • Пожалуйста, объясните, что вы ожидаете сделать с кардинальными числами.
...