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

SQL語句優化 (三),sql語句優化

編輯:MySQL綜合教程

SQL語句優化 (三),sql語句優化


4.1 優化表的類型

在MySQL中,可以使用函數PROCEDUREANALYSE()對當前應用的表進行分析,改函數可以對數據表中列的數據類型提出優化建議,用戶可以根據應用的實際情況酌情考慮是否實施

mysql> select * from duck_cust procedure analyse()\G
*************************** 1. row ***************************
             Field_name: sakila.duch_cust.cust_num
              Min_value: 1
              Max_value: 6
             Min_length: 1
             Max_length: 1
       Empties_or_zeros: 0
                  Nulls: 0
Avg_value_or_avg_length: 3.5000
                    Std: 1.7078
      Optimal_fieldtype: ENUM(‘1’,‘2’,‘3’,‘4’) NOT NULL
*************************** 2. row ***************************
  … …

4.2 大存儲量解決

1.分庫分表

2.分區

 

主要目的:

1.減少表的記錄數

2.減小對操作系統的負擔壓力

myisam讀鎖定

1.lock table t1 read

2.開啟另一個mysql連接終端,接著去嘗試:

select * from t1

3.再insert、update和delete t1這張表,你會發現所有的數據都停留在終端上沒有真正的去操作

4.讀鎖定對我們在做備份大量數據時非常有用.

mysqldump -uroot -p123 test >test.sql

myisam寫鎖定

1.lock table t1 write

2.打開另一個mysql終端,嘗試去select、insert、update和delete這張表t1,你會發現都不能操作,都會停留在終端上,只有等第一個終端操作完畢,第二個終端才能真正執行.

3.可見表的寫鎖定比讀鎖定更嚴格

4.一般情況下我們很少去顯式的去對表進行read和write鎖定的,myisam會自動進行鎖定的.

慢查詢日志

1.有關慢查詢

開戶和設置慢查詢時間:

vi /etc/my.cnf

log_slow_queries=slow.log

long_query_time=5

 

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