現(xiàn)在接觸到的索引
innodb,myisam 這兩種索引
5.6 開(kāi)始 新建表的存儲(chǔ)引擎 都是 innodb
innodb 支持行級(jí)鎖 mysiam 表鎖
innodb 支持事務(wù), mysiam 不支持
innodb 不支持全文索引, mysiam 支持全文索引
innodb 插入,更新比較快,mysiam 查詢(xún)比較快
什么索引,索引有哪些分類(lèi)
- 索引是一種特殊的文件,它們包含所有表記錄的引用指針,相當(dāng)于書(shū)本的目錄。其作用就是加快檢索數(shù)據(jù)的速度。
- 索引有 主鍵索引,唯一索引,復(fù)合索引,普通索引,全文索引
主鍵索引 一個(gè)表只有一個(gè),不允許為空
唯一索引一個(gè)表可以有多個(gè),可以允許為空
復(fù)合索引 多個(gè)列 組合在一起
全文索引 varchar char , funlltext ,但是不支持中文
索引不是越多越好,因?yàn)樗饕惨伎臻g,在更新,插入,數(shù)據(jù)會(huì)重新更新的
alter table test add index (name); 普通索引
alter table teble add unique (age); 唯一索引
alter table test add fulltext (class); 全文索引
建立索引的原則
- 一般出現(xiàn)在 where 查詢(xún)后面的字段才建立索引
- 經(jīng)常需要ORDER BY、GROUP BY、DISTINCT和UNION等操作的字段,排序操作會(huì)浪費(fèi)很多時(shí)間。如果為其建立索引,可以有效地避免排序操作。
- 盡量是數(shù)據(jù)小的建立索引 char(10), char(100)
- text.log 這種要有前綴索引
5.限制索引的數(shù)目,不是越多越好,索引會(huì)占用磁盤(pán)空間的
6.盡量擴(kuò)張索引
#mysql 如何優(yōu)化
1.盡量避免where like 模糊查詢(xún)
2. 不用使用select?。?,需要列出列的名字
3.mysql 語(yǔ)句避免運(yùn)算,減輕mysql 的壓力
4. 經(jīng)常查詢(xún)的字段,建立合適的索引,提高查詢(xún)效率