Hallo
Ich bräuchte mal Hilfe bei der Optimierung eines Queries. Ich möchte eine Suche bauen. Die Suche zieht sich über mehrere Tabellen. In der Datenbank sind jetzt ca 700000 Datensätze.
Der jetzige Query dauert ca. 5 Sekunden. Das ist aber viel zu langsam. Auf die Felder die in der Where oder ON Klausel sind wurden Indexe gesetzt. Was kann ich noch tun. Oder geht es nicht schneller? Ich habe keinerlei Vergleichsdaten.
Mein Query sieht so aus.
Mfg Akkie
Ich bräuchte mal Hilfe bei der Optimierung eines Queries. Ich möchte eine Suche bauen. Die Suche zieht sich über mehrere Tabellen. In der Datenbank sind jetzt ca 700000 Datensätze.
Der jetzige Query dauert ca. 5 Sekunden. Das ist aber viel zu langsam. Auf die Felder die in der Where oder ON Klausel sind wurden Indexe gesetzt. Was kann ich noch tun. Oder geht es nicht schneller? Ich habe keinerlei Vergleichsdaten.
Mein Query sieht so aus.
PHP-Code:
SELECT
`user`.`userId`,
`user`.`pseudonym`,
`user`.`lastLogin`,
`user`.`country`,
`user`.`language`,
`userprofile`.`verified`,
`userprofile`.`dateofbirth`,
`userprofile`.`zipcode`,
CASE WHEN (`online`.`accesstime` + 900) > UNIX_TIMESTAMP(UTC_TIMESTAMP())
THEN 1
ELSE 0
END as `online`,
CASE WHEN `properties`.`pictures` > 0
THEN 1
ELSE 0
END as `picture`
FROM `fxp_user`.`user`
JOIN `fxp_user`.`userprofile` ON `user`.`userId` = `userprofile`.`userId`
JOIN `fxp_user`.`searchprofile` ON `userprofile`.`userId` = `searchprofile`.`userId`
LEFT JOIN `i21s_i18n`.`timezones` ON `user`.`timezone` = `timezones`.`timezone`
LEFT JOIN `fxp_stats`.`online` ON `searchprofile`.`userId` = `online`.`userId`
LEFT JOIN `fxp_photoalbum`.`properties` ON `searchprofile`.`userId` = `properties`.`userId`
WHERE `user`.`profilestatus` = 'complete'
AND `user`.`country` = 'DE'
AND `userprofile`.`gender` = 'male'
AND `searchprofile`.`gender` = 'female'
AND `userprofile`.`height` BETWEEN 155 AND 185
AND `userprofile`.`zipcode` IN(73560,73540,73563,73574,73572,73571,73575,73579,73527,
73529,73457,73566,73557,73550,73525,73569,73453,73577,
73568,73111,73430,73565,73447,73431,73434,89558,73433,
73553,73113,73460,73486,74429,73491,89551,73072,73547,
89555,74417,73116,73432,73079,73084,74426,73054,73102,
73492,73333,73463,73037,73104,73642,73329,73098,89518,
89520,73479,89547,74405,73667,73035,73655,73312,73494,
74424,89522,74427,73114,73033,73099,73117,73337,73660,
73107,73466,73340,74423,73092,89564,89174,73066,73489,
73108,73326,73105,89542,73614,71566,89197,74586,73635,
74420,73087,74544,73095,89173,73061,73110,73342,71540,
73488,73450,74538,89177,74597,73119,89189,73441,73344,
74541,89428,73650,89191,89537,71549,89447,73669,71554,
73278,73101,73663,73347,89183,89198,73275,71573,73499)
ORDER BY `user`.`lastLogin`
LIMIT 120
Kommentar