現(xiàn)在接觸到的索引
innodb,myisam 這兩種索引
5.6 開始 新建表的存儲(chǔ)引擎 都是 innodb
innodb 支持行級(jí)鎖 mysiam 表鎖
innodb 支持事務(wù), mysiam 不支持
innodb 不支持全文索引颂翼, mysiam 支持全文索引
innodb 插入志膀,更新比較快,mysiam 查詢比較快
什么索引围段,索引有哪些分類
- 索引是一種特殊的文件,它們包含所有表記錄的引用指針投放,相當(dāng)于書本的目錄奈泪。其作用就是加快檢索數(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 查詢后面的字段才建立索引
- 經(jīng)常需要ORDER BY裸准、GROUP BY、DISTINCT和UNION等操作的字段赔硫,排序操作會(huì)浪費(fèi)很多時(shí)間炒俱。如果為其建立索引,可以有效地避免排序操作爪膊。
- 盡量是數(shù)據(jù)小的建立索引 char(10), char(100)
- text.log 這種要有前綴索引
5.限制索引的數(shù)目向胡,不是越多越好,索引會(huì)占用磁盤空間的
6.盡量擴(kuò)張索引
#mysql 如何優(yōu)化
1.盡量避免where【辍like 模糊查詢
2. 不用使用select〗┣邸*,需要列出列的名字
3.mysql 語句避免運(yùn)算小槐,減輕mysql 的壓力
4. 經(jīng)常查詢的字段拇派,建立合適的索引荷辕,提高查詢效率