|
|
|
|
|
для: Trianon
(02.03.2009 в 22:06)
| | Я то мерил в секундах, а Ваша версия работает быстрее 1 секунды, потому и неопределенность. Но теперь, ради интереса, измерил поточнее. И получился выигрыш в 45 раз! | |
|
|
|
|
|
|
|
для: Владимир55
(02.03.2009 в 21:38)
| | SELECT DISTINCT - вообще тяжелый запрос... | |
|
|
|
|
|
|
|
для: Владимир55
(02.03.2009 в 21:38)
| | Измерительное средство - это функция microtime(1) , дающая точность 10-6 сек | |
|
|
|
|
|
|
|
для: Trianon
(02.03.2009 в 20:30)
| | Измерительное средство не располагает достаточным разрешением, но раз в 15-20 быстрее - это наверняка.
================
Начитавшись книжек о необычайном быстродействии выборки в MySQL, я даже не ставил своей целью экономию ресурсов (а хоть бы и ставил, в силу отсутствия навыков вряд ли бы чего достиг - тут хоть бы как-нибудь то заработало!).
Но на практике пришлось уже дважды повысить хостинговый тариф, ибо, по сравнению с рнр как таковым, база оказалась весьма требовательной к производительности процессора, ибо при выполнении любого запроса съедает абсолютно все, оставшееся от апача. | |
|
|
|
|
|
|
|
для: Владимир55
(02.03.2009 в 20:11)
| | во сколько раз быстрее? | |
|
|
|
|
|
|
|
для: Trianon
(02.03.2009 в 19:57)
| | То есть, можно и так (оно работает):
$query = "
INSERT INTO ip_arh (dat_arh, ip)
SELECT DISTINCT '$dat_arh', ip
FROM log_vh WHERE time > '$seg_sec'";
mysql_query($query);
|
| |
|
|
|
|
|
|
|
для: Владимир55
(02.03.2009 в 19:50)
| | SELECT DISTINCT запрашивает уникальными целые строки выборки, а вовсе не отдельные поля, как многие думают.
кроме того так цитировать неправильно.
в запросе будет уже
SELECT DISTINCT '2009-03-02' AS dat_arh, ip ....
|
собственно алиас здесь можно и не ставить... соответственно будет
SELECT DISTINCT '2009-03-02', ip ....
|
| |
|
|
|
|
|
|
|
для: Trianon
(02.03.2009 в 19:26)
| | Так получилось время ноль. Иной раз 1 секунда.
Но вот это
SELECT DISTINCT '$dat_arh' AS dat_arh, ip
| я никак понять не могу! Даже гипотезы нет, что это означает...
Как $dat_arh попало в критерий уникальности?
Это можно выразить словами? | |
|
|
|
|
|
|
|
для: Владимир55
(02.03.2009 в 19:21)
| | VALUES то зачем?
$query = "
INSERT INTO ip_arh (dat_arh, ip)
SELECT DISTINCT '$dat_arh' AS dat_arh, ip
FROM log_vh WHERE time > '$seg_sec'";
mysql_query($query);
|
| |
|
|
|
|
|
|
|
для: Trianon
(02.03.2009 в 18:53)
| | Одним запросом я не сумел. Пытался вот так:
$query = "
INSERT INTO ip_arh (dat_arh, ip) VALUES ('$dat_arh', '$ip')
SELECT DISTINCT ip FROM log_vh WHERE time > '$seg_sec'";
mysql_query($query);
|
| |
|
|
|
|