#### 什么是前綴索引
通過字段前n位創建的索引就稱為“前綴索引”。如果一個字段內容的前邊的n位信息已經足夠標識當前的字段內容,就可以把字段的前n位獲得出來并創建索引,該索引占據空間更小、運行速度更快.
例如:
* **關**偉偉
* **關**小寶
* **呂**紀無
* **劉**尚香
* **王**云斐
以上4個記錄信息創建索引,完全可以把第一個字給獲得出來創建索引,第一個字完全可以唯一標識每個字段內容。
語法:
~~~
alter table 表名 add key (字段(前n位位數));
~~~
#### 到底前幾位可以唯一標識字段的內容?
獲取制作前綴索引的n的信息:
1. 去除字段重復內容并計算總數目.
2. 取字段的前(n)1、2、3.....位不重復的信息并計算總數目,n從1開始不斷累加,直到總數目 與 ①計算的總數目相等,此時n就是我們設計前綴索引的數字n信息.
mysql中截取字段的前n位信息,使用函數left(字段,長度).例如截取前5位信息: left(字段,5).
#### 制作前綴索引
計算全部字段不重復記錄的總條數:
~~~
select count(distinct 字段) from 表;
~~~
計算前n位不重復記錄的總條數,n從1開始累加:
~~~
select count(distinct left(字段,n)) from 表;
~~~
比較兩個統計的數據是否一致,如果一致就取N的值作為前綴索引. 前綴索引比普通索引速度要快很多.
- MySQL優化概述
- 存儲引擎的選擇
- innodb引擎
- myisam引擎
- memory引擎
- 查詢需優化語句
- 通用查詢日志
- 慢查詢日志
- profile機制
- 索引
- 索引基本介紹
- 索引類型
- 索引管理語法
- 創建索引主要事項
- 執行計劃
- 查看索引類型
- myisam索引數據結構
- innodb索引數據結構
- 索引覆蓋
- 索引使用原則
- 列獨立
- like查詢
- 復合索引使用
- or運算都具有索引
- mysql智能選擇
- 優化group by語句
- 前綴索引
- 全文索引
- 查詢緩存
- 查詢緩存操作
- 無緩存
- limit分頁優化
- 分區
- 分區介紹
- list分區
- range分區
- hash分區
- key(鍵值)分區
- 分區管理
- 分表
- 分表介紹
- 水平分表
- 垂直分表
- MySQL鎖機制
- 鎖機制介紹
- 鎖的幾種形式
- 表鎖操作
- 行鎖操作
- 數據碎片與維護
- 范式
- 第一范式
- 第二范式
- 第三范式
- 反三范式
- 主從復制
- 介紹
- 讀寫分離