У меня есть простая база данных с 4 таблицами по несколько миллионов строк в каждой и несколькими индексами. Я выполняю несколько сотен обновлений и вставляю их в минуту. Чтения гораздо реже, но они должны быть быстрыми - для веб-приложения. Чтения должны иметь приоритет - я могу отложить запись, если это поможет улучшить скорость чтения.
В настоящее время, когда я не пишу вставки и обновления, все красиво выбирается. Когда я пишу одновременно, все может замедлиться - иногда массово. Сервер определенно привязан к вводу-выводу - я использовал iostat и видел, что унификация диска достигла 99% в периоды высокой записи.
Завтра я попытаюсь сократить индекс или два, уменьшить размер строки и отключить кэш запросов. У кого-нибудь есть какие-либо другие предложения относительно того, как таблица или сам mysql должны быть настроены для большого количества записей и нескольких операций чтения?
Таблицы в настоящее время настроены на использование механизма innodb с компактными строками, и большая часть конфигурации по-прежнему настроена по умолчанию, кроме размера пула буферов. БД будет продолжать быстро расти, поэтому не стоит выбирать все это.
Обновление: это на slicehost.com - 1 Гб оперативной памяти, рейд 10.