2011-01-11 50 views
1

我最近注意到,爲我正在處理的Web應用程序重新創建數據庫花了很多時間。我剛剛重新安裝mysql的從Macport ...Mysql CREATE語句非常慢(Mac OS X/Macport安裝)

我變得非常糟糕的演出,例如:

0.293437004089秒爲

CREATE TABLE blockip ( 
id INT(11) NOT NULL AUTO_INCREMENT, 
ip VARCHAR(15) NOT NULL DEFAULT '', 
username VARCHAR(80) NOT NULL DEFAULT '', 
time INT(10) NOT NULL DEFAULT '0', PRIMARY KEY (id)) 
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci TYPE=MyISAM; 

另一臺機器上,附近的我得到0.0016529560089111秒爲同查詢。

問題似乎與磁盤有些相關:當我開始在數據庫中創建70個表時,磁盤使用率變得非常高。

任何想法從哪裏開始尋找線索?

+0

這個問題會更適合在http://dba.stackexchange.com/ – 2011-01-11 08:43:45

+0

我在那裏添加了同樣的問題。感謝您的提示......我們將看看它是如何發展的。 – perrick 2011-01-11 10:18:22

回答

2

我親眼看到了這一點,發現問題是在OS X上可用的文件功能,而不是MySQL選擇使用的其他操作系統,因爲它更安全。查看關於此錯誤報告的最後3條評論:http://bugs.mysql.com/bug.php?id=56550

它詳細地向你的my.cnf文件添加一個指令,該指令將禁止使用不同的函數,並大大加快了OS X中MySQL中所有基於文件的操作。所以,你可以通過將以下內容添加到my.cnf文件在[mysqld]塊中。最好不要在生產環境中這樣做,但是究竟是誰真正將OS X用作生產Web服務器呢?

skip-sync-frm=OFF 

我看到我的單元測試模式創建從16秒降到5秒,這對我來說是一個明顯的贏家。