Как будет быстрее работать MySQL таблица?

Есть таблица из 2х полей:
id (INT)
content (text/varchar/blob - строка точно не одинаковой длинны)

Основная работа с этой таблицей это SELECT id, content FROM table WHERE id = 123456

В таблице 150 000 000 (150 М) записей

Сейчас таблица InnoDB и разбита на 100 разделов по ключу ID

Таблица очень тяжелая (40 ГБ)

Хочу изменить тип на MyISAM - будет ли быстрее работать или сильно будет тормозить?
Слетит конечно разбиение...
  • Вопрос задан
  • 1597 просмотров
Решения вопроса 4
2ord
@2ord
Имеет смысл оставить на InnoDB и указать сжатие таблицы с ROW_FORMAT=COMPRESSED и поэкспериментировать с размером ключа для выяснения с каким получится компактнее. Будет необходимо перенести данные из старой таблицы при помощи
Insert into ... select from ...
Ответ написан
Комментировать
Nexen2
@Nexen2
Web backend Yii2/Symfony Coder
А разве MyISAM вообще повзволяет делать фрагментированные таблицы? По моему эта функциональность есть только в инно-дб, так что ты к типу уже привязан.

По теме: даже если будет быстрее, то на какие-то доли процента (но да, разница если и будет то в сторону убыстрения). Но овчинка выделки не стоит.
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
1. Добавить в конец строки запроса: LIMIT 1
2. Повторный предыдущий "запрос" (только вывод результатов, он не ищет уже!) без лимита: SELECT FOUND_ROWS();
3. Можете ДОПОЛНИТЕЛЬНО создать пару своих таблиц: уникальные слова (id, слово) и линковки к записям (id-слова, id-записи в большой общей таблице) - это указатель для связок уникальных слов к ID-шникам записей исходной (большой) таблицы.
4. Поставить всё на скоростной SSD (и настроить производительность БД).

Всё остальное - прироста скорости никак не даст.
PS: Сверх-сложный вариант: полностью создать свой DAG.
Ответ написан
Комментировать
@Chupaka
Text в InnoDB, как помню, лежит отдельно от самой строки (в отличие от varchar), так что можно подумать над выбором типа для оптимизации производительности. Базка при этом может вырасти в размере. Движок менять определённо смысла нет.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы