mysql索引使增刪變慢 Mysql索引優化

2021-10-17 21:52:05 字數 1113 閱讀 8696

2. mysql索引優化

2.1. explain執行計畫分析

2.2. 索引命中策略略分析

2.3. 索引分析總結

2.4. 資料庫出現問題後如何死⽽而不不僵

// 資料庫卡頓情景

解決思路

sql及索引:⾼質量的sql,避免索引失效

資料庫表結構:正規化,⾄至少要符合3nf

系統配置mysql,linux

硬體1 通過explain 執行計畫 調優sql及索引使用情況

explain select * from employee where age=40 and name='張⻜'

explain作用:

檢視表的讀取順序

讀取操作型別

哪些索引可⽤用

表之間關聯

每張表有哪些索引被優化器器執行

索引:最左匹配原則

在索引欄位上加⼊入函式:不走索引

is null/is not null:不走索引

覆蓋索引:key-value都在索引里,如果select columns直接使⽤用的是索引列列就直接使⽤用覆蓋索引

只要索引條件和or挨著:就⽤不上 where name = "jack" or age = 20

where contentid = 123 and (name = "jack" or age = 20)    可以使用索引

2.3. 索引分析總結

優勢:1、提⾼高查詢速度

2、表連線的時候,加速連線

3、保證資料唯⼀一:唯⼀一索引

劣勢1、修改和增加資料時會提公升開銷

2、索引還會佔⽤用物理理空間

3、在進⾏行行⼤大量量的insert或update、delete時,速度會變慢

適合建⽴立索引

1、資料差異化較⼤大

2、頻繁查詢的列列,where條件⾥裡里經常⽤用到的

3、常⽤用的表關聯字段 4、查詢中統計或分組的字段

不不適合的

1、記錄值特別少

2、值變化特別⼩小,重複率⾼高 3、經常增刪改的

2.4. 資料庫出現問題後如何死⽽不僵

mysql> show processlist;

mysql> kill pid;

mysql索引框架 MySQL架構和MySQL索引

1.mysql架構 1.1邏輯架構圖 1.1.1connection pool 連線池 管理緩衝使用者連線,執行緒處理等需要快取的需求。負責監聽對mysql server的各種請求,接收連線請求,所有連線請求到執行緒管理模組。每乙個連線上mysql server的客戶端請求都會被分配 或建立 乙個連...

mysql 索引 增刪查

一 建立 建立單個索引的語法 create index 索引名 on 表名 欄位名 索引名一般是 表名 欄位名 給id建立索引 create index t1 id on t1 id 建立聯合索引的語法 create index 索引名 on 表名 欄位名1,欄位名2 二 刪除 可利用alter t...

MySQL 索引的增刪查

檢視索引 show index from table name show keys from table name 刪除索引 drop index index name from table name drop index test index from contents 建立普通索引 create...