PHP Самый быстрый запрос в огромной БД mysql

php mysql

44 просмотра

1 ответ

Я создаю таблицу для хранения миллионов записей, и это 86400 секунд в день x 365 дней x 10 лет = 315 360 000 строк записей только с 3 столбцами, с указанием даты и времени, десятичного числа и smallint (всего 3 поля) datetime в качестве индекса.

Я думаю о преобразовании datetime в INT без знака (PHP time ()), чтобы уменьшить объем памяти. С datetime, decimal и smallint у меня 2,5 ГБ на 1 таблицу. Я не пытался заменить DATETIME на INT.

Вставка в эту таблицу - однократная работа, и у меня будет много инструкций SELECT для аналитических целей, поэтому я меняю InnoDB на MyISAM.

Есть мысли или предложения?

Автор: Fire Источник Размещён: 08.11.2019 11:11

Ответы (1)


0 плюса

Индексы - это одна из вещей, используемых для ускорения поиска в таблице: http://dev.mysql.com/doc/refman/5.7/en/mysql-indexes.html.

На базовом уровне индексы отвечают за то, чтобы механизм не перебирал всю таблицу при поиске того, что вы просили.

Некоторые из вещей, указанных в ссылке относительно использования индексов:

Чтобы быстро найти строки, соответствующие предложению WHERE.

Исключить ряды из рассмотрения. Если есть выбор между несколькими индексами, MySQL обычно использует индекс, который находит наименьшее количество строк (самый селективный индекс).

Посмотрите, соответствует ли это вашим потребностям

Автор: RanST Размещён: 20.08.2016 10:41
Вопросы из категории :
32x32