Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Изврат / 18 сообщений из 18, страница 1 из 1
25.08.2003, 15:30
    #32246407
Max ZemaN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изврат
Казалось бы все должно быть просто

SELECT sID,max(dtime),val1,val2
FROM sensor
GROUP BY sID

в MySql в приципе работает
только вот val1,val2 левые

хотел проиндексировать базу в обратном порядке
опять грабли
...
Рейтинг: 0 / 0
25.08.2003, 16:06
    #32246479
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изврат
Код: plaintext
1.
2.
3.
4.
5.
6.
select sensor.dtime, max(smax.dtime) as maxdtime, sensor.sid
   sensor.val1, sensor.val2
from sensor, sensor as smax
where sensor.sid = smax.sid
having maxdtime = sensor.dtime
group by sensor.sid
...
Рейтинг: 0 / 0
25.08.2003, 20:52
    #32246845
Max ZemaN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изврат
хитро
но уж больно долго

В MySQL вообще индекс по убыванию создать можно ?
...
Рейтинг: 0 / 0
25.08.2003, 23:51
    #32246883
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изврат
а че, то что я наляпал, заработало? ;)
кажется, я не совсем правильно сам написал...

у тебя val1 и val2 левые, потому что ты нигде не говоришь, что нужно взять те val1 и val2, у которых дата максимальная для каджого сенсора. ты просто говоришь: выбери мне первый попавшийся sid, val1, val2, а вот дату мне максимальную выведи для каждого sid

индекс по убыванию не поможет. кажется создать его и нельзя, используется 1 индекс и для сортировки по возрастанию, и по убыванию (впрочем, не уверен)

попробуй вложенный запрос. говорят, mysql их уже умеет (а то я с 2001 года не обновлял свой)
...
Рейтинг: 0 / 0
26.08.2003, 11:23
    #32247225
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изврат
да, я тут проснулся и еще тебе хочу 2 вещи сказать:

у тебя таблица неправильно называется. судя по всему это не сенсор, а замЕр. то есть тебе надо добавить еще поле - уникальный индекс замера.

чтобы ускорить, сделай правильную таблицу сенсоров (где sid - уникальный индекс), и в ней храни последнее значение замера. будет работать со скоростью Светы!

а вложенный запрос, который я вчера посоветовал - это тот же having, индексами пользоваться не будет
...
Рейтинг: 0 / 0
26.08.2003, 13:40
    #32247516
Max ZemaN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изврат
Немогу я туда поля добовлять
там прога которая в базу кладет ругается если чтонибуди там поменять
Да действительно чтоб однозначно определить запись нужно два поля

Выкачал я новый 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 почему
...
Рейтинг: 0 / 0
26.08.2003, 17:14
    #32247996
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изврат
а sIDов много?
имеешь ли ты ввиду, что субселект порождает набор записей, в котором нету индекса?
...
Рейтинг: 0 / 0
26.08.2003, 18:43
    #32248189
Max ZemaN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изврат
зарос
select sid+"_"+dtime from sensor group by sid

убивает процесс mysqld
незнаю как старые версии а 4.1 100%
...
Рейтинг: 0 / 0
26.08.2003, 18:48
    #32248200
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изврат
а
select count(sid) from sensor
сколько выдает?
...
Рейтинг: 0 / 0
26.08.2003, 19:55
    #32248241
cvasil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изврат
Я пока не вижу другого решения кроме как выбирать значения
(INSERT ... SELECT...) из SELECT sID, max(dtime) FROM sensor GROUP BY sID
во временную таблицу, a потом делать join с основной.
...
Рейтинг: 0 / 0
27.08.2003, 11:11
    #32248579
Max ZemaN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изврат
2 fedd
Записей около тысячи

2cvasil
Я тоже ничего лучше не придумал
...
Рейтинг: 0 / 0
27.08.2003, 11:53
    #32248667
Хрен
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изврат
около 1000? А почему же тогда explain говорит, что там 178800?
...
Рейтинг: 0 / 0
27.08.2003, 13:17
    #32248839
Max ZemaN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изврат
Потому что это было давно и я поудалять уже успел
...
Рейтинг: 0 / 0
27.08.2003, 19:26
    #32249350
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изврат
а запрос
select sid, max(dtime) from sensor group by sid
тоже убивает сервер?

тогда может вирус подхватил? у меня вот тома Blast живет
...
Рейтинг: 0 / 0
28.08.2003, 08:53
    #32249542
alex_24
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изврат
Отрицательный индекс можна строить в MySQL.
Проблемы могут быть при переполнении максимальных пределов указаных в спецификации.
...
Рейтинг: 0 / 0
28.08.2003, 09:00
    #32249551
alex_24
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изврат
А зачем ему поле добавлять sID у него помоему и так отражает уникальность, если поуму, может у него нет уникального индекса по этому полю? Так это на работе софта никак не отразится - можно строить.
...
Рейтинг: 0 / 0
28.08.2003, 09:05
    #32249558
alex_24
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изврат
Так у тебя EXPLAIN показывает что INDEX вообще не используется.
...
Рейтинг: 0 / 0
28.08.2003, 09:11
    #32249563
alex_24
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изврат
Что то не могу вдуплить - опиши точно что надо выбрать из таблици с такими то такимито параметрами, и в нее пишется тото и тото.
И должна быть одна результирующая запись?
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Изврат / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]