Mysql性能優化的幾個技巧
2012/1/31 16:18:22
1. 永遠為每張表設置一個ID
我們應該為數據庫里的每張表都設置一個ID做為其主鍵,而且最好的是一個INT型的(推薦使用UNSIGNED),并設置上自動增加的AUTO_INCREMENT標志。
就算是你 users 表有一個主鍵叫 “email”的字段,你也別讓它成為主鍵。使用 VARCHAR 類型來當主鍵會使用得性能下降。另外,在你的程序中,你應該使用表的ID來構造你的數據結構。
而且,在MySQL數據引擎下,還有一些操作需要使用主鍵,在這些情況下,主鍵的性能和設置變得非常重要,比如,集群,分區……
在這里,只有一個情況是例外,那就是“關聯表”的“外鍵”,也就是說,這個表的主鍵,通過若干個別的表的主鍵構成。我們把這個情況叫做“外鍵”。比 如:有一個“學生表”有學生的ID,有一個“課程表”有課程ID,那么,“成績表”就是“關聯表”了,其關聯了學生表和課程表,在成績表中,學生ID和課 程ID叫“外鍵”其共同組成主鍵。
2. 使用 ENUM 而不是 VARCHAR
ENUM 類型是非常快和緊湊的。在實際上,其保存的是 TINYINT,但其外表上顯示為字符串。這樣一來,用這個字段來做一些選項列表變得相當的完美。
如果你有一個字段,比如“性別”,“國家”,“民族”,“狀態”或“部門”,你知道這些字段的取值是有限而且固定的,那么,你應該使用 ENUM 而不是 VARCHAR。
3. 盡可能的使用 NOT NULL
除非你有一個很特別的原因去使用 NULL 值,你應該總是讓你的字段保持 NOT NULL。這看起來好像有點爭議,請往下看。
首先,問問你自己“Empty”和“NULL”有多大的區別(如果是INT,那就是0和NULL)?如果你覺得它們之間沒有什么區別,那么你就不要使用NULL。(你知道嗎?在 Oracle 里,NULL 和 Empty 的字符串是一樣的!
不要以為 NULL 不需要空間,其需要額外的空間,并且,在你進行比較的時候,你的程序會更復雜。 當然,這里并不是說你就不能使用NULL了,現實情況是很復雜的,依然會有些情況下,你需要使用NULL值。
3. 無緩沖的查詢
正常的情況下,當你在當你在你的腳本中執行一個SQL語句的時候,你的程序會停在那里直到沒這個SQL語句返回,然后你的程序再往下繼續執行。你可以使用無緩沖查詢來改變這個行為。
mysql_unbuffered_query() 發送一個SQL語句到MySQL而并不像mysql_query()一樣去自動fethch和緩存結果。這會相當節約很多可觀的內存,尤其是那些會產生大 量結果的查詢語句,并且,你不需要等到所有的結果都返回,只需要第一行數據返回的時候,你就可以開始馬上開始工作于查詢結果了。
然而,這會有一些限制。因為你要么把所有行都讀走,或是你要在進行下一次的查詢前調用 mysql_free_result() 清除結果。而且, mysql_num_rows() 或 mysql_data_seek() 將無法使用。所以,是否使用無緩沖的查詢你需要仔細考慮。
4. 把IP地址存成 UNSIGNED INT
很多程序員都會創建一個 VARCHAR(15) 字段來存放字符串形式的IP而不是整形的IP。如果你用整形來存放,只需要4個字節,并且你可以有定長的字段。而且,這會為你帶來查詢上的優勢,尤其是當 你需要使用這樣的WHERE條件:IP between ip1 and ip2。
我們必需要使用UNSIGNED INT,因為 IP地址會使用整個32位的無符號整形。
而你的查詢,你可以使用 INET_ATON() 來把一個字符串IP轉成一個整形,并使用 INET_NTOA() 把一個整形轉成一個字符串IP。在PHP中,也有這樣的函數 ip2long() 和 long2ip()。
5. 固定長度的表會更快
如果表中的所有字
下一頁
返回列表
返回首頁
主站蜘蛛池模板:
性色欲网站人妻丰满中文久久不卡|
浪荡女天天不停挨cao日常视频|
国产成人精品美女在线|
99久久国产综合精品麻豆|
成人毛片免费网站|
久久精品亚洲一区二区|
欧美成人伊人十综合色|
做受视频60秒试看|
美女把腿扒开让男人桶爽了|
国产在线精品二区赵丽颖|
在线观看91精品国产入口|
坐公交车弄了2个小时小视频|
一级毛片一级毛片一级毛片|
日操夜操天天操|
久久这里只有精品66re99|
欧美在线综合视频|
亚洲欧美日韩国产vr在线观|
男孩子和男孩子做到哭泰国|
嘟嘟嘟www在线观看免费高清
|
亚洲av第一页国产精品|
欧美精品手机在线|
你是我的城池营垒免费观看完整版|
美女被按在的视频网站观看|
国产亚av手机在线观看|
成人免费的性色视频|
国产精品亚洲а∨无码播放麻豆|
97日日碰人人模人人澡|
奇米影视四色中文字幕|
一级试看120秒视频|
扒开双腿疯狂进出爽爽爽动态图
|
精品无码人妻一区二区三区不卡|
韩剧学生的妈妈|
国产成人综合久久亚洲精品|
三上悠亚在线网站|
国产美女一级特黄毛片|
99热免费在线观看|
太粗太深了用力点视频|
一二三四日本视频中文|
成人a一级试看片|
中文字幕人成乱码中文乱码|
无需付费看视频网站入口|