![]() |
Re: Wie MySQL-Abfrage optimieren? (große Tabelle, Dauer: 0.2
Zitat:
Code:
Aber wieso das so ist. :gruebel:
id select_txpe table type possible_keys key ken_len ref rows Extra
---------------------------------------------------------------------------------------------------------------- 1 SIMPLE i ALL PRIMARY NULL NULL NULL 234 1 SIMPLE c ref PRIMARY,cc cc 6 db.c.cc 385 Using where Einen Dump habe ich leider keinen da. Und das zu exportieren wäre etwas groß (vielleicht 4-5 MB). |
Re: Wie MySQL-Abfrage optimieren? (große Tabelle, Dauer: 0.2
Was haste denn geändert zwischen den zwei Explains? Jetzt benutzt er gar keinen Index mehr ;)
|
Re: Wie MySQL-Abfrage optimieren? (große Tabelle, Dauer: 0.2
Die "log_parser_ips"-Tabelle sieht nun so aus:
SQL-Code:
Grüße
CREATE TABLE `log_parser_ips` (
`ip_from` INTEGER(10) UNSIGNED NOT NULL DEFAULT '0', `ip_to` INTEGER(10) UNSIGNED NOT NULL DEFAULT '0', `cc` CHAR(2) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', PRIMARY KEY (`ip_to`, `ip_from`), KEY `cc` (`cc`) )ENGINE=MyISAM ROW_FORMAT=FIXED CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; |
Re: Wie MySQL-Abfrage optimieren? (große Tabelle, Dauer: 0.2
mhh dann arbeitet der mySQL Optimierer wohl anders, als ich dachte :D
Ich würde jetzt auch einfach nur noch hin- und herprobieren (geht ohne Daten halt schlecht). |
Re: Wie MySQL-Abfrage optimieren? (große Tabelle, Dauer: 0.2
Liste der Anhänge anzeigen (Anzahl: 1)
Gezippt ist das alles schnuckelig klein, merke ich gerade. ;)
Wenn du herumtesten möchtest, gerne. :-) |
Re: Wie MySQL-Abfrage optimieren? (große Tabelle, Dauer: 0.2
Probier einen Index auf ip_from (eventuell auch auf ip_to) zu setzten:
Code:
KEY `ip_from` (`ip_from`)
|
Re: Wie MySQL-Abfrage optimieren? (große Tabelle, Dauer: 0.2
Habe zwar auch keine Lösung aber ne Menge links hierzu (gegoogelt) gefunden:
![]() kann man als MySQL Dump downloaden ![]() download SQL-Format (zip,460kB) ![]() ![]() Für SQL Abfragen ![]() Offizielle Seite: ![]() denke der sollte helfen. Falls überflüssig einfach den Beitrag löschen. |
Re: Wie MySQL-Abfrage optimieren? (große Tabelle, Dauer: 0.2
:D
Das Ding arbeitet wie Firebird. Die Spaltenreihenfolge muss in Query und Index gleich sein.
SQL-Code:
mit Index auf ip_from, ip_to
Zeige Datensätze 0 - 0 (1 insgesamt, die Abfrage dauerte 0.0004 sek.)
SQL-Befehl: SELECT c.country, c.cc FROM log_parser_countries c JOIN log_parser_ips i ON i.cc = c.cc WHERE i.ip_from <=123456789 AND i.ip_to >=123456789 LIMIT 1 |
Re: Wie MySQL-Abfrage optimieren? (große Tabelle, Dauer: 0.2
Hallo
@user0815: Danke, doch eine Liste habe ich ja bereits und einen MySQL-Client auch. ;) @mquadrat: Hm das klingt gut, aber irgendwie bekomme ich es nicht hin. Meine Tabellen sehen nun so aus:
SQL-Code:
Hast du diese auch so oder anders?
CREATE TABLE `log_parser_ips` (
`ip_from` INTEGER(10) UNSIGNED NOT NULL DEFAULT '0', `ip_to` INTEGER(10) UNSIGNED NOT NULL DEFAULT '0', `cc` CHAR(2) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', KEY `ips` (`ip_from`, `ip_to`) )ENGINE=MyISAM ROW_FORMAT=FIXED CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; CREATE TABLE `log_parser_countries` ( `cc` CHAR(2) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', `country` VARCHAR(64) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', PRIMARY KEY (`cc`) )ENGINE=MyISAM CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'; Grüße, Matze |
Re: Wie MySQL-Abfrage optimieren? (große Tabelle, Dauer: 0.2
Deiner #1
SQL-Code:
Meiner, habe andere Tabellen genommen sowie Felder umbenannt.
SELECT c.country, c.cc FROM log_parser_countries c
JOIN log_parser_ips i ON i.cc = c.cc WHERE i.ip_from <= 123456789 AND i.ip_to >= 123456789 LIMIT 1
SQL-Code:
Also eigentlich kein Unterschied. Das Feld ISO2 ist in beiden Tabellen vom Typ varchar(2) und es liegt jeweils ein INDEX auf dem Feld ISO2.
SELECT c.Continent, c.IntName, c.Name FROM countrys_de c
JOIN t_ipbereich i ON i.ISO2 = c.ISO2 WHERE i.ipfrom <= 123456789 AND i.ipto >= 123456789; Mit dem MySQL Query Browser braucht die Abfrage: 0,0009 s (0,0003) geholt Mit phpMyAdmin: Zeige Datensätze 0 - 0 (1 insgesamt, die Abfrage dauerte 0.0005 sek.) countrys_de = 249 Einträge t_ipbereich = 58143 Einträge |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:36 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz