Есть таблица, кликаем на заголовок таблицы. идет сортировка
составной индекс если будут использоваться много полей, и отдельные если каждое из полей будет одиночной сортировкой.
Сколько по времени должны выполняться все запросы на одной странице?
В общем случае запросы должны выполняться за время меньше секунды, близкое к 1 секунде уже считается весьма высоким. Исключения составляют приложения с очень сложной логикой, где ожидание ответа не сильно меняет ценность результата. Например на сайте новостей 1 секунда это много, а на приложении с миллиардами записей статистики по мировым продажам жвачки в розницу для планирования расширения сети продаж с 30 объединениями/группировками/дистинкт выборками надцать секунд или даже минут это норм, так как задача другая совершенно.
Как правильно составить запросы, сначала нужно исследовать запрос при помощи explain, а потом писать в php?
сначала пишется запрос с требуемым результатом, затем его можно оптимизировать. Так как оптимизация редко идет по пути изменения самого запроса, переписывать его не надо, а explain подскажет где можно подкрутить что-то на уровне индексов/памяти, код при этом вообще не трогается. Да и по большому счету 99% типовых задач не пишутся руками, а пускаются через модель/орм.
Нужно составлять запросы так, чтобы explain: type<>ALL
Если вам нужен именно конкретный запрос с конкретным набором выходных данных, менять вы его не будете, логично что крутить вы можете только структуры данных и индексы, ну может еще что-то в настройках самого сервера.
Подскажите, пожалуйста, хороший ресурс про создание индексов.
Дока по используемой бд достаточно хорошо описывает работу с индексами. Более подробно можно спросить ребят профильно занимающихся работой с бд,
Akina,
Лентюй ...