1:查詢頻繁 2:區分度高 3:長度小 4: 盡量能覆蓋常用查詢欄位.
1: 索引長度直接影響索引檔案的大小,影響增刪改的速度,並間接影響查詢速度(占用記憶體多).
針對列中的值,從左往右擷取部分,來建索引
1: 截的越短, 重複度越高,區分度越小, 索引效果越不好
2: 截的越長, 重複度越低,區分度越高, 索引效果越好,但帶來的影響也越大--增刪改變慢,併間影響查詢速度.
所以, 要在 區分度 + 長度 兩者上,取得乙個平衡.
慣用手法: 擷取不同長度,並測試其區分度,
[sql]view plain
copy
select count(distinct left(word,6))/count(*) from dict;
+---------------------------------------+
| count(distinct left(word,6))/count(*) |
+---------------------------------------+
| 0.9992 |
+---------------------------------------+
擷取word字段長度,從1開始擷取,計算字元字首沒有重複的字元佔全部資料的比例
對於一般的系統應用: 區別度能達到0.1,索引的效能就可以接受.
MySQL索引的索引長度問題
mysql索引的索引長度問題 specified key was too long max key length is 1000 bytes.一 修改mysql的預設儲存引擎 1 檢視mysql儲存引擎命令,在mysql 提示符下搞入show engines 字段 support為 default表...
MySQL索引的索引長度問題
mysql的每個單錶中所建立的索引長度是有限制的,且對不同儲存引擎下的表有不同的限制。在myisam表中,建立組合索引時,建立的索引長度不能超過1000,注意這裡索引的長度的計算是根據表字段設定的長度來標量的,例如 create table test id int,name1 varchar 300...
mysql 索引長度
specified key was too long max key length is 767 bytes mysql在innodb引擎下的主鍵索引或者unique索引的最大長度為767bytes,在myisam下是1000bytes。當時我在建立unique索引的時候使用了兩個varchar 2...