回覆列表
-
1 # 使用者667178917229
-
2 # pzyyo24296
1、如果mysql的data資料很少,記憶體足夠大,可以把data防止到記憶體盤中。 linux如下設定記憶體盤: mount -t ramfs none /ram 預設使用記憶體一半 如果記憶體不夠大,系統有多個硬碟,則把mysql應用程式和data目錄分開到不同硬碟上。
2、mysql的表設定為myiasm,比同等條件下的innodb能快20倍以上
3、匯入完成以後才建立資料庫索引
4、匯入完成以後根據需要轉換為其他engine,比如innodb
5、多條資料插入一個表,可以使用多記錄方式: insert into tablename values(’xxx’,"xxx’),(’yyy’,"yyy’)…;
6、如果多個mysql執行匯入,可以使用delayed insert delayed into tablename values(’sss’,’ssss’);
7、大檔案sql檔案可以用split分成多份再導
8、同等條件下,redhat比ubuntu強很多(幾乎肯定)
補充一下官丁, in (幾百或幾千個id),我覺得這個效率不成問題啊,特別是在id為主鍵的時候,MySQL的效率還是很高的。如果你非得要繼續提高,可以做以下事情(假設你是innodb,如果不是的話,先改為innodb):(1)如果MySQL版本小於5.5,那麼升級版本到5.5以後,最好是最新版本,5.5對in的操作有了飛躍性的提高。 (2)增加記憶體,開大innodb_buffer_pool,增加pool可以可以快取page的空間,讓儘可能多的資料都快取。(3)改善磁碟配置,用ssd或者flash卡儲存,提高磁碟掃描速度(4)官丁說的第四個,不需要改成單條,但可以把一個in很大的列表分成若干分開的列表,至於分多少,可能需要根據機器效率還有你需要的效率取個平衡了,in的列表如果非常大,例如超過10w,100w,效率不高。