![]() |
есть:
Код:
$MaxByte = mysql_fetch_array(mysql_query('SELECT sum(l.ByteSent) as Max |
первый запрос со вторым объединить :)
(вообще всегда все, что можно сделать средствами SQL не надо перекладывать на PHP) ну, а дальше в зависимости от того, как выглядит структура данных, сиречь таблицы. Может уже и некуда оптимизировать :) Ты EXPLAIN - ом все это хозяйство смотрел? |
mar
первый запрос со вторым объединьто не получится! просто не получится, а если у тебя получится то я буду очень за тебя рад! mar может ты выскажешь идею как их можно объединить? |
SELECT sum(l.ByteSent) as Max_byte, count(*) as Max_count
....... order by одно и другое. Или в этом и дело? Тогда UNION использовать |
mar
нужно как SELECT sum(l.ByteSent) as Max_byte, count(*) as Max_count но при этом order by одно и другое даст совсем не то! |
UNION - в одном случае order by одно, в другом - другое. Или mysql этого не умеет?
|
mar
в общем я все попробовал и пришол к выводу: если выборки из одной таблици то лучьше делать два отдельных запроса причем без LIMIT, если выборки из разных, но быстрее один запрос с LIMIT. |
Vlad Drakula
ну, с хорошим limit-ом, конечно, всегда все быстрее :) И вообще все хорошо, что хорошо (судя по соседнему топику :)) кончается |
mar
а вот в том и дело!!! я тоже сначала не поверил, нопотом провел несколько тестов с замером скорости. сейчас я пишу статью об оптимизации MySQL, возможно к выходным закончу. насапом деле половуну верменипотраченного на оптимизацию я трачу на чистое шаманство! так на пример если между GROUP BY и ORDER BY есть перенос сторки то это в моих запросах приводин к стабильному увеличению времени на 0,01с, а для WHERE и AND все в точности до наоборот! причем это на каждом сочитани в запросе! но самое паганое это винда... от ее настроения зависит слишком многое... я сейчас подумываю о том чтобы обзавестись отдельным компом под линуксом для размещения на нем веб сервера. |
Vlad Drakula
ну насчет перевода строк и прочего... Странно это все как-то. Ты из командной строки работаешь? или каким-нибудь phpmyадмином? или это запросы в php-ых скриптах. |
mar
я же говорил что это шаманство! я работаю с запросами из скриптов. |
бред какой-то, причем с базами данных вряд ли связанный.
При проверки бд надо запрос давать прямо в ней ручками и c чем-нибудь что-нибудь вроде EXPLAIN (в других бд есть еще более удобные средства, вроде EXPLAIN ANALYZE в postgres-е), а то опять слишком много неизвестных - опыт не в чистом виде получается. |
mar
дело в том что мне результат нужен не в чистом виде, мне нужна обшая производительность, по этому я и мерию ее косвенным методом. |
Vlad Drakula
ну не бывает общей производительности!!! Если, конечно не заниматься всерьез подсчетом средней температуры по больнице :o У меня дома athlonXP2100 - моя машина, под win98 (сейчас Linux не стоит,- винта под него нет, а собираюсь переделать под XP/debian, или ALT или FreeBSD, сервак собрала из пожертвованных остатков P166 MMX - FreeBSD 4.10 stable, на работе ALTLinux на 1700 athlon-е, боевой сервер с АСУ заказчика 4-процессорный PIV уж не помню какой частоты под FreeBSD. у постоянных заказчиков сейчас хостинг на nodex (respect тебе, кстати :)) - соляра уж не помню на чем, но с кучей соседей по диску. Ну и памяти тоже всюду разное количество и разной. Могу продолжать примеры машин и конфигураций... Как ты думаешь, один и тот же скрипт на всех этих машинах будет одинаково работать? ;) Я более того скажу - даже запросы к БД в условных попугаях постгреса (по EXPLAIN ANALYZE) в зависимости от загрузки машины считаются по-разному. А уж если считать вместе PHP, MySQL и windows - неудивительно, что приходится плясать с бубном :) ЗЫ это не наезд. это размышления вслух - приемы тестирования не только тебе приходится продумывать :) [s]Исправлено: mar, 11:47 19-06-2004[/s] |
Время: 15:25. |
Время: 15:25.
© OSzone.net 2001-