|
|
|
Сумма по группам...
|
|||
|---|---|---|---|
|
#18+
Даже не знаю, насколько правильно озаглавил топик, но попробую объяснить, чего надо. Есть таблица: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Записи в ней вида: Код: plaintext 1. 2. 3. 4. где дата 2005112218 - это 22.11.2005, 18:00-19:00 Хочется одним запросом показать юзеру трафик скажем за месяц, просуммировав его посуточно, то бишь чтоб каждая строка результата запроса содержала SUM(traf_in), SUM(traf_out) для traf_type=1, ip=192168005018 за период 2005112200-2005112223. Т.к. не слишком силен в подобных выкрутасах, решил спросить совета. Оно возможно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2005, 17:02:53 |
|
||
|
Сумма по группам...
|
|||
|---|---|---|---|
|
#18+
Получилось, причем самостоятельно. :-) Если кому пригодится, то получилось так: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2005, 19:05:38 |
|
||
|
Сумма по группам...
|
|||
|---|---|---|---|
|
#18+
Вообще, следовало бы использовать стандартный тип MySQL datetime и стандартные же функции работы с датой и временем... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2005, 19:33:54 |
|
||
|
Сумма по группам...
|
|||
|---|---|---|---|
|
#18+
Мм, если не ошибаюсь, целые числа сравниваются между собой быстрее чем строки YYYY-MM-DD HH:MM:SS? Или внутри MySql datetime живет как unix timestamp? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2005, 19:57:46 |
|
||
|
Сумма по группам...
|
|||
|---|---|---|---|
|
#18+
Имелось ввиду, что с полем типа даты вам не нужно изобретать велосипед, что бы определить, где в числе дата, а где - время... ---------------------------------------- Артисты не приехали, приехали цыгане ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2005, 20:25:05 |
|
||
|
Сумма по группам...
|
|||
|---|---|---|---|
|
#18+
Есил уж хотелось с числами работать, тогда бы и сделали поле чисто числовым, хранили бы там юниксовое время, а не "мы говорим: 'число', подразумеваем - 'время'". ---------------------------------------- Артисты не приехали, приехали цыгане ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2005, 20:27:27 |
|
||
|
Сумма по группам...
|
|||
|---|---|---|---|
|
#18+
Поле делалось числовым из соображений быстродействия - все-таки в таблице будет храниться провайдерская статистика для каждого ip в сети провайдера - а это МНОГО записей. Как показывает предыдущая практика, быстрее оно работает, когда поля в таком виде, еще быстрее - когда все на Постгресе, но тут его поюзать нельзя по религиозным соображениям, потомму выпендриваюсь на том, что есть. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2005, 20:30:27 |
|
||
|
Сумма по группам...
|
|||
|---|---|---|---|
|
#18+
Так храните в юникс-время. ---------------------------------------- Артисты не приехали, приехали цыгане ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2005, 21:04:26 |
|
||
|
Сумма по группам...
|
|||
|---|---|---|---|
|
#18+
Именно что выпендрились. У вас есть реальные данные о том, что datetime работает принципиально медленнее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2005, 21:44:57 |
|
||
|
Сумма по группам...
|
|||
|---|---|---|---|
|
#18+
DocAlИменно что выпендрились. У вас есть реальные данные о том, что datetime работает принципиально медленнее? У меня была в свое время база диалап-статистики через datetime. После перевода на дату вида userid_year_month_day_hour в виде единого числа, выборка из 2.000.000 записей стала проходить в несколько раз быстрее. Правда, было это несколько лет назад, на других версиях MySql и других машинах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2005, 22:02:28 |
|
||
|
Сумма по группам...
|
|||
|---|---|---|---|
|
#18+
Если вам _РЕАЛЬНО_ надо ускорить такого рода запросы -- так и надо строить структуру так, чтобы запросы индекс использовали. В данном случае, год отдельно, месяц отдельно, день отдельно, час отдельно. Чтоб в условии никаких модов не было, только сами столбцы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2005, 22:27:30 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=33395751&tid=1853408]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
174ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 213ms |
| total: | 475ms |

| 0 / 0 |
