摘要:如果表數據有一定的量了,不妨用命令來取得字段的優化建議在里可以在查看表時,點擊來查看這些建議如此可以讓你的表字段結構趨向完善。永遠別要用復雜的語句來顯示你的聰明。應盡量避免在子句中使用或操作符,否則將引擎放棄使用索引而進行全表掃描。
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 來連接條件,否則將導致引擎放棄使用索引而進行全表掃描,如:
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
14、模糊查詢的%XX%會導致全表掃描
15、in 和 not in 也要慎用,否則會導致全表掃描,盡量使用between and
16、應盡量避免在 where 子句中對字段進行表達式操作,這將導致引擎放棄使用索引而進行全表掃描。如:
select id from t where num/2=100 應改為: select id from t where num=100*2
17、應盡量避免在where子句中對字段進行函數操作,這將導致引擎放棄使用索引而進行全表掃描
18、索引并不是越多越好,索引固然可以提高相應的 select 的效率,但同時也降低了 insert 及 update 的效率,因為 insert 或 update 時有可能會重建索引,所以怎樣建索引需要慎重考慮,視具體情況而定。一個表的索引數最好不要超過6個,若太多則應考慮一些不常使用到的列上建的索引是否有必要
19、任何地方都不要使用 select from t ,用具體的字段列表代替“”,不要返回用不到的任何字段
20、盡可能的使用 varchar/nvarchar 代替 char/nchar ,因為首先變長字段存儲空間小,可以節省存儲空間,其次對于查詢來說,在一個相對較小的字段內搜索效率顯然要高些。
21、盡量使用數字型字段,若只含數值信息的字段盡量不要設計為字符型,這會降低查詢和連接的性能,并會增加存儲開銷。這是因為引擎在處理查詢和連接時會逐個比較字符串中每一個字符,而對于數字型而言只需要比較一次就夠了。
列表項目
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/30317.html
閱讀 766·2023-04-25 17:33
閱讀 3626·2021-07-29 14:49
閱讀 2480·2019-08-30 15:53
閱讀 3435·2019-08-29 16:27
閱讀 2000·2019-08-29 16:11
閱讀 1030·2019-08-29 14:17
閱讀 2432·2019-08-29 13:47
閱讀 2016·2019-08-29 13:28