Что производительней — сортировка массива средствами php, или выборка и сортировка запросом mysql?
Видел доклад по кэшированию данных в приложениях в которых юзают nosql. В подходе докладчика кэшируются коллекции ключей для каждого варианта выборки и все операции по сортировке уже делают в скрипте.
Например, есть записи post и author;
Для каждого author в кэше будет коллекция post_ids;
Если нужно сделать выборку по 2м авторам, то делается срез массива и получаем результат.
Как данный подход покажет себя в связке php+mysql. Будут ли операции с массивом производительней чем запросы к БД?
Если есть индекс по полю для которого строится сортировка -- то mySQL быстрее. И чем больше записей, тем сильнее и сильнее это будет заметно.
В nosql индексов обычно нет и потому там иногда на стороне приложения сортировка быстрее... особенно для сложных запросов... и порой сортировку на стороне базы построить даже сложнее (например, в случае если данные размазаны по кластеру и для сортировки их сначала надо собрать)
Но в mysql будут джоины. Даже в простом варианте post + author будет промежуточная таблица которую нужно джоинить а более сложных конструкциях джоинов будет несколько. Даже так mysql будет производительней?
Сергей Еремин, ну по сути индексы это и есть механизм кэширования в sql как я себе это понимаю. В общем вывод в том, что результаты выборки кэшировать смысла нет.
Ты видел доклад про то как мучают в аду нерадивых разработчиков.
В нормальной БД все будет работать быстрее и без необходимости использовать, прогревать и инвалидировать кэш.
Вместо того чтобы смотреть доклады, тебе надо купить букварь по базам данных.