Секционирование огромной Mysql таблицы имеет ли смысл?

273
23 декабря 2016, 13:38

Имеется таблица Mysql MyISAM:

  • Таблица содержит 22 колонки, часть из которых могут быть NULL
  • Первая колонка phone обязательна и всегда содержит номер телефона из 10 цифр (любых).
  • Колонка phone не является уникальной и могут быть несколько разных строк, содержащих одинаковый phone
  • Таблица статична и не предполагает добавлений строк
  • Размер таблицы в районе 500 миллионов строк

    Каким образом можно максимально оптимизировать скорость выборки из таблицы по phone? Поможет ли мне секционирование?

Answer 1

Первый способ оптимизации - это формирование индекса, оптимального для конкретного запроса. Поскольку таблица статическая, в ней можно создать несколько разных индексов, оптимизирующих большинство запросов к таблице - тормозов при изменении-пополнении-удалении от большого количества индексов можно не опасаться. Ускорение ценой повышенного расхода дискового пространства.

Секционирование в данном случае скорее всего не поможет. Во всяком случае эффект от него будет копеечным, на уровне точности измерений. Кроме случаев, когда всё происходит на системе с катастрофическим недостатком ресурсов, в первую очередь памяти под индексный кэш.

READ ALSO
INSERT работает, а SELECT нет

INSERT работает, а SELECT нет

Пробовал через mysql тоже самое

268
Отпадает MySQL, MyISAM: Unable to lock ./ibdata1, error: 11

Отпадает MySQL, MyISAM: Unable to lock ./ibdata1, error: 11

Иногда падает MySQL сервер, на сайте это проявляется ошибкой, которая гласит, мол, не находит mysqldsock, собственно на сервере он тоже не создается

267
Экранирование кавычек в MySQL (Laravel Seeder)

Экранирование кавычек в MySQL (Laravel Seeder)

Добрый вечер! Столкнулся со следующей проблемой, с помощью DB Seeder пытаюсь внести значение в поле типа json:

310
Как перевести mssql в mysql?

Как перевести mssql в mysql?

ЗдравствуйтеЕсть вот такой mssql запрос:

285