|
Изврат
|
|||
---|---|---|---|
#18+
Казалось бы все должно быть просто SELECT sID,max(dtime),val1,val2 FROM sensor GROUP BY sID в MySql в приципе работает только вот val1,val2 левые хотел проиндексировать базу в обратном порядке опять грабли ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2003, 15:30 |
|
Изврат
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2003, 16:06 |
|
Изврат
|
|||
---|---|---|---|
#18+
хитро но уж больно долго В MySQL вообще индекс по убыванию создать можно ? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2003, 20:52 |
|
Изврат
|
|||
---|---|---|---|
#18+
а че, то что я наляпал, заработало? ;) кажется, я не совсем правильно сам написал... у тебя val1 и val2 левые, потому что ты нигде не говоришь, что нужно взять те val1 и val2, у которых дата максимальная для каджого сенсора. ты просто говоришь: выбери мне первый попавшийся sid, val1, val2, а вот дату мне максимальную выведи для каждого sid индекс по убыванию не поможет. кажется создать его и нельзя, используется 1 индекс и для сортировки по возрастанию, и по убыванию (впрочем, не уверен) попробуй вложенный запрос. говорят, mysql их уже умеет (а то я с 2001 года не обновлял свой) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2003, 23:51 |
|
Изврат
|
|||
---|---|---|---|
#18+
да, я тут проснулся и еще тебе хочу 2 вещи сказать: у тебя таблица неправильно называется. судя по всему это не сенсор, а замЕр. то есть тебе надо добавить еще поле - уникальный индекс замера. чтобы ускорить, сделай правильную таблицу сенсоров (где sid - уникальный индекс), и в ней храни последнее значение замера. будет работать со скоростью Светы! а вложенный запрос, который я вчера посоветовал - это тот же having, индексами пользоваться не будет ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2003, 11:23 |
|
Изврат
|
|||
---|---|---|---|
#18+
Немогу я туда поля добовлять там прога которая в базу кладет ругается если чтонибуди там поменять Да действительно чтоб однозначно определить запись нужно два поля Выкачал я новый mysql чтоб вложенными запросами был пишу select a.sID,a.dtime,a.var1,a.var2 from qrtick a where a.dtime in (select max(b.dtime) from qrtick b group by b.sID); вобщето это криво но мне интересно почему не работает explain говорит id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY a ALL NULL NULL NULL NULL 178800 Using where 2 DEPENDENT SUBSELECT b index NULL SYM_TIME_QT 14 NULL 178800 Using index запрос выполнятся не хочет загрузка 100% висел так полчаса потом я mysqld убил Ниче не пойму есть индекс по dtime почему ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2003, 13:40 |
|
Изврат
|
|||
---|---|---|---|
#18+
а sIDов много? имеешь ли ты ввиду, что субселект порождает набор записей, в котором нету индекса? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2003, 17:14 |
|
Изврат
|
|||
---|---|---|---|
#18+
зарос select sid+"_"+dtime from sensor group by sid убивает процесс mysqld незнаю как старые версии а 4.1 100% ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2003, 18:43 |
|
Изврат
|
|||
---|---|---|---|
#18+
а select count(sid) from sensor сколько выдает? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2003, 18:48 |
|
Изврат
|
|||
---|---|---|---|
#18+
Я пока не вижу другого решения кроме как выбирать значения (INSERT ... SELECT...) из SELECT sID, max(dtime) FROM sensor GROUP BY sID во временную таблицу, a потом делать join с основной. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2003, 19:55 |
|
Изврат
|
|||
---|---|---|---|
#18+
2 fedd Записей около тысячи 2cvasil Я тоже ничего лучше не придумал ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2003, 11:11 |
|
Изврат
|
|||
---|---|---|---|
#18+
около 1000? А почему же тогда explain говорит, что там 178800? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2003, 11:53 |
|
Изврат
|
|||
---|---|---|---|
#18+
Потому что это было давно и я поудалять уже успел ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2003, 13:17 |
|
Изврат
|
|||
---|---|---|---|
#18+
а запрос select sid, max(dtime) from sensor group by sid тоже убивает сервер? тогда может вирус подхватил? у меня вот тома Blast живет ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2003, 19:26 |
|
Изврат
|
|||
---|---|---|---|
#18+
Отрицательный индекс можна строить в MySQL. Проблемы могут быть при переполнении максимальных пределов указаных в спецификации. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2003, 08:53 |
|
Изврат
|
|||
---|---|---|---|
#18+
А зачем ему поле добавлять sID у него помоему и так отражает уникальность, если поуму, может у него нет уникального индекса по этому полю? Так это на работе софта никак не отразится - можно строить. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2003, 09:00 |
|
Изврат
|
|||
---|---|---|---|
#18+
Так у тебя EXPLAIN показывает что INDEX вообще не используется. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2003, 09:05 |
|
|
start [/forum/topic.php?fid=47&msg=32246845&tid=1855827]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
52ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 160ms |
0 / 0 |