Как оптимизировать запрос SQLi

135
31 января 2018, 15:00

Есть БД которая собирает информацию и каждую минуту делает запись в БД по 350 записей.

Сейчас строк в таблице 15кк и вес 1.4gb

Делаю запрос по условию поля и за период

SELECT * FROM `history_of_global_positioning` WHERE VIN = 'ААААААААААААААА' AND (date_in BETWEEN STR_TO_DATE('2018-01-30 00:00:00', '%Y-%m-%d %H:%i:%s') AND STR_TO_DATE('2018-01-30 23:59:59', '%Y-%m-%d %H:%i:%s')) ORDER BY date_in ASC

Результат запроса

Отображение строк 0 - 24 (1130 всего, Запрос занял 59.3092 сек.) [date_in: 2018-01-30 00:00:03... - 2018-01-30 00:24:03...]

Поставил Ubuntu 17.10 - Развернул PHP 7.2 + MySQL Железо RAM 2gb, процессор atom 4 ядра 1.7 частоты, SSD 60gb

Собираемся ставить Железо RAM 32gb, процессор core i7 4.2 частоты, SSD 256gb + Ubuntu 17.10.1

По началу запрос выполнялся за секунд 15, с ростом базы это время увеличивается. В запросе видно что выборка идёт за сутки, т.е. если я выберу период больше - это будет гиблое дело.

Спасет ли замена железа? Корректный ли используется запрос? Что посоветуете?

Средней расчет записей в год примерно будет 180кк

READ ALSO
Yii2, поиск точки входа

Yii2, поиск точки входа

Мне предоставили доступ к проекту Yii2И я не могу понять где находится точка входа в приложение(индексный файл) чтоб указать точку входа для...

151
Как в Laravel Dusk заставить выбрать фото?

Как в Laravel Dusk заставить выбрать фото?

Есть задачкаНаписать автотест, который бы менял аватарку пользователя в личном кабинете

132