1、將經常要用到的欄位(例如經常要用這些欄位來排序,或用來做搜尋) ,則最好將這些欄位設為索引。 2、字段的種類盡可​​能用int 或tinyint型別。另外欄位盡可能用NOT NULL。 3.當然無可避免某些欄位會用到text ,varchar等字元類型,最好將text欄位的單獨出另外一個表格出來(用主鍵關聯好)4"/> 1、將經常要用到的欄位(例如經常要用這些欄位來排序,或用來做搜尋) ,則最好將這些欄位設為索引。 2、字段的種類盡可​​能用int 或tinyint型別。另外欄位盡可能用NOT NULL。 3.當然無可避免某些欄位會用到text ,varchar等字元類型,最好將text欄位的單獨出另外一個表格出來(用主鍵關聯好)4">

首頁 >後端開發 >php教程 >mysql語句最佳化建議 mysql匯出sql語句 mysql 匯入sql語句 mysql如何寫sql語

mysql語句最佳化建議 mysql匯出sql語句 mysql 匯入sql語句 mysql如何寫sql語

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB原創
2016-07-29 08:51:491015瀏覽

data-id="1190000005008401" data-license="cc">

1、將經常要用到的字段(例如經常要用這些字段來排序,或者用來做搜索),則最好將這些字段設為索引。
2、字段的種類盡量用int 或tinyint型別。另外欄位盡可能用NOT NULL。
3、當然無可避免某些字段會用到text ,varchar等字符類型,最好將text字段的單獨出另外一個表出來(用主鍵關聯好)
4、字段的類型,以及長度,是一個很考究開發者優化功力的一個面向。如果表格資料有一定的量了,不妨用PROCEDURE ANALYSE()指令來取得欄位的最佳化建議! (在phpmyadmin裡可以在查看表格時,點擊 “Propose table structure” 來查看這些建議) 如此可以讓你的表格字段結構 趨向完善。
5、select 盡量少用,你想要什麼欄位 就select 什麼欄位出來 不要老是用 號!同理,只要一行資料時盡量使用 LIMIT 1
6、絕對不要輕易用order by rand() ,很可能會導致mysql的災難! !
7、每個表都應該設定一個ID主鍵,最好的是一個INT型,並且設定上自動增加的AUTO_INCREMENT標誌,這點其實應該作為設計表結構的第一件必然要做的事! !
8、分割大的 DELETE 或 INSERT 語句。因為這兩個操作是會鎖表的,表一鎖住了,別的操作都進不來了,就我來說 有時候我寧願用for迴圈來一個個執行這些操作。
9、不要用永久連結 mysql_pconnect();除非你真的非常肯定你的程式不會發生意外,不然很可能也會導致你的mysql死掉。
10、永遠別要用複雜的mysql語句來顯示你的聰明。就我來說,看到一次關聯了三,四個表格的語句,只會讓人覺得很不可靠。
11、應盡量避免在 where 子句中使用!=或操作符,否則將引擎放棄使用索引而進行全表掃描。
12、應盡量避免在where 子句中對字段進行null 值判斷,否則將導致引擎放棄使用索引而進行全表掃描
13、應盡量避免在where 子句中使用or 來連接條件,否則將導致引擎放棄使用索引而進行全表掃描,如:

<code>select id from t where num=10 or num=20
可以这样查询:
select id from t where num=10
union all
select id from t where num=20 </code>

14、模糊查詢的%XX%會導致全表掃描
15、in 和not in 也要慎用,否則會導致全表掃描,盡量使用between and
16、應盡量避免在where 子句中對欄位進行表達式操作,這將導致引擎放棄使用索引而進行全表掃描。如:

<code>select id from t where num/2=100
应改为:
select id from t where num=100*2 </code>

17、應盡量避免在where子句中對字段進行函數操作,這將導致引擎放棄使用索引而進行全表掃描
18、索引並不是越多越好,索引固然可以提高相應的select 的效率,但同時也降低了insert 及update 的效率,因為insert 或update 時有可能會重建索引,所以怎樣建索引需要慎重考慮,視具體情況而定。一個表的索引數最好不要超過6個,若太多則應考慮一些不常使用到的列上建的索引是否有必要
19、任何地方都不要使用select from t ,用具體的字段列表代替“”,不要返回用不到的任何字段
20、盡可能的使用varchar/nvarchar 代替char/nchar ,因為首先變長字段存儲空間小,可以節省存儲空間,其次對於查詢來說,在一個相對較小的字段內搜尋效率顯然要高一些。
21、盡量使用數字型字段,若只含數值資訊的字段盡量不要設計為字元型,這會降低查詢和連接的效能,並會增加儲存開銷。這是因為引擎在處理查詢和連接時會逐個比較字串中每一個字符,而對於數字型而言只需要比較一次就夠了。

  • 列表項目

以上就介紹了mysql語句最佳化建議,包括了Mysql,sql語句方面的內容,希望對PHP教學有興趣的朋友有幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn