標籤:
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’) NOTNULL
*************************** 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
SQL語句最佳化 (三)