Mysql CREATE очень медленно работает (установка Mac OS X / Macport) - PullRequest
1 голос
/ 11 января 2011

Я недавно заметил, что воссоздание базы данных для веб-приложения, над которым я работаю, занимает много времени.Я только что переустановил Mysql из 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 таблиц в своей базе данных.

Любые идеи, гденачать для подсказки?

1 Ответ

2 голосов
/ 27 января 2012

Я видел это сам и обнаружил, что проблема связана с файловой функцией, доступной в OS X, но не с другими операционными системами, которые MySQL выбирает для использования, поскольку это безопаснее. Проверьте последние 3 комментария к этому сообщению об ошибке: http://bugs.mysql.com/bug.php?id=56550.

В нем подробно описано добавление в ваш файл my.cnf директивы, которая отключит использование другой функции и значительно ускорит все файловые действия в MySQL в OS X. Таким образом, вы можете быстро это исправить, добавив следующее в my.cnf файл в блоке [mysqld]. Вероятно, лучше не делать этого на производстве, но кто на самом деле использует OS X в качестве рабочего веб-сервера?

skip-sync-frm=OFF

Я видел, как моя схема модульных тестов сократилась с 16 секунд до 5, что сделало меня очевидным победителем.

...