2009-10-29 4 views
0

Я установил MySQL 5.1.40 Распространение источника (64-разрядный исполняемый файл x86_64), следующий за этими instructions by Hivelogic и при использовании gem mysql (2.8.1) с использованием ARCHFLAGS = "- arch x86_64".MySQL чрезвычайно медленный под Snow Leopard

Я использую его для разработки Ruby on Rails, и моя проблема в том, что даже если MySQL работает во всех отношениях, он очень медленный.
Примите это сравнение с sqlite3 при выполнении стандартного рейка db: выполните миграцию, создав около 15 таблиц.

MySQL:

время грабли БД: мигрировать
реальные 0m4.882s
пользователь 0m1.426s
SYS 0m0.235s

sqlite3:

время rake db: migrate
реальных 0m2.282s
пользователя 0m1.501s
SYS 0m0.255s

Также нужно учитывать, что около 1.5s времени выполнения на каждый тест загрузка рамок рельсов, что означает, что sqlite3 выполняет SQL-задачи примерно 0,5-1 с, а MySQL требует более 3-х для одного и того же набора задач.

Не правда ли, что это просто неправильно? Что может быть причиной этого? Кто-нибудь испытывает ту же проблему?

Я установил и повторно установлен MySQL и MySQL/рубин драгоценный камень несколько раз, но всегда с тем же исходом ... :(

Моя установка Snow Leopard является обновлением, а не новая установка. Может ли это быть причина этой проблемы? Некоторые устаревшие библиотеки?

Спасибо!

ответ

0

из данных в вашем вопросе, это звучит, как вы сравниваете бананы с апельсинами.

в частности, у вас есть какие-либо доказательства того, что Рез Ульты даже не в строю? Сравнение с другими платформами, использующими те же тесты?

Это даже тест, который имеет отношение ко всему, что вы в конечном итоге хотите сделать? То есть вы тестируете что-то, что имеет отношение к типичному набору задач, которые вы обычно выполняете или пытаетесь оптимизировать для одноразовой задачи, которая происходит во время установки?

Обратите внимание, что SQLite и MySQL имеют принципиально разные профили производительности. SQLite является однопользовательской, неклиентской/серверной базой данных, тогда как MySQL обычно настроен на роль клиента/сервера. Помимо совершенно разных профилей производительности, это также приводит к совершенно различным характеристикам масштабируемости.

+0

Спасибо за ваш отзыв bbum! Единственное сравнение, которое у меня есть с другой платформой, заключается в том, что я запускал один и тот же тестовый костюм (который использует вышеперечисленный db: migrate) под Leopard, и теперь он значительно медленнее в Snow Leopard, время выполнения занимает около 1 минуты в Leopard и около 3- 4 мин в Snow Leopard. Я также заметил, что mysql, похоже, «задыхается», которого не было в Leopard.Если я попытаюсь вставить 200 записей - первые 30-40 идет молниеносно (~ 0,8 мс), но затем резко замедляется до ~ 200 мс на вставку, даже если сложность между первыми вставками и последними одинакова. – mrD

+0

OK-- Я бы предложил использовать 'sample' на Leopard и Snow Leopard, чтобы получить вид обзора, где идут циклы CPU. Это также может быть связано с изменениями синхронизации диска между двумя ОС. В любом случае, обычно необходимо настроить базу данных на определенную систему. – bbum