Mysql資料庫優化

2023-01-24 03:01:28 字數 821 閱讀 1849

要保證資料庫的效率,可以從4個方面著手:

1.資料庫設計,資料表表結構設計

2.sql語句的優化(orm優化)

3.資料庫的配置

-- 最重要的引數就是記憶體

4.硬體資源

-- 讀寫分離

一、資料庫設計

資料庫結構優化目的:

1.減少冗餘

3.查詢速度快

2.使資料庫維護時儘可能方便

結構設計方法從四方面著手:

1.根據業務需求

瞭解產品設計的儲存需要,資料處理的需求,資料的完整性和安全性

2.根據業務邏輯

大概根據業務邏輯,分析資料庫的儲存邏輯,資料和物件之間的邏輯,例如:儘量使用in、is not in,而少用or邏輯

3.物理設計

根據資料型別和特點進行表結構設計,使用適當欄位型別,因地制宜

4.維護優化

根據實際情況對索引、儲存結構進行優化

遵循資料庫設計三正規化,但有時需要適當的反正規化:

建立索引:

索引欄位必須是經常查詢的欄位

聯合索引,經常查詢的欄位作為條件查詢,最左優先

索引欄位必須有足夠的區分度

表的主鍵選擇較短的資料型別,因為索引引擎會儲存主鍵的值,較短的資料型別可減少索引的磁碟空間,提升效率

二、框架一般都是使用orm

優化orm:

關鍵欄位建索引,比如:外來鍵 foreignkey;

使用適當欄位型別

減少資料庫的連線數

(想到redis管道技術pipeline)

對於django中的querysets物件,具有快取性,儘量重用

MySQL優化 資料庫優化

響應 執行時間長 等待時間長 查詢語句寫的爛 索引失效 關聯查詢太多join 設計缺陷或者不得已的需求 伺服器調優及各個引數設定 快取 執行緒等 索引介紹 mysql官方對索引的定義為 索引 index 是幫助mysql高效獲取資料的資料結構。可以得到索引的本質 索引是資料結構。簡單的理解為 排好序...

mysql資料庫優化

優化mysql首先應該多用explain select show variables,show status show processlist這些工具。在寫sql的時候,在大表上不做group by 操作。對於索引 1.不要索引你不想要的東西。2.mysql能使用索引的情況 if null 以及be...

mysql 資料庫優化

型別的選擇 選取最適用的欄位屬性 表的型別 選取最適用的欄位屬性 資料庫最基本的優化方式之一是使資料在磁碟上佔據的空間儘可能小。mysql 可以很好地支援大資料量的存取,但資料庫中的表越小,執行的查詢也就會越快。因此,在建立表的時候,為了獲得更好的效能,應該將表中欄位的寬度設得儘可能小。表的型別 m...