@Snort

Где лучше фильтровать данные из БД?

Не знаю как лучше сделать отбор данных, есть табличка в бд в которой 8 полей из них нужно фильтровать данные по 5 полям, думал сделать простым запросом "SELECT * FROM table WHERE col1 = '1' AND col2 LIKE '%2% AND col3 REGEXP '\s''' примерно так, в таблице не более 20 строк, но они периодически меняются. Всего планируется что будет ~600к таких селектов в день и столько же инсертов в другие табличке на основании полученных данных. Или лучше будет получить все данные из это таблице и в php сделать отбор? Очень важна скорость работы скрипта. Mysql выбрал потому что с ним только и работал) Вообщем товарищи эксперты, подскажите как лучше сделать и что можно применить для увеличения быстродействия(другой тип базы,или какой ни будь кеш сделать)
  • Вопрос задан
  • 2394 просмотра
Пригласить эксперта
Ответы на вопрос 3
@Aios
Программист - Lite.
SELECT сам по себе быстрый если в нем нет JOIN. 600к строк проблема если серверу уже лет 20 и обрабатывает он как минимум еще около 10к людей.

Почитайте про настройку MySQL
Так же про Индексирование

Ну, а если еще захотите использовать некое кеширование то тут я не силен - скажу только что использую в первом запросе сохранение данных с него в кеш и периодически обновляю ID строк которые туда попадают.

Всего найлучшего!
Ответ написан
Writerim
@Writerim
Заполнить позже...
Полагаю,что проще будет через php. По моему LIKE работает очень медленно и php вроде с этим справится быстрее.
Ответ написан
FanatPHP
@FanatPHP
Чебуратор тега РНР
Если речь о 20-и строках, то вопрос о скорости не имеет смысла. Можешь делать в базе, можешь в скрипте, а можешь попеременно - на скорости это никак не скажется.

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

Поиски же более быстрого решения надо производить только тогда, когда текущее тормозит.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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