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