MySQL索引面试题:优化 索引分类
索引分類:
主鍵索引(PRIMARY):它 是一種特殊的唯一索引,不允許有空值。
唯一索引(UNIQUE):與"普通索引"類似,不同的就是:索引列的值必須唯一,但允許有空值。
普通索引(INDEX):最基本的索引,沒有任何限制
聯(lián)合索引:為了更多的提高mysql效率可建立組合索引,遵循”最左前綴“原則。
全文索引(FULLTEXT ):僅可用于 MyISAM 表, 用于在一篇文章中,檢索文本信息的, 針對較大的數(shù)據(jù),
PRIMARY KEY(主鍵索引) ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) UNIQUE(唯一索引) ALTER TABLE `table_name` ADD UNIQUE (`column`)INDEX(普通索引) ALTER TABLE `table_name` ADD INDEX index_name ( `column` ) FULLTEXT(全文索引) ALTER TABLE `table_name` ADD FULLTEXT ( `column` )組合索引 ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )Mysql優(yōu)化:
解決慢SQL
1.慢查詢:在服務(wù)器跑一段時(shí)間,用mysqldumpslow找出慢sql
2.explain:
? 2.1聚簇索引:建立主鍵 相應(yīng)的建立聚簇索引? 索引+data放在一起 查詢快
? 2.2覆蓋索引,直接使用索引里面的數(shù)值就可以查詢? 消除usingtemporary usingfileorder?
? 2.3type索引等級,在where、groupby、orderby、join使用的字段建立索引
3.show profile分析sql生命周期:調(diào)整sort_buffer_siz? ? max_length_for_sort_data
多寫快SQL
1.全值匹配:根據(jù)where建立對應(yīng)的聯(lián)合索引
2.最左前綴:根據(jù)索引的頭,進(jìn)行寫where條件,中間不能跳過
3.多表:左連接建立在右表字段? ?右連接建立在左表字段
4.不在索引列計(jì)算、不用* or is null ≠ < > ,左邊%直接斷開%放右邊、
架構(gòu)
1.負(fù)載均衡 主從復(fù)制 讀寫分離? 減小壓力
2.分區(qū)分表? 冷熱分離 應(yīng)對數(shù)據(jù)的增加300w
3.緩存層:主從復(fù)制 redis集群 哨兵機(jī)制
總結(jié)
以上是生活随笔為你收集整理的MySQL索引面试题:优化 索引分类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 招联金融额度人工可以解封吗 答案肯定是不
- 下一篇: Swoole实现私聊群聊