Mysql 點滴 一 效能優化

2021-04-13 14:01:02 字數 1113 閱讀 9859

從網上搜尋或者自己開發時總結的記錄:

索引方面

使用索引來更快地遍歷表。 預設情況下建立的索引是非群集索引,但有時它並不是最佳的。在非群集索引下,資料在物理上隨機存放在資料頁上。合理的索引設計要建立在對各種查詢的分析和**上。一般來說:

a.有大量重複值、且經常有範圍查詢( > ,< ,> =,< =)和order by、group by發生的列,可考慮建立群集索引;

b.經常同時訪問多列,且每列都含有重複值可考慮建立組合索引;

c.組合索引要盡量使關鍵查詢形成索引覆蓋,其前導列一定是使用最頻繁的列。索引雖有助於提高效能但不是索引越多越好,恰好相反過多的索引會導致系統低效。使用者在表中每加進乙個索引,維護索引集合就要做相應的更新工作。

d.如果一列的中資料的字首重複值很少,我們最好就只索引這個字首。mysql支援這種索引。我在上面用到的索引方法就是對username最左邊的6個字元進行索引。索引越短,占用的 磁碟空間越少,在檢索過程中花的時間也越少。這方法可以對最多左255個字元進行索引。

e.有些表如果經常insert,而較少select,就不用加索引了.不然每次寫入資料都要重新改寫索引,花費時間

sql方面

in、or子句常會使用工作表,使索引失效。如果不產生大量重複值,可以考慮把子句拆開。拆開的子句中應該包含索引。

字段方面

應該盡量把字段設定為not null,這樣在將來執行查詢的時候,資料庫不用去比較null值。

對於某些文字字段,例如「省份」或者「性別」,我們可以將它們定義為enum型別。因為在mysql中, enum型別被當作數值型資料來處理,而數值型資料被處理起來的速度要比文字型別快得多。         

在海量查詢時盡量少用格式轉換。盡量把所有的列設定為not null,如果你要儲存null,手動去設定它, 而不是把它設為預設值。盡量少用varchar、text、blob型別。如果你的資料只有你所知的少量的幾個。最   好使用enum型別。

工具命令方面

一般是直接用mysql的explain來跟蹤查詢情況. 用mysql-front是通過時長來比較,我覺得如果從查詢時掃瞄字   段的次數來比較更精確一些. 

mysql效能優化 一

mysql裡面的所分為表鎖和行鎖不同儲存引擎它的鎖也不一樣,innodb有表鎖和行鎖,而mysiam只有表鎖 1.set autocommit 0 取消自動提交 2.使用a,b兩個視窗分別update同一行資料,過濾條件必須是索引,因為索引是行鎖,非索引是表鎖 a視窗先update資料,b視窗後up...

MySQL效能優化 一)

mysql是乙個開源的小型關聯式資料庫,也是目前應用最廣泛的。最近學習了mysql的效能調優,感覺一下子接觸很多之前不了解的東西,這些優化應該來說是非常實用的,所以這裡打算寫乙個系列的部落格來整理下。眾所周知,mysql能安裝在各大作業系統上,特別是對於很多個人開發者,都喜歡把開發放在windows...

MySQL效能優化一

1.檢視mysql的可以承受的最大連線數,登入到mysql伺服器後,輸入以下命令,如出現下面的頁面顯示 max connections 表示的是伺服器所能承受的最大連線數 用來設定最大連線 使用者 數。總體來說,該max connections2.檢視當前連線資料庫的使用者 show process...