Как понять кардинальность в комбинированном первичном в MySQL

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

показать индекс из 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 

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

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

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


person Lawrance Zhang    schedule 31.10.2018    source источник


Ответы (1)


  • Мощность является приближением.
  • Кардинальность в многостолбцовом индексе не имеет большого значения.
  • Является ли некоторое подмножество этих 8 столбцов «уникальным»? Если это так, вы должны укоротить ПК.
  • Каковы типы данных столбцов? (Пожалуйста, укажите SHOW CREATE TABLE.)
  • В таблице около 31 млн строк? Если это так, то оценки указывают на то, что индекс уже был «уникальным». (Это предположение может быть ошибочным.)
  • Какая версия MySQL? (В последних двух основных версиях процедура получения статистики изменилась.)
  • Пожалуйста, объясните, что вы ожидаете делать с мощностями.
person Rick James    schedule 31.10.2018