mysql產品優化方案 mysql的優化方案

2021-10-18 20:20:52 字數 1475 閱讀 5507

簡介

在本文中,主要寫一下自己所查閱和理解的mysql優化方案.

我的理解是資料庫的優化對於我們'非專業'人員,mysql的優化也沒那麼複雜了,真的要玩轉mysql的話,肯定得需要很多年的經驗了.

優化方案

1.搜尋引擎的優化

mysql搜尋引擎用的比較多的有以下三中

innodb

memory

myisam

innodb的適用情況:innodb有處理事務的功能,對於需要處理大量事務的資料庫,innodb是比較合適的.

memory的適用情況:乙個字快!memory是要把資料直接乾到記憶體中,處理速度很快,但是,當伺服器重啟或者宕機資料就沒了呢.所以,這個是適用臨時資料.

myisam的適用情況:速度快,不支援事務.適用於處理資料量大且不用大量處理事務的資料庫.

2.mysql新增索引

什麼情況下適合新增索引

該欄位資料量龐大;

該欄位很少的dml操作(由於索引也需要維護,dml操作多的話,也影響檢索效率);

該欄位經常出現在where條件中;

只要列中含有null值,就最好不要在此例設定索引,復合索引如果有null值,此列在使用時也不會使用索引

盡量使用短索引,如果可以,應該制定乙個字首長度

對於經常在where子句使用的列,最好設定索引,這樣會加快查詢速度

對於有多個列where或者order by子句的,應該建立復合索引

對於like語句,以%或者『-』開頭的不會使用索引,以%結尾會使用索引

盡量不要在列上進行運算(函式操作和表示式操作)

盡量不要使用not in和<>操作

注意:實際開發中會根據專案需求等綜合因素來做調整,新增索引並不能保證一定能夠提公升檢索效率,索引新增不當也有可能會導致效率降低。

3.sql語句的優化

sql語句的優化,主要一點就是,盡量避免全文搜尋,就是我要找個東西,我不能在那麼多的資料中找到我想要的資料.最好就是,我可以在資料庫中搜尋最小的範圍得到我想要的資料.

查詢時,能不要*就不用*,盡量寫全欄位名

大部分情況連線效率遠大於子查詢

多使用explain和profile分析查詢語句

檢視慢查詢日誌,找出執行時間長的sql語句優化

多表連線時,盡量小表驅動大表,即小表 join 大表

在千萬級分頁時使用limit

對於經常使用的查詢,可以開啟快取

其實還有很多的,主要把握"查最少的資訊,獲得我所需要的內容"這個核心就行了.

4.表的優化

其實就一點:分塊!將資料分塊存放.

表的字段盡可能用not null

字段長度固定的表查詢會更快

把資料庫的大表按時間或一些標誌分成小表

將表分割槽

比如乙個城市裡有很多的區,每個區里又有很多的街道小區,乙個城市就顯得很規矩.如果所有的商店寫字樓居民樓都隨意布置,那這個城市就亂的一團糟了.

總結優化資料庫有很多途徑.讓處理資料的效率越高越好,就醬.

Mysql優化方案

client 客戶端編碼方式,最好和服務端儲存一致 loose default character set utf8 mysqld 埠port 3306 mysql根目錄 basedir d ide mysql 5.6.25 winx64 資料檔案存放目錄 datadir d ide mysql 5...

MySQL優化方案

select 和select 欄位的優化。我們先測試一下,我的測試資料庫裡有26萬條記錄。再查詢一下列數 select count from information schema.columns where table schema lezhi data and table name demo jo...

MySql優化方案

mysql優化方案總結 u mysql 資料庫的優化技術 對mysql 優化時乙個綜合性的技術,主要包括 a 表的設計合理化 符合 3nf b 新增適當索引 index 四種 普通索引 主鍵索引 唯一索引 unique 全文索引 c 分表技術 水平分割 垂直分割 d 讀寫 寫 update dele...