參考:http://www.javashuo.com/article/p-soxjxrqo-mz.htmlhtml
https://blog.csdn.net/weixin_42785557/article/details/83512138mysql
https://www.cnblogs.com/xingxia/p/database_mysql_character.htmlsql
應用:mysql索引
這裏戰時只說: InnoDB和MyIsam測試
https://blog.csdn.net/summerzbh123/article/details/81201839spa
存儲結構:.net
相同點:都是B+Tree設計
什麼是B+Tree: https://www.jianshu.com/p/486a514b0ded3d
不一樣點: htm
由於: 存儲的結構不一樣 innoDB:是將數據與索引放在一塊兒(聚合索引), MyIsam:數據與索引分開(非聚合索引)
http://www.javashuo.com/article/p-uvjtmusv-be.html
上面緣由致使:
https://www.cnblogs.com/zuochuang/p/8184349.html
-- 單一索引
create index singoleindex on t_user (name)
-- 聯合索引
create index moreIndex on t_user (name,age,other)
-- 單一索引
create index singoleindex on t_user (name)
-- 聯合索引
create index moreIndex on t_user (name,age,other)
-- 1. key_len 爲null 表示沒有走索引
explain select * from t_user
-- 2.走索引了 33=10*3+2+1 10表示varchar長度 3:utf-8格式 2:非char類型佔用 1:數據能夠爲null
explain select * from t_user where name ='張三'
-- 3. 索引失效 緣由數據類型不對
explain select * from t_user where name =1
-- 4. 索引位置不對 第一索引 沒有被用索引其餘索引失效
explain select * from t_user where age =15
-- 5.第一個索引不能少 跟順序有關
explain select * from t_user where name ='張三' and age =15
-- 6. 跳過中間因此 也有效 Using index condition
explain select * from t_user where name ='張三' and other='學生'
-- 7。索引 設計的幾個原則
-- 7.1 範圍最後 原則
explain select * from t_user where name ='張三' and age >=15
-- 7.2 最左邊原則 2中的列子
-- 8.索引覆蓋
-- 8.1索引失效
explain select * from t_user
-- 索引覆蓋
explain select t.name,t.age from t_user t
-- 9. like 查詢索引狀況
-- 9.1 索引失效 由於沒有用頭索引
explain select * from t_user where other like '%學生%'
-- 9.2 索引沒有失效 可是like 字段並無生效
explain select * from t_user where name ='張三' and other like '%學生%'
-- 9.3 測試單索引的like 後%生效 其餘不生效 除非發生索引覆蓋
-- 索引失效
explain select * from t_user where other like '%學生%'
-- 索引可與使用
explain select * from t_user where other like '學生%'
(1) key_len 爲null 表示沒有走索引
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
咱們首先新建 單索引 以下:
4.3 Extra 的表明含義
https://www.cnblogs.com/wy123/p/7366486.html