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

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

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

хотел проиндексировать базу в обратном порядке
опять грабли
...
Рейтинг: 0 / 0
Изврат
    #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
Изврат
    #32246845
Max ZemaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хитро
но уж больно долго

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

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

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

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

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

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

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

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

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

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


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