MySQL 效能優化

2022-07-22 09:15:11 字數 701 閱讀 5890

mysql資料庫優化設計的知識點很廣,這裡我主要將其劃分為schema、sql、index,硬體四方面談談自己的理解。

字段設計:吝嗇的原則,not null,三個預留備用字段。

表的設計合理化,首先不得不提到三正規化

字段不可分

所有非主鍵字段依賴主鍵字段

所有非主鍵欄位不依賴其他非主鍵字段

三正規化的目的時減少資料的冗餘,但實際開發過程中為了提高查詢效率等,適當保留冗餘資料。

主從分離,垂直分割槽和水平分割槽。

這裡提乙個生產遇到的問題,多表關聯查詢,包含多個join和子查詢,這裡我們可以將語句化繁為簡,資料拼接等操作可以叫用程式語言本身來操作。

避免select *

limit offset,rows

充分利用表鎖和行鎖

慢查詢日誌,針對性優化

explain

type

含義all

全表掃瞄

index

索引全掃瞄

range

索引範圍掃瞄

ref非唯一索引掃瞄

eq_ref

唯一索引掃瞄

const,system

單錶最多有乙個匹配行

null

不用掃瞄

一般來說,得保證查詢至少達到range級別,最好能達到ref

組合索引和字首索引

加機器配置,固態等

mysql效能優化 mysql效能優化

優化方式 1.空間換時間 冗餘 2.時間換空間 字段優先使用型別 int date char varchar text 索引型別 btree索引 hash索引 索引的葉子下,存放乙個資訊指向所在行的資料位址。btree有利於範圍查詢,hash有利於精確查詢。btree用的更多一些。btree索引的常...

mysql的效能優化 mysql效能優化

檢視安裝指令碼 select version 非互動式超時時間,如jdbc show global variables like wait timeout 互動式超時時間,如資料庫工具 show global variables like interactive timeout show sessi...

mysql 效能優化 命令 mysql效能優化

發現問題 當發現程式執行比較慢的時候,首先排除物力資源問題之後,就將注意力轉向mysq資料庫 1 首先確定執行慢的sql語句 mysql show full processlist 2 確認低效的查詢 多次執行第一步發現time耗費大的sql語句。檢視耗費的時間。3 分析效能 為sql生成乙個執行計...