2017-02-22 44 views
0

下運行MySQL我在加快目前正使用MySQL的持久性測試套件的過程。我在my.cnf改變datadirtmpdir使用RAMDisk中,如下圖所示。上RAMDisk的

datadir   = /run/shm/mysql 
tmpdir   = /run/shm/mysqltemp 

的問題是,我每次運行整個測試套件,在某些時候我碰到了外鍵約束衝突時,測試嘗試刪除某些行的部分功能進行測試。怪異的是,當我不上的RAMDisk運行MySQL或當我離開datadir在默認/var/lib/mysql/但只改變tmpdir這不會發生。我想在RAM中運行與datadir的測試,因爲我注意到,清理的邏輯是極快的,當我這樣做。

有人能幫忙指出我可能是錯在這裏做什麼?

+0

對不起我的意思,離開DATADIR但只改變TMPDIR。我將編輯該問題以糾正該問題。 – ivanorone

回答

1

你確定你有足夠的內存就可以運行MySQL。此外,它的不建議上RAMDISK運行MySQL。

說起優化。您應該使用MEMORY類型的數據存儲,當然也可以在SSD上運行。 HDD/SSD之間的主要區別在於I/O等待時間,這就是爲什麼如此多的服務器現在使用像REDIS這樣的內存(緩存)數據庫。

查看一下,好運氣的優化。

+1

感謝您的幫助。我在生產中沒有在RAMDisk上運行MySQL,它僅用於測試以及僅具有更快測試套件的目標。 與存儲器類型的數據存儲,我真的不希望使用,因爲我想要檢測的配置是儘可能接近生產在這裏我使用InnoDB運行。 我也已經在使用SSD。該套件以超過11小時,沒有任何我的問題談了優化和大約3個小時的時候,我只改變TMPDIR到RAMDISK – ivanorone

+0

上的RAMDisk運行InnoDB的不應該是問題,但正如我所說的它是不推薦使用。外鍵/索引的損壞可能是由於MySQL空間不足導致的。你也可以提到你正在使用的存儲系統的版本嗎? –

+0

我正在使用MySQL版本5.5.54。 RAMDisk有8Gb的內存,整個盒子有16Gb的內存,這個盒子只能運行測試套件。也許這個內存不夠,但當內存不足時MySQL不應該抱怨? – ivanorone

相關問題