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