SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden. |
 |
|

25-05-2020, 20:58
|
long_forum
Registrierter Benutzer
|
|
Registriert seit: May 2020
Beiträge: 10
|
|
Hier mal ein paar Beispielabfragen:
Code:
SELECT COUNT(*) FROM SystemEvents WHERE FromHost like '%%' AND SysLogTag like '%iked%' AND Message like '%%' AND DeviceReportedTime like '%%';
SELECT COUNT(*) FROM SystemEvents WHERE FromHost like '%192.168.222.111%' AND SysLogTag like '%sshd%' AND Message like '%%' AND DeviceReportedTime like '%%';
SELECT COUNT(*) FROM SystemEvents WHERE FromHost like '%192.168.222.111%' AND SysLogTag like '%sshd%' AND Message like '%%' AND DeviceReportedTime like '%2020-05-25%';
SELECT * FROM SystemEvents WHERE FromHost like '%SERVER1%' AND SysLogTag like '%iked%' AND Message like '%established%' AND DeviceReportedTime like '%2020-05-24 15:00:00';
Code:
SELECT DeviceReportedTime, FromHost, SysLogTag, Message FROM SystemEvents WHERE FromHost like '%%' AND SysLogTag like '%%' AND Message like '%%' AND DeviceReportedTime like '2020-05-%' ORDER BY ID DESC LIMIT 100;"
...
| 2020-05-25 20:49:38 | 192.168.222.111 | iked | blabla1 |
| 2020-05-25 20:50:10 | SERVER1 | sshd | S 2044760468:2044760468(0) win 29200 <mss 1460,sackOK,timestamp 2253946112 0,nop,wscale 7> (DF) |
| 2020-05-25 20:15:22 | SERVER1 | CRON | May 25 20:49:31.728457 rule 648/(match) |
...
|

25-05-2020, 21:14
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 3.784
|
|
Da sind halt überall noch die LIKE drin. Solange du die drin lässt, bleibt es langsam. Da brauchen wir gar nicht mehr weiterreden.
Tabellenstruktur und Beispieldaten bitte als SQL-Code posten. So kann man damit nix anfangen.
|

25-05-2020, 21:26
|
long_forum
Registrierter Benutzer
|
|
Registriert seit: May 2020
Beiträge: 10
|
|
Das wäre ja auch ein Teil meiner Frage, wie ich das like ersetzen kann.
Code:
CREATE TABLE `SystemEvents` (
`ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
`CustomerID` bigint(20) DEFAULT NULL,
`ReceivedAt` datetime DEFAULT NULL,
`DeviceReportedTime` datetime DEFAULT NULL,
`Facility` smallint(6) DEFAULT NULL,
`Priority` smallint(6) DEFAULT NULL,
`FromHost` varchar(60) DEFAULT NULL,
`Message` text,
`NTSeverity` int(11) DEFAULT NULL,
`Importance` int(11) DEFAULT NULL,
`EventSource` varchar(60) DEFAULT NULL,
`EventUser` varchar(60) DEFAULT NULL,
`EventCategory` int(11) DEFAULT NULL,
`EventID` int(11) DEFAULT NULL,
`EventBinaryData` text,
`MaxAvailable` int(11) DEFAULT NULL,
`CurrUsage` int(11) DEFAULT NULL,
`MinUsage` int(11) DEFAULT NULL,
`MaxUsage` int(11) DEFAULT NULL,
`InfoUnitID` int(11) DEFAULT NULL,
`SysLogTag` varchar(60) DEFAULT NULL,
`EventLogType` varchar(60) DEFAULT NULL,
`GenericFileName` varchar(60) DEFAULT NULL,
`SystemID` int(11) DEFAULT NULL,
`processid` varchar(60) NOT NULL DEFAULT '',
`checksum` int(11) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`ID`)
);
INSERT INTO `SystemEvents` VALUES (1,NULL,'2020-04-24 15:12:30','2020-04-24 15:12:30',3,6,'192.168.222.111',' Stopping System Logging Service...',
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,'systemd[1]:',NULL,NULL,NULL,'',0),(2,NULL,'2020-04-24 15:12:30','2020-04-24 15:12:30',3,
6,'SERVER1',' Stopped System Logging Service.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,'systemd[1]:',NULL,NULL,NULL,'',0)
,(3,NULL,'2020-04-24 15:12:30','2020-04-24 15:12:30',5,6,'SERVER1',' [origin software=\"rsyslogd\" swVersion=\"8.32.0\" x-pid=\"1692\" x-
info=\"http://www.rsyslog.com\"] exiting on signal 15.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,'rsyslogd:',NULL,NULL,NULL,'',0),
(4,NULL,'2020-04-24 15:12:30','2020-04-24 15:12:30',3,6,'SERVER1',' Starting System Logging Service...',NULL,NULL,NULL,NULL,NULL,NULL,NULL
,NULL,NULL,NULL,NULL,1,'systemd[1]:',NULL,NULL,NULL,'',0);
|

25-05-2020, 21:32
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 3.784
|
|
Die Sache ist, dass die MySQL Fulltext-Search nur sinnvoll nach Wörtern suchen kann. Eine IP-Adresse ist kein Wort. Und auch ein Datum ist kein Wort.
Du musst dir wohl ein anderes Datenbanksystem für den Zweck suchen. Oder eine richtige Search-Engine wie z.B. Lucene.
Eine Alternative wäre, dass du beim Schreiben der Daten die für dich relevanten Werte, nach denen du suchen möchtest, in extra Spalten speicherst. Zum Beispeil eine Spalte, die ausschließlich eine IP-Adresse oder ein Datum enthält, kann wunderbar indexiert und von MySQL durchsucht werden.
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Thema bewerten |
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|