|
|
|
помогите оптимизировать
|
|||
|---|---|---|---|
|
#18+
mysql-3.23.58 Храню лог от squid'а в mysql вот в таком вот виде: CREATE TABLE access_log ( date datetime NOT NULL, duration int NOT NULL, client_ip varchar(16) NOT NULL, user varchar(32) NOT NULL, request varchar(16) NOT NULL, result int NOT NULL, size int NOT NULL, url text NOT NULL, http_type varchar(35) NULL ); ALTER TABLE access_log ADD INDEX (date); ALTER TABLE access_log ADD INDEX (user); DROP TABLE IF EXISTS users; CREATE TABLE users ( id int NOT NULL auto_increment, user varchar(32) NOT NULL, username varchar(255) NOT NULL DEFAULT '', limit_month bigint unsigned NOT NULL DEFAULT 0, traffic_month bigint unsigned NOT NULL DEFAULT 0, PRIMARY KEY (id) ); ALTER TABLE users ADD INDEX (user); выборка суммарной статистики за произвольный период времени осуществляется таким вот запросом: SELECT u.id,username,u.user,limit_month,SUM(size) AS traffic_month FROM access_log a,users u WHERE u.user=a.user AND date => '2005-04-01' AND date =< '2005-04-13' GROUP BY u.id,username,u.user,limit_month ORDER BY traffic_month DESC все работает, но данный запрос очень сильно тормозит. как бы его ускорить? wbr, alw ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2005, 16:16 |
|
||
|
помогите оптимизировать
|
|||
|---|---|---|---|
|
#18+
Стандартный способ - создать необходимые индексы. В данном случае: на (u.id,username,u.user,limit_month) на (traffic_month) И ещё. Связка таблиц сделана абсолютно неверно. Надо связывать по users.id и access_log.user, причем access_log.user должно быть целочисленным и "ссылочным". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2005, 17:49 |
|
||
|
помогите оптимизировать
|
|||
|---|---|---|---|
|
#18+
Johnmen И ещё. Связка таблиц сделана абсолютно неверно. Надо связывать по users.id и access_log.user, причем access_log.user должно быть целочисленным и "ссылочным". Оно понятно. Но в сквидовый лог пишутся именно строковые значения. А выбирать по мере заполнения численные значения id - достаточно тоскливо... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2005, 08:35 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=661&tid=1854161]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
50ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
24ms |
get tp. blocked users: |
1ms |
| others: | 257ms |
| total: | 362ms |

| 0 / 0 |
