у меня не пишет, если сам в соурс не пишуStrangeman писал(а): ↑Ср фев 10, 2021 11:07 pmКстати, UpdatedText - это хорошо, но есть ещё один момент - для каждого значения с некоторых пор пишется источник. Это удобно при отладке, но дополнительно грузит БД.
[DASH] Количество запросов в БД
Модератор: immortal
-
- Сообщения: 2084
- Зарегистрирован: Пт апр 07, 2017 12:20 pm
- Благодарил (а): 313 раз
- Поблагодарили: 457 раз
Re: [DASH] Количество запросов в БД
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
- Strangeman
- Сообщения: 208
- Зарегистрирован: Ср янв 16, 2013 6:35 pm
- Откуда: Золотарево
- Благодарил (а): 101 раз
- Поблагодарили: 19 раз
- Контактная информация:
Re: [DASH] Количество запросов в БД
Хорошо бы сделать это в виде настройки для простых пользователей.Logrus писал(а): ↑Ср фев 10, 2021 11:36 pmу меня не пишет, если сам в соурс не пишуStrangeman писал(а): ↑Ср фев 10, 2021 11:07 pmКстати, UpdatedText - это хорошо, но есть ещё один момент - для каждого значения с некоторых пор пишется источник. Это удобно при отладке, но дополнительно грузит БД.
Вы нигде не описывали, как убрали запись?
Основной: Z99Le, Debian 10, модули на ESP-12F с собственной логикой. С сервером связаны, но работоспособны и без него.
Тестовый: Cubieboard2, Armbian Buster (сейчас Bionic) 5.4.y
Тестовый: Cubieboard2, Armbian Buster (сейчас Bionic) 5.4.y
-
- Сообщения: 2084
- Зарегистрирован: Пт апр 07, 2017 12:20 pm
- Благодарил (а): 313 раз
- Поблагодарили: 457 раз
Re: [DASH] Количество запросов в БД
в тлг обсуждали, а настройка это лишний запрос к бд или дефайном, но конфиг и так большой
Последний раз редактировалось Logrus Чт фев 11, 2021 9:24 am, всего редактировалось 1 раз.
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
-
- Сообщения: 21
- Зарегистрирован: Вт сен 03, 2019 7:17 am
- Благодарил (а): 9 раз
- Поблагодарили: 2 раза
Re: [DASH] Количество запросов в БД
И еще один момент - есть свойства, которые устанавливаются один раз и больше не меняются, но чтобы их значение взять, нужно дергать БД.
Например, у меня есть класс счетчика тока и 3 объекта. 2 генератора и один батарея, есть свойство IsBattery - оно нужно для корректировки логики в расчетах. Сам расчет в общем-то общий для всех трех, но есть корректировочка для батареи. Сейчас это минимум, 1 лишний запрос раз в секунду. Делать для каждого объекта свой класс - но тогда управляемость изменениями снижается.. Хотя, оптимизированный на производительность код никогда не был удобочитаемым.
Например, у меня есть класс счетчика тока и 3 объекта. 2 генератора и один батарея, есть свойство IsBattery - оно нужно для корректировки логики в расчетах. Сам расчет в общем-то общий для всех трех, но есть корректировочка для батареи. Сейчас это минимум, 1 лишний запрос раз в секунду. Делать для каждого объекта свой класс - но тогда управляемость изменениями снижается.. Хотя, оптимизированный на производительность код никогда не был удобочитаемым.
-
- Сообщения: 2084
- Зарегистрирован: Пт апр 07, 2017 12:20 pm
- Благодарил (а): 313 раз
- Поблагодарили: 457 раз
Re: [DASH] Количество запросов в БД
они в кеш_валюес попадают, она в памяти и читаются от тудаAndyross79 писал(а): ↑Чт фев 11, 2021 9:24 amИ еще один момент - есть свойства, которые устанавливаются один раз и больше не меняются, но чтобы их значение взять, нужно дергать БД.
Например, у меня есть класс счетчика тока и 3 объекта. 2 генератора и один батарея, есть свойство IsBattery - оно нужно для корректировки логики в расчетах. Сам расчет в общем-то общий для всех трех, но есть корректировочка для батареи. Сейчас это минимум, 1 лишний запрос раз в секунду. Делать для каждого объекта свой класс - но тогда управляемость изменениями снижается.. Хотя, оптимизированный на производительность код никогда не был удобочитаемым.
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
-
- Сообщения: 21
- Зарегистрирован: Вт сен 03, 2019 7:17 am
- Благодарил (а): 9 раз
- Поблагодарили: 2 раза
Re: [DASH] Количество запросов в БД
Очень извиняюсь за возможно, профанский вопрос, но где про это почитать можно? А то все тайные знания только из форума получаются В базе знаний поиск ничего не дает..
-
- Сообщения: 3006
- Зарегистрирован: Чт авг 21, 2014 8:28 am
- Откуда: Киров, Россия
- Благодарил (а): 400 раз
- Поблагодарили: 1753 раза
- Контактная информация:
Re: [DASH] Количество запросов в БД
Но в любом случае это запрос к БД. И скорее всего пара-тройка минимум, чтобы достать значение одного свойства.
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Мой CONNECT | Блоги | Telegram
-
- Сообщения: 2084
- Зарегистрирован: Пт апр 07, 2017 12:20 pm
- Благодарил (а): 313 раз
- Поблагодарили: 457 раз
Re: [DASH] Количество запросов в БД
так и есть и через редис аналогично, только без чтения из таблички
но оно вполне быстро же
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
-
- Сообщения: 2084
- Зарегистрирован: Пт апр 07, 2017 12:20 pm
- Благодарил (а): 313 раз
- Поблагодарили: 457 раз
Re: [DASH] Количество запросов в БД
насчет счетчика так реализаций может быть так много, что без конкретных примеров и необходимого тз и не о чем вести речьAndyross79 писал(а): ↑Чт фев 11, 2021 9:24 amИ еще один момент - есть свойства, которые устанавливаются один раз и больше не меняются, но чтобы их значение взять, нужно дергать БД.
Например, у меня есть класс счетчика тока и 3 объекта. 2 генератора и один батарея, есть свойство IsBattery - оно нужно для корректировки логики в расчетах. Сам расчет в общем-то общий для всех трех, но есть корректировочка для батареи. Сейчас это минимум, 1 лишний запрос раз в секунду. Делать для каждого объекта свой класс - но тогда управляемость изменениями снижается.. Хотя, оптимизированный на производительность код никогда не был удобочитаемым.
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
- SmoKE_xDDD
- Сообщения: 816
- Зарегистрирован: Ср апр 17, 2019 5:00 pm
- Откуда: Нижний Новгород
- Благодарил (а): 110 раз
- Поблагодарили: 899 раз
Re: [DASH] Количество запросов в БД
В шаблон нужного класса:Andyross79 писал(а): ↑Ср фев 10, 2021 10:28 pmПравильно понимаю, что поменялись только классы SLeak, SMotions, SOpeClose, SOpenable, SSmoke?
У меня 100% попадание в молоко Ни один из этих классов не использую
Для остальных на примере этих перепиливать? И менять надо, похоже, именно код (вливая в гит), а не переписывать методы?
Код: Выделить всё
<script>
$(function() {
if(window.intervalUpdateDatedevice_%.object_id%) {
window.clearInterval(intervalUpdateDatedevice_%.object_id%);
}
var currentTime = parseInt(new Date().getTime()/1000);
var sID = '%.object_id%';
var sDATA = '%.updated%';
var diff = currentTime-sDATA;
if(diff <= -21) {
beautyText = '<#LANG_DEVICES_PASSED_INCORRECT_TIME#>';
$('.device-updatedText-JS-' + sID).text(beautyText);
} else if(diff >= -20 && diff <= 0) {
beautyText = '<#LANG_DEVICES_PASSED_NOW#>';
$('.device-updatedText-JS-' + sID).text(beautyText);
} else if(diff > 0 && diff < 3598) {
beautyText = secondsToHms(diff, '<#LANG_DEVICES_PASSED_NEW_HOURS_AGO#>', '<#LANG_DEVICES_PASSED_NEW_MINUTES_AGO#>', '<#LANG_DEVICES_PASSED_NEW_SECONDS_AGO#>') + ' <#LANG_DEVICES_PASSED_AGO#>';
$('.device-updatedText-JS-' + sID).text(beautyText);
window.intervalUpdateDatedevice_%.object_id% = setInterval(function() {
var currentTime = parseInt(new Date().getTime()/1000);
var sID = '%.object_id%';
var sDATA = '%.updated%';
var diff = currentTime-sDATA;
beautyText = secondsToHms(diff, '<#LANG_DEVICES_PASSED_NEW_HOURS_AGO#>', '<#LANG_DEVICES_PASSED_NEW_MINUTES_AGO#>', '<#LANG_DEVICES_PASSED_NEW_SECONDS_AGO#>') + ' <#LANG_DEVICES_PASSED_AGO#>';
$('.device-updatedText-JS-' + sID).text(beautyText);
}, 1000);
} else if(diff >= 3598 && diff < 86400) {
beautyText = secondsToHms(diff, '<#LANG_DEVICES_PASSED_NEW_HOURS_AGO#>', '<#LANG_DEVICES_PASSED_NEW_MINUTES_AGO#>', '<#LANG_DEVICES_PASSED_NEW_SECONDS_AGO#>');
$('.device-updatedText-JS-' + sID).text(beautyText);
window.intervalUpdateDatedevice_%.object_id% = setInterval(function() {
var currentTime = parseInt(new Date().getTime()/1000);
var sID = '%.object_id%';
var sDATA = '%.updated%';
var diff = currentTime-sDATA;
//Считаем и делаем красиво
beautyText = secondsToHms(diff, '<#LANG_DEVICES_PASSED_NEW_HOURS_AGO#>', '<#LANG_DEVICES_PASSED_NEW_MINUTES_AGO#>', '<#LANG_DEVICES_PASSED_NEW_SECONDS_AGO#>');
$('.device-updatedText-JS-' + sID).text(beautyText);
}, 61000);
} else {
//Дропаем интервал
if(window.intervalUpdateDatedevice_%.object_id%) {
window.clearInterval(intervalUpdateDatedevice_%.object_id%);
}
a = new Date(sDATA * 1000);
currentTime = new Date();
year = a.getFullYear();
month = a.getMonth();
date = a.getDate();
hour = a.getHours();
min = a.getMinutes();
sec = a.getSeconds();
if((currentTime.getDate() - date) == 1) {
beautyText = '<#LANG_DEVICES_PASSED_YESTERDAY_IN#> ' + twoDigits(hour) + ':' + twoDigits(min) + ':' + twoDigits(sec);
} else {
beautyText = twoDigits(date) + '.' + twoDigits(month) + '.' + year + ' ' + twoDigits(hour) + ':' + twoDigits(min) + ':' + twoDigits(sec);
}
$('.device-updatedText-JS-' + sID).text(beautyText);
}
});
</script>
<div class="device-widget controller loadtype_%.loadType%"
onClick='$(".icon%.object_id%_light").addClass("pressed");
setTimeout("$(\".icon%.object_id%_light\").removeClass(\"pressed\");",300);
callMethod("%.object_title%.switch");
$.get("<#ROOTHTML#>ajax/devices.html?op=clicked&object="+encodeURIComponent("%.object_title%"));'>
<div class="device-icon %.status|"off;on"% icon%.object_id%_light" id="icon%.object_id%_light" style='%.icon|"background-image:url(%.icon%)"%'></div>
<div class="device-header">%.object_description%</div>
<div class="device-updatedText-JS-%.object_id%" style="font-size: 11px;">...</div>
</div>
- За это сообщение автора SmoKE_xDDD поблагодарил:
- Andyross79 (Чт фев 11, 2021 3:45 pm)
- Рейтинг: 1.16%