MySQL 字首索引

2021-09-07 22:42:57 字數 646 閱讀 1113

mysql 字首索引能有效減小索引檔案的大小,提高索引的速度。但是字首索引也有它的壞處:mysql 不能在 order by 或 group by 中使用字首索引,也不能把它們用作覆蓋索引(covering index)。

建立字首索引的例子:

1

# 語法

2alter

table table_name add

key(column_name(prefix_length));34

# 示例

5alter

table city add

key(cityname(7));

計算全列選擇性的乙個例子:

1

# 全列選擇性

2select

count(distinct column_name) /

count(*) from

table_name;34

# 測試某一長度字首的選擇性

5select

count(distinct

left(column_name, prefix_length)) /

count(*) from table_name;

* 當字首的選擇性越接近全列選擇性的時候,索引效果越好。

mysql 建字首索引 MySQL 字首索引

檢視出現頻率 select count as cnt,city from sakila.city demo group by city order by cnt desc limit 10 1.select count distinct city count from sakila.city dem...

mysql 字首索引 語法 MySQL 字首索引

索引字首 使用 字串列的索引規範中的語法,您可以建立僅使用列首字元的索引 以這種方式僅索引列值的字首可以使索引檔案小得多。為a 或 column 編制索引時 必須為索引指定字首長度。例如 col name n nblobtext create table test blob col blob,ind...

mysql 字首索引 語法 mysql字首索引

應用場景 資料庫裡有個位址 address 字段,型別為varchar 100 業務決定了要經常根據address來進行查詢。確定選擇性 sql select count distinct address count as selectivity from info selectivity 0.87...