MySQL資料庫的優化的思路方式方法?

2021-10-05 16:30:05 字數 1411 閱讀 5917

1資料庫結構優化

a建表的時候優化:

列選擇原則

1欄位型別優先順序:整形》date,time->char varchar->text、blob

2合理地設定字段大小夠用就可以

3盡量不要用text型別

4盡量不用null() 索引null列需要額外的空間來儲存

5對於非負型的資料 (如整型 ip) 來說,要優先用無符號整型來儲存 無符號佔多出一倍。

6同財務相關的金額類資料必須使用 decimal 型別。

b反正規化設計表 目的–減少表的關聯查詢

方法->冗餘字段(某欄位儲存另一表的統計資訊)

冗餘表(表中統計或彙總其他表的資訊)

c將字段很多的表分解成多個表:對於使用頻率低的字段分離出來形成新錶。

d增加中間表

2查詢語句優化

a 常見的查詢優化

避免直接使用 select *

中 in 包含的值不應過多

當只需要一條資料的時候,使用 limit 1

sql 語句要避免造成索引失效的

如果排序字段沒有用到索引,就盡量少排序

不建議使用%字首模糊查詢

b快取優化 資料庫開啟了 query cache(簡稱 qc)功能

c讀寫分離 主資料庫處理增、改、刪操作,而從資料庫處理查詢操作。

d mysql的分庫分表 垂直拆分(業務)與水平拆分(表id)

f explain

用 explain 檢視 sql 執行計畫,在查詢語句中加入explain(解釋)

查出來有乙個重要的字段是type 表示表的連線型別

從最佳型別到最差型別 system const(理解為最佳) eq_ref 等等10個 直到all是最差。

3索引及優化

索引:提高資料查詢的效率 就說是比如:然後說兩條。

選擇唯一性索引

唯一性索引的值是唯一的,可以更快速的通過該索引來確定某條記錄。

為經常需要排序、分組和聯合操作的字段建立索引:

為常作為查詢條件的字段建立索引。

限制索引的數目: 越多的索引,會使更新表變得很浪費時間。

盡量使用資料量少的索引

如果索引的值很長,那麼查詢的速度會受到影響。

盡量使用字首來索引

如果索引欄位的值很長,最好使用值的字首來索引。

刪除不再使用或者很少使用的索引

最左字首匹配原則,非常重要的原則。

盡量選擇區分度高的列作為索引

區分度的公式是表示欄位不重複的比例

索引列不能參與計算,保持列「乾淨」:帶函式的查詢不參與索引。

盡量的擴充套件索引,不要新建索。

4伺服器優化

配置較大的記憶體 配置高速磁碟(ssd等)

5儲存引擎的選擇優化

myisam 更適合讀密集的表,而 innodb 更適合寫密集的的表。

mysql資料庫優化的思路

sys tem cons t eq ref ref ran ge i ndex all system to const to eq ref to ref to range to index to all system con st e q re f re f ra nge inde x al l正規...

資料庫優化思路

1 根據服務層面 配置mysql效能優化引數 2 從系統層面增強mysql的效能 優化資料表結構 字段型別 字段索引 分表,分庫 讀寫分離等等。3 從資料庫層面增強效能 優化sql語句,合理使用字段索引。4 從 層面增強效能 使用快取和nosql資料庫方式儲存,如mongodb memcached ...

資料庫正規化及MYSQL優化整體思路

一 資料庫正規化 為了建立冗餘較小 結構合理的資料庫,設計資料庫時必須遵循一定的規則。在關係型資料庫中這種規則就稱為正規化。正規化是符合某一種設計要求的總結。要想設計乙個結構合理的關係型資料庫,必須滿足一定的正規化。1.1 第一正規化 1nf 每一列不可包含多個值 所謂第一正規化 1nf 是指資料庫...