SQL語句最佳化 (三)

來源:互聯網
上載者:User

標籤:

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語句最佳化 (三)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.