Узкие места производительности MySQL - PullRequest
0 голосов
/ 12 января 2009

У меня довольно простой запрос

SELECT col1 FROM table1

Эта команда выводит около 300K + записей в секунду, что звучит разумно, но другие методы массового декодирования сохраненных данных (например, десериализация массива) работают на пределе возможностей жесткого диска, т.е. 40-50 МБ / с, по сравнению с 2-3 МБ / с с MySQL.

Я вижу, что моя машина MySQL связана с центральным процессором, и я считаю, что должно быть более простое решение для продолжения использования MySQL и получения удвоенной пропускной способности (конечно, для сложных запросов в том же порядке), не тратя состояние на оборудовании

Есть идеи, как поиграть с сервером, чтобы это произошло?


РЕДАКТИРОВАТЬ: я использую движок MyISAM


РЕДАКТИРОВАТЬ: сервер уже приличная машина, поэтому я не пытаюсь ущипнуть свои копейки здесь ...

Ответы [ 3 ]

4 голосов
/ 12 января 2009

Используете ли вы правильный инструмент для вашей проблемы? MySQL - это реляционная база данных. Это превосходит в запросах, которые включают отношения между столбцами. Тип запроса, который вы описываете, не использует сильные стороны базы данных и по-прежнему окупает накладные расходы. MySQL не гарантирует скорость - он обеспечивает постоянное хранилище со сложными возможностями запросов на разумной скорости. Может быть, вам нужна другая архитектура данных. Или, если ваш запрос не является репрезентативным, вот книга о производительности mysql и соответствующего блога .

3 голосов
/ 12 января 2009

Сохранение базы данных в памяти. Делает это действительно быстро!

1 голос
/ 12 января 2009

Базы данных чаще всего связывают машинный ввод-вывод.

Если ваша машина связана с процессором, то я не думаю, что база данных является вашим узким местом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...