В зависимости от конкретной версии PHP, которую вы используете, вы, возможно, даже не сможете выполнять несколько операторов для каждого запроса / выполнения.
Короткий ответ: нет, не лучше возвращать две отдельные таблицы в одном запросе. Обе таблицы должны иметь одинаковое количество столбцов. Невозможно отличить результат №1 от результата №2 в PHP. И если вы когда-нибудь захотите изменить любую из таблиц, вам нужно будет убедиться, что таблицы по-прежнему остаются совместимыми.
Вы могли бы написать тест, который запускает пару тысяч запросов, сначала как два отдельных, а затем один как UNION ALL (как предложено выше). Я сомневаюсь, что вы обнаружите большую разницу в производительности между ними. Если SQL-сервер работает на том же физическом сервере, запрос выполняется практически мгновенно, и вы можете снизить производительность при выполнении UNION ALL. Если он передается по сети, на другой сервер в сети или через Интернет (по любой причине), это сводит на нет преимущество комбинированного запроса.
Если это семантически отдельные части информации, связывать два запроса вместе в долгосрочной перспективе - не лучшая идея. Это попахивает «преждевременной оптимизацией», и это, как говорит Дональд Кнут, корень всех зол.
person
mattandersen
schedule
02.08.2013
execute()
. Даже если просто установить переменную. Для этого тоже нет причин: вы не увеличиваете производительность, не экономите время или не проявляете смекалку. - person Sammitch   schedule 03.08.2013