Mysql之效能優化

2021-08-13 07:36:27 字數 827 閱讀 4043

資料庫表的設計一般要遵循資料庫設計的三正規化,即第一正規化,第二正規化,第三正規化。

第一正規化(1nf):資料庫表中的任一欄位都是單一的,不可再分的。換句話來說,就是資料庫表必須是一張二維表。

第二正規化(2nf):資料庫表中的任一非關鍵字對任意候選關鍵字不存在部分函式依賴。部分函式依賴是指:候選關鍵字中的某一字段能決定非關鍵字。

第三正規化(3nf):資料庫表中的任一非關鍵字對任意候選關鍵字不存在函式傳遞依賴關係。函式傳遞依賴是指:根據候選關鍵字能推出非關鍵字。

注意:必要時,可反正規化化設計。

資料庫效能優化:

1。選擇合適的資料庫儲存引擎(innodb、myisam)。innodb:支援事務,行級鎖以及外來鍵,資料庫寫的效能相對更優。myisam讀的效能更優,且myisam的資料和索引時分開的,同時索引是有壓縮的,這減少了記憶體的消耗。

2.減少磁碟操作或者提公升磁碟讀寫性。

3.新增必要的索引。

4.盡量使用not null

5.為每一張表設定乙個id

6. 從 procedure analyse() 取得建議

7.可以的話,建立字段長度固定的表,這樣表操作效能更優

8.必要時,對錶進行垂直分割和水平分割

10.小心使用長連線

11.sql語句方面的優化:

①explain 查詢select語句

②當只需要獲取一條資料時,使用limit 1

③為搜尋字段建立索引

④join兩張表時,為相同的列建立索引

⑤避免使用select *

⑥使用enum而不是varchar

⑦join時,減少表的迴圈次數,用小結果集驅動大結果集

Mysql之效能優化

mysql 資料庫效能優化之索引優化 大家都知道索引對於資料訪問的效能有非常關鍵的作用,都知道索引可以提高資料訪問效率。為什麼索引能提高資料訪問效能?他會不會有 是不是索引建立越多,效能就越好?到底該如何設計索引,才能最大限度的發揮其效能?這篇文章主要是帶著上面這幾個問題來做乙個簡要的分析,同時排除...

效能優化之mysql索引優化

sql及索引優化 如何通過慢查詢日誌發現有問題的sql?查詢次數多且每次查詢占用時間長的sql 通常為pt query digest分析的前幾個查詢 io大的sql 注意pt query digest分析中的rows examine項 未命中索引的sql 注意pt query digest分析中ro...

mysql效能優化 mysql效能優化

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