国产欧美日韩第一页|日本一二三不卡视频|在线精品小视频,亚洲第一免费播放区,metcn人体亚洲一区,亚洲精品午夜视频

MySQL文件優(yōu)化

2009-12-16 17:22:40 8878



 [2]查詢(xún)和索引的優(yōu)化
  只有當數據庫里已經(jīng)有了足夠多的測試數據時(shí),它的性能測試結果才有實(shí)際參考價(jià)值。如果在測試數據庫里只有幾百條數據記錄,它們往往在執行完第一條查詢(xún)命令之后就被全部加載到內存里,這將使后續的查詢(xún)命令都執行得非???-不管有沒(méi)有使用索引。只有當數據庫里的記錄超過(guò)了1000條、數據總量也超過(guò)了MySQL服務(wù)器上的內存總量時(shí),數據庫的性能測試結果才有意義。
  在不確定應該在哪些數據列上創(chuàng )建索引的時(shí)候,人們從EXPLAINSELECT命令那里往往可以獲得一些幫助。這其實(shí)只是簡(jiǎn)單地給一條普通的SELECT命令加一個(gè)EXPLAIN關(guān)鍵字作為前綴而已。有了這個(gè)關(guān)鍵字,MySQL將不是去執行那條SELECT命令,而是去對它進(jìn)行分析。MySQL將以表格的形式把查詢(xún)的執行過(guò)程和用到的索引等信息列出來(lái)。
  在EXPLAIN命令的輸出結果里,第1列是從數據庫讀取的數據表的名字,它們按被讀取的先后順序排列。type列指定了本數據表與其它數據表之間的關(guān)聯(lián)關(guān)系(JOIN)。在各種類(lèi)型的關(guān)聯(lián)關(guān)系當中,效率最高的是system,然后依次是const、eq_ref、ref、range、index和All(All的意思是:對應于上一級數據表里的每一條記錄,這個(gè)數據表里的所有記錄都必須被讀取一遍——這種情況往往可以用一索引來(lái)避免)。
  possible_keys數據列給出了MySQL在搜索數據記錄時(shí)可選用的各個(gè)索引。key數據列是MySQL實(shí)際選用的索引,這個(gè)索引按字節計算的長(cháng)度在key_len數據列里給出。比如說(shuō),對于一個(gè)INTEGER數據列的索引,這個(gè)字節長(cháng)度將是4。如果用到了復合索引,在key_len數據列里還可以看到MySQL具體使用了它的哪些部分。作為一般規律,key_len數據列里的值越小越好。
  ref數據列給出了關(guān)聯(lián)關(guān)系中另一個(gè)數據表里的數據列的名字。row數據列是MySQL在執行這個(gè)查詢(xún)時(shí)預計會(huì )從這個(gè)數據表里讀出的數據行的個(gè)數。row數據列里的所有數字的乘積可以大致了解這個(gè)查詢(xún)需要處理多少組合。
  最后,extra數據列提供了與JOIN操作有關(guān)的更多信息,比如說(shuō),如果MySQL在執行這個(gè)查詢(xún)時(shí)必須創(chuàng )建一個(gè)臨時(shí)數據表,就會(huì )在extra列看到usingtemporary字樣。


提交成功!非常感謝您的反饋,我們會(huì )繼續努力做到更好!

這條文檔是否有幫助解決問(wèn)題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問(wèn)題:
-->