MySQL SQL語句最佳化的10條建議

來源:互聯網
上載者:User

標籤:

1、將經常要用到的欄位(比如經常要用這些欄位來排序,或者用來做搜尋),則最好將這些欄位設為索引

2、欄位的種類儘可能用int或者tinyint類型。另外欄位儘可能用not null

3、當然無可避免某些欄位會用到text,varchar等字元類型,最好將text艾段的單獨出另外一個表出來(用主鍵關聯好)

4、欄位的類型,以及長度,是一個很考究開發人員最佳化功力的一個方面。如果表資料有一定的量了,不妨用PROCEDURE ANALYSE()命令來取得欄位的最佳化建議!(在phpmyadmin裡可以在查看錶時,點擊‘Propose table struture’來查看這些建議)如此可以讓你的表欄位結果趨向完善。

5、select * 盡量少用,你想要什麼欄位,就select什麼欄位出來,不要老是用*號!同理,只要一行資料時盡量使用limit 1

8.拆分大的 DELETE 或 INSERT 語句。因為這兩個操作是會鎖表的,表一鎖住了,別的操作都進不來了,就我來說 有時候我寧願用for迴圈來一個個執行這些操作。

6、絕對不要輕易用order by rand(),很可能會導致mysql的災難

7、每個表都應該設定一個ID主鍵,最好的是一個INT型,並且設定上自動增加的AUTO_INCREMENT標誌,這點其實應該作為設計表結構的第一件必然要做的事!

8、拆分大的DELETE或INSERT語句,因為這兩個操作是會鎖表的,表一鎖住了,別的操作都進不來了,就我來說有時候我寧願用for迴圈來一個個執行這些操作

9、不要用永久串連mysql_pconnet();除非你真的非常肯定你的程式不會發生意外,不然很可能也會導致你的mysql死掉

10、永遠別用複雜的mysql語句來顯示你的聰明,就我來說看到一次關聯了三四個表的語句,只會讓人覺得很不靠譜

MySQL SQL語句最佳化的10條建議

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.