程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql數據庫的性能優化分析

mysql數據庫的性能優化分析

編輯:MySQL綜合教程

本文章主要介紹關於影響到數據庫性能的一些條件,大家可以參考一下本文章哦。

 影響數據庫性能的根源:

1,磁盤I/O讀取

2,CPU使用率

3,資源競爭

優化的方式:

1,設計優化

2,操作優化

3,使用其他優化技術

1)設計優化:

    分類拆分數據量大的表;
    選取最適用的字段屬性;
    索引設計,為經常查詢用到的字段建立索引,避免查詢時查找其他重復無用的數據,避免了大范圍掃描;

2)操作優化:

    鎖表操作;
    盡量避免子查詢,將子查詢轉化成連接查詢;
    where子句查詢條件盡量少使用運算操作;
    A>2與A>=3的效果有很大的區別了,因為A>2時數據庫會先找出為2的記錄索引再進行比較,而A>=3時ORACLE則直接找到=3的記錄索引;
    a is not null 改為 a>0 或a>''等,判斷字段是否為空一般是不會應用索引的;
    a<>0 改為 a>0 or a<0 ,不等於操作符是永遠不會用到索引的,因此對它的處理只會產生全表掃描;    YY_BH LIKE '%5400%' 這個條件會產生全表掃描,如果改成YY_BH LIKE 'X5400%' OR YY_BH LIKE 'B5400%' 則會利用YY_BH的索引進行兩個范圍的查詢,性能肯定大大提高;

以下三條sql語句的效果是等效的:

 代碼如下 復制代碼

SELECT * FROM `logs` WHERE id = 1 or id = 2 or id = 3

SELECT * FROM `logs` WHERE id between 1 and 3

SELECT * FROM `logs` WHERE id in (1,2,3)

經過測試性能也是差不多,如果id是一個大數組那麼最後一條書寫會簡單很多,可以利用

    WHERE後面的條件順序影響 ,應該先把范圍小的條件放前面,在小范圍裡面按接下來的條件查找;

3)其他優化技術

    使用數據緩存技術,如memcached;
    使用靜態存儲,對一些更新不頻繁但經常調用的數據采用靜態文本的存儲方式;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved