Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Запись в таблицу только изменений и чтение из такой таблицы / 6 сообщений из 6, страница 1 из 1
28.05.2016, 16:25
    #39245446
thunderamur
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в таблицу только изменений и чтение из такой таблицы
Множество изменяемых значений, которые пишем каждую секунду, можно ли на стороне mysql сравнивать текущее значение с предыдущим и если оно не выполняет условие
Abs(CurrentVal - LastVal) > Deadband
то новое значение не писать.
Т.е. если разница между текущим значением и последним меньше допустимого зазора, то значение не пишется.

Второй вопрос, если возможно первое, то как потом читать такие данные ведь в заданный отрезок времени нужных значений может не быть, т.е. нужно смотреть назад в поисках последнего значения, как это сделать на стороне mysql?
...
Рейтинг: 0 / 0
28.05.2016, 17:14
    #39245450
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в таблицу только изменений и чтение из такой таблицы
thunderamur,
1 можно в хранимке : прочитал последнее, сравнил с теукщим, добавил/недобавил

2 сформулируй в доступном для всех виде.
...
Рейтинг: 0 / 0
28.05.2016, 18:30
    #39245468
thunderamur
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в таблицу только изменений и чтение из такой таблицы
вадя,

1. что значит в хранимке? Я представляю как это сделать на стороне языка программирования, но для моего случая это не подойдет, т.к. за раз пишется несколько тысяч значений, будет большая нагрузка на систему, на стороне SQL же это должно выполняться на порядки быстрее, чем на стороне того же Python или PHP.

2. Например, структура таблицы:
Ид - Время - Параметр - Значение

1 - 1 - 1001 - 100
2 - 1 - 1002 - 3000
3 - 2 - 1001 - 101
4 - 3 - 1001 - 102
5 - 4 - 1001 - 103
6 - 4 - 1002 - 2999

Видно, что во временном промежутке 2-3 включительно нет значений для параметра 1002. Т.е. когда я сделаю простой запрос значений для этих временных промежутков я получу только параметр 1001, а хочу получить и значения для 1002, которые будут равны последнему записанному - 3000.
...
Рейтинг: 0 / 0
28.05.2016, 18:50
    #39245472
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в таблицу только изменений и чтение из такой таблицы
thunderamur,
при такой подаче информации трудно помогать

в хранимке - в хранимой процедуре.
для каждого значения - вызов хранимки
в хранимке : прочитал последнее, сравнил с теукщим, добавил/недобавил
если для тебя такое изложение проблемы естественное и понятное , то для меня набор слов.
временном промежутке 2-3 что это за промежуток, что он такое на твоей таблице.
более доходчиво - правильный ворпрос -половина решения
...
Рейтинг: 0 / 0
29.05.2016, 14:13
    #39245640
thunderamur
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в таблицу только изменений и чтение из такой таблицы
1. понятно.

2. 2-й столбец в придуманной выше таблице есть время.

Для 1-й секунды - 2 значения, для 2 - 1, для 3 - 1, для 4 - 2.
...
Рейтинг: 0 / 0
29.05.2016, 14:27
    #39245645
thunderamur
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись в таблицу только изменений и чтение из такой таблицы
Для каждого значения вызов хранимки будет медленно работать. В моем случае даже отдельный INSERT для каждого значения дает задержку больше допустимой, поэтому пишу все значения за раз.

Думаю попробовать сначала реализовать на Python, 1 запрос считать последние значения, на контроллере их сравнить с текущими и 2-м запросом записать все, по mysql вырастет количество запросов в 2 раза, но хоть не в несколько тысяч раз и то хорошо. По питону надо попробовать и посмотреть насколько быстро получится делать сравнение и подготовку строки 2-го запроса к СУБД.

Касаемо п.2 один товарищ мне сказал, что есть что-то типа синхронного чтения, когда СУБД сама подставляет значения которых нет для запрошенного timestamp и эти значения подтягиваются из последних записанных. И все это на стороне СУБД, правда он тогда не уточнял MySQL это или какой-нибудь Oracle.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Запись в таблицу только изменений и чтение из такой таблицы / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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