Да, сглупил, 1 join лишний, но проблема не решилась. Не могу понять, но подзапрос всегда выполняется быстро, а основной - около секунды(стал быстрее, когда убрал 1 join, но всё равно медленно). То есть, ведь в подзапросе выполняется основная работа. Я не могу понять, почему выборка записей из 8-ми сотен id отнимает так много времени? И почему не используется индекс, почему type = all?
Дмитрий Ковальский: В том то и дело, что там много записей) Ну то есть, не миллиарды конечно, но пару миллионов будет. Приведенный запрос выполнился за 2.4с.
Я тут немного почитал про EXPLAIN. "Type all" означает, что mysql сканирует всю таблицу. Мне не понятно зачем он это делает, если есть первичный ключ? В possible_keys он, кстати, указан.
Изображение может иметь несколько ключевых слов. images_keywords содержит миллион записей, поэтому нужно писать DISTINCT id. Можно было бы написать GROUP BY, но запрос крайне медленный
Владимир Дементьев: Вы сейчас описали пример простейшей авторизации. Дело в том, что я использую апи стороннего сайта, который требует связку логин-пароль для получения токена, по которому происходит дальнейшая работа. Я не могу передать хеш.
abcyu За метатег отдельное спасибо. У меня не используются ссылки с хештегом, как и History API. У меня галлерея для которой важно знать размер экрана, а тут без js не обойтись.
shambler81: Почти написал, но есть проблема. Я использую команду cp -rl --parents $path $day для создания жестких ссылок, но мне нужно задать список исключений. В rsync есть для этого флаг --exclude-from=FILE, но я не знаю как создать жесткие ссылки при помощи rsync.
Насчет find($id) - я ошибся, конечно, его там нет. Я понимаю, зачем нужен статический метод, но что делать, когда мне в этом методе нужно использовать какие-то сервисы? Сохранить файл на диск, например. В конструкторе модели я сохраняю ссылку на $app, которая выступает хранилищем для сервисов. В методе я могу написать $this->app->get('filesystem')->save($file). Если делать статический метод, то придется писать App::get('filesystem')->save($file). Я стараюсь избегать такого поведения.
Спасибо за справку. Уже понял, что нужно с хардваре играться. Просто на той же винде с температурой всё нормально, она в районе 50 градусов. Хотел узнать, может есть какие-то системные утилиты длс ос, которая лишь недавно(насколько я знаю) стала пробиваться в мир геймдева. Всё, что нашел - совет ограничить процессорное время для игры, но т.к. проц нагружен всего на 30%, то этот вариант не подошел.