| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MySQL > Как можно оптимизировать эту базу |
| Автор: jhonyxakep 17.6.2015, 07:29 | ||
| Привет всем. Есть таблица в БД (MyISAM) с 12 миллионами записей, в которую каждый день добавляется в среднем по 100 тыс новых. Выборка из такой таблицы даже одной записи(SELECT * FROM table LIMIT 1) занимает 10-20 секунд (что вообще честно говоря полный бред). 1 запись в таблице выглядит примерно так:
Первое поле записи - уникальный индекс (да-да, это md5), именно на него я и грешу. К сожалению такой формат базы был задолго до моего начала работы с ней, и реальные тормоза начались примерное на 10 миллионах записей. Выборка происходит с небольшой загрузкой процессора (2-12%), и, в общем то, небольшой загрузкой жесткого диска. Тестировал только с одним подключением. ЗЫ. Для теста создавал мини-таблицу с id-значение, используя теже md5 как уникальные индексы, и конкретно в ней тормозов нет. Также возникают странные затупы с другими таблицами, даже маленькими. MySQL также долго делает выборку из таких таблиц. |
| Автор: Akina 17.6.2015, 11:13 |
Уникальный индекс или первичный индекс? Если первичный - попробуй сделать его именно уником, и ввести в структуру синтетический первичный индекс. |
| Автор: Akina 18.6.2015, 12:29 | ||
jhonyxakep, сколько времени выполняется запрос типа
? Причём как для существующего в таблице значения, так и для несуществующего. И покажи НАСТОЯЩИЙ create table для этой таблицы. |