mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-05-04 22:19:38 +00:00
93_DbLog.pm: MySQL: neue Definition eines Indices auf history zur schnelleren
Generierung von Plots, SQL darauf angepasst git-svn-id: https://svn.fhem.de/fhem/trunk@2614 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
a53babcb84
commit
618987d581
@ -556,6 +556,8 @@ DbLog_Get($@)
|
|||||||
FROM history
|
FROM history
|
||||||
WHERE 1=1
|
WHERE 1=1
|
||||||
AND $sqlspec{reading_clause} = ('".$readings[$i]->[0]."|".$readings[$i]->[1]."')
|
AND $sqlspec{reading_clause} = ('".$readings[$i]->[0]."|".$readings[$i]->[1]."')
|
||||||
|
AND DEVICE = '".$readings[$i]->[0]."'
|
||||||
|
AND READING = '".$readings[$i]->[1]."'
|
||||||
AND TIMESTAMP > $sqlspec{from_timestamp}
|
AND TIMESTAMP > $sqlspec{from_timestamp}
|
||||||
AND TIMESTAMP < $sqlspec{to_timestamp}
|
AND TIMESTAMP < $sqlspec{to_timestamp}
|
||||||
ORDER BY TIMESTAMP";
|
ORDER BY TIMESTAMP";
|
||||||
@ -582,7 +584,7 @@ DbLog_Get($@)
|
|||||||
my $val = $sql_value;
|
my $val = $sql_value;
|
||||||
eval("$readings[$i]->[4]");
|
eval("$readings[$i]->[4]");
|
||||||
$sql_value = $val;
|
$sql_value = $val;
|
||||||
if($@) {Log 3, "DbLog: Fehler in der übergebenen Funktion: <".$readings[$i]->[4].">, Fehler: $@";}
|
if($@) {Log 3, "DbLog: Error in inline function: <".$readings[$i]->[4].">, Fehler: $@";}
|
||||||
$out_tstamp = $sql_timestamp;
|
$out_tstamp = $sql_timestamp;
|
||||||
$writeout=1;
|
$writeout=1;
|
||||||
}
|
}
|
||||||
@ -595,7 +597,7 @@ DbLog_Get($@)
|
|||||||
$writeout=1;
|
$writeout=1;
|
||||||
|
|
||||||
} elsif ($readings[$i]->[3] && $readings[$i]->[3] =~ m/^int(\d+).*/o) {
|
} elsif ($readings[$i]->[3] && $readings[$i]->[3] =~ m/^int(\d+).*/o) {
|
||||||
#?bernehme den Dezimalwert mit den angegebenen Stellen an Nachkommastellen
|
#Übernehme den Dezimalwert mit den angegebenen Stellen an Nachkommastellen
|
||||||
$out_value = $1 if($sql_value =~ m/^([-\.\d]+).*/o);
|
$out_value = $1 if($sql_value =~ m/^([-\.\d]+).*/o);
|
||||||
$out_tstamp = $sql_timestamp;
|
$out_tstamp = $sql_timestamp;
|
||||||
$writeout=1;
|
$writeout=1;
|
||||||
@ -869,8 +871,8 @@ DbLog_Get($@)
|
|||||||
<a name="DbLogattr"></a>
|
<a name="DbLogattr"></a>
|
||||||
<b>Attributes</b> <ul>N/A</ul><br>
|
<b>Attributes</b> <ul>N/A</ul><br>
|
||||||
</ul>
|
</ul>
|
||||||
=end html
|
|
||||||
|
|
||||||
|
=end html
|
||||||
=begin html_DE
|
=begin html_DE
|
||||||
|
|
||||||
<a name="DbLog"></a>
|
<a name="DbLog"></a>
|
||||||
@ -1032,6 +1034,7 @@ DbLog_Get($@)
|
|||||||
<a name="DbLogattr"></a>
|
<a name="DbLogattr"></a>
|
||||||
<b>Attributes</b> <ul>N/A</ul><br>
|
<b>Attributes</b> <ul>N/A</ul><br>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
=end html_DE
|
=end html_DE
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
|
@ -3,5 +3,5 @@ CREATE USER 'fhemuser'@'%' IDENTIFIED BY 'fhempassword';
|
|||||||
CREATE TABLE history (TIMESTAMP TIMESTAMP, DEVICE varchar(32), TYPE varchar(32), EVENT varchar(64), READING varchar(32), VALUE varchar(32), UNIT varchar(32));
|
CREATE TABLE history (TIMESTAMP TIMESTAMP, DEVICE varchar(32), TYPE varchar(32), EVENT varchar(64), READING varchar(32), VALUE varchar(32), UNIT varchar(32));
|
||||||
CREATE TABLE current (TIMESTAMP TIMESTAMP, DEVICE varchar(32), TYPE varchar(32), EVENT varchar(64), READING varchar(32), VALUE varchar(32), UNIT varchar(32));
|
CREATE TABLE current (TIMESTAMP TIMESTAMP, DEVICE varchar(32), TYPE varchar(32), EVENT varchar(64), READING varchar(32), VALUE varchar(32), UNIT varchar(32));
|
||||||
GRANT SELECT, INSERT, DELETE ON `fhem` .* TO 'fhemuser'@'%';
|
GRANT SELECT, INSERT, DELETE ON `fhem` .* TO 'fhemuser'@'%';
|
||||||
|
CREATE INDEX Search_Idx ON history (DEVICE, READING, TIMESTAMP);
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
--
|
--
|
||||||
|
|
||||||
SET statement_timeout = 0;
|
SET statement_timeout = 0;
|
||||||
SET client_encoding = 'SQL_ASCII';
|
SET client_encoding = 'UTF8';
|
||||||
SET standard_conforming_strings = off;
|
SET standard_conforming_strings = off;
|
||||||
SET check_function_bodies = false;
|
SET check_function_bodies = false;
|
||||||
SET client_min_messages = warning;
|
SET client_min_messages = warning;
|
||||||
@ -69,7 +69,7 @@ ALTER TABLE fhem.history OWNER TO fhem;
|
|||||||
-- Name: reading; Type: INDEX; Schema: fhem; Owner: fhem; Tablespace:
|
-- Name: reading; Type: INDEX; Schema: fhem; Owner: fhem; Tablespace:
|
||||||
--
|
--
|
||||||
|
|
||||||
CREATE INDEX reading ON history USING btree (((((device)::text || '|'::text) || (reading)::text)), "timestamp");
|
CREATE INDEX search_Idx ON history USING btree (((((device)::text || '|'::text) || (reading)::text)), "timestamp");
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
|
Loading…
x
Reference in New Issue
Block a user