У меня есть таблица MyISAM, разделенная по диапазону с 90 разделами, представляющими последние 90 дней. Я ожидаю, что эта таблица получит от 500 миллионов до 1 миллиарда записей, прежде чем я начну вращать разделы (отбрасывая старые и создавая новые).
Какие параметры конфигурации сервера вы бы добавили в свой .my.conf
файл, чтобы обеспечить максимально быструю вставку в эту таблицу в любое время?
Любые другие советы также будут оценены.
РЕДАКТИРОВАТЬ: Под «максимально быстрой» я подразумеваю максимально возможную скорость вставки и поддержание, когда она содержит 100 миллионов строк.
Когда вы думаете о более быстрой вставке, MYISAM - хороший выбор, но получение будет затруднено, потому что вся таблица будет заблокирована. Если вы планируете извлечение, MYISAM не будет хорошим вариантом, тогда нам нужно использовать Innodb, потому что он поддерживает блокировку на уровне строк. Если вы думаете о разделах, создайте раздел на основе вашей бизнес-логики. Попробуйте удалить все связанные ключи, кроме индекса раздела
Если мы пойдем на MYISAM, вам следует переосмыслить избранные запросы
Я предполагаю, что ваше приложение регистрирует данные в базе данных в одной таблице. Чтобы получить максимальное ускорение, вам нужно изменить определение ваших данных (таблицы). Вы должны удалить каждый индекс, автоинкремент, ключ или уникальный.
Лучше отрефакторить свое приложение. Разделите свои записи. Сначала запишите в файл журнала, это действительно быстро. Во-вторых, используйте второй процесс, который считывает ваши данные из файла журнала и записывает их в вашу базу данных. Вы должны разделить эти два новых приложения на разных серверах.