Ja, ik bedoelde dan ook een index op meerdere kolommen, namelijk genre en ad_id.quote:Op zaterdag 4 maart 2006 11:04 schreef Swetsenegger het volgende:
[..]
ad_id is de PK, die is toch al index?
dus de index op genre zou het juist trager maken ipv sneller?quote:Op zaterdag 4 maart 2006 11:14 schreef Light het volgende:
[..]
Ja, ik bedoelde dan ook een index op meerdere kolommen, namelijk genre en ad_id.
Ik bedoelde dus een index op (genre, ad_id). Maar je zou ook de index op genre eens weg kunnen halen om te kijken of dat effect heeft. Ik vermoed dat het wel merkbaar is, omdat er dan een index gebruikt kan worden bij de group by. Lijkt mij.quote:Op zaterdag 4 maart 2006 11:32 schreef Swetsenegger het volgende:
[..]
dus de index op genre zou het juist trager maken ipv sneller?
Ah zoquote:Op zaterdag 4 maart 2006 11:38 schreef Light het volgende:
[..]
Ik bedoelde dus een index op (genre, ad_id). Maar je zou ook de index op genre eens weg kunnen halen om te kijken of dat effect heeft. Ik vermoed dat het wel merkbaar is, omdat er dan een index gebruikt kan worden bij de group by. Lijkt mij.
Als ik hier lokaal ga testen dan is die query nog best snel. Maar ik heb natuurlijk geeen 2000 rows in een ad tabelquote:Op zaterdag 4 maart 2006 12:14 schreef Swetsenegger het volgende:
[..]
Ah zo
Nee, dat heeft geen effect want ik ben juist met indexes gaan klooien omdat die query zo traag was
Ik heb nu dus die query herschreven zoals op de vorige pagina, en ondanks dat ik dus 20 queries draai, vliegt dit het scherm op.
Mooi is het niet, effectief wel. Daarom vroeg ik al vanaf welke MySQL versie subqueries ondersteunt worden (4.1) maar er draait 4.0 op de server.
Dat klopt, de query was in eerste instantie ook snel genoeg. Ik was er ook zeer content mee.quote:Op zaterdag 4 maart 2006 12:41 schreef Light het volgende:
[..]
Als ik hier lokaal ga testen dan is die query nog best snel. Maar ik heb natuurlijk geeen 2000 rows in een ad tabel
Ik heb hier nog een tabel kunnen vinden met 2000+ rows, met items in verschillende groepen. En daar kan ik best per groep de laatste 3 items uithalen met jouw query, kost maximaal ongeveer 0.02 seconden (op mijn pc).quote:Op zaterdag 4 maart 2006 12:50 schreef Swetsenegger het volgende:
[..]
Dat klopt, de query was in eerste instantie ook snel genoeg. Ik was er ook zeer content mee.
Maar als ik SuperRembo's reken sommetje volg, neemt met een verdubbeling van het aantal advertenties het aantal rijen van de query met een factor 4 toe!
Online was de query in phpmyadmin 15 seconden. Lokaal 9 seconden
Thnx! dat was de oplossingquote:Op zaterdag 4 maart 2006 06:44 schreef JeRa het volgende:
De geescapede newlines (\n) werken over het algemeen alleen als je ze in een string zet met dubbele quotes (aanhalingstekens) eromheen, dus "\n" of "blaat\nblaat". Heb je ze toevallig in single quoted strings gezet? ( '\n' )
Misschien dat het dan aan de SQL versie ligt? Of misschien aan de join met een andere tabel?quote:Op zaterdag 4 maart 2006 13:04 schreef Light het volgende:
[..]
Ik heb hier nog een tabel kunnen vinden met 2000+ rows, met items in verschillende groepen. En daar kan ik best per groep de laatste 3 items uithalen met jouw query, kost maximaal ongeveer 0.02 seconden (op mijn pc).
Ik heb maar een simpele amd64 3000+ met 1GB.quote:Op zaterdag 4 maart 2006 13:18 schreef Swetsenegger het volgende:
[..]
Misschien dat het dan aan de SQL versie ligt? Of misschien aan de join met een andere tabel?
Mijn PC is namelijk niet de traagste (AMD64 3200+, 1GB Kingston HyperX)
En zowel online, als lokaal als bij SuperRembo is hij rete traag
Is goedquote:Ik wil je wel een dump van de tabellen mailen.
Drom, dus ik begrijp niet waarom de query bij mij veel trager zou zijnquote:Op zaterdag 4 maart 2006 13:31 schreef Light het volgende:
[..]
Ik heb maar een simpele amd64 3000+ met 1GB.
komt zo een zippie aan. gewoon at fok punt en el?quote:Is goed
Da's wel de makkelijkstequote:Op zaterdag 4 maart 2006 13:33 schreef Swetsenegger het volgende:
komt zo een zippie aan. gewoon at fok punt en el?
Je hebt mail terugquote:Op zaterdag 4 maart 2006 13:33 schreef Swetsenegger het volgende:
-edit- hij was nu sneller dan gisteren (misschien draaide mijn virusscanner ofzo) maar nog steeds goed voor bijna 4 seconden.
0.4 seconden!quote:Op zaterdag 4 maart 2006 14:19 schreef Light het volgende:
[..]
Je hebt mail terugEn het kan nog sneller
1 |
Je maakt een index, die noem je genre, en die gebruikt 2 velden, namelijk genre en ad_id.quote:Op zaterdag 4 maart 2006 14:28 schreef Swetsenegger het volgende:
[..]
0.4 seconden!
[ code verwijderd ]
Dit begrijp ik niet. Je zet een index op genre, maar die gebruikt twee velden ofzo?
1 |
Ah ok, het is een naampje.quote:Op zaterdag 4 maart 2006 14:30 schreef Light het volgende:
[..]
Je maakt een index, die noem je genre, en die gebruikt 2 velden, namelijk genre en ad_id.
Oh tof, die kende ik nietquote:Op zaterdag 4 maart 2006 12:14 schreef Swetsenegger het volgende:
[..]
Speciaal voor Tijn trouwens, kon je deze al?:
http://www.apple.com/downloads/macosx/unix_open_source/mamp.html
Ik ga denk ik ook maar zoeken naar een xserve
Alleen kom ik nergens een betaalbare xserve tegen.quote:Op zaterdag 4 maart 2006 20:25 schreef Tijn het volgende:
[..]
Oh tof, die kende ik nietMaar ik had PHP en MySQL al zelf draaiende gekregen op m'n Mac, dus op zich heb je het ook niet echt nodig. PHP stond er zo op en MySQL was met de bijgeleverde handleiding ook wel te doen
Sowieso bestaat er ook een server-versie van Mac OS X waar dit trouwens volgens mij al allemaal standaard in zit. Dat is ook het standaard OS van een XServe, dus dat heb je echt binnen 5 seconden werkend.
1 2 3 4 5 6 7 8 9 | function like_esc($string) { $string = mysql_real_escape_string($string); $string = str_replace('%', '\%', $string); $string = str_replace('_', '\_', $string); return $string; } ?> |
1) Wat geeft hij dan wél terug?quote:Op zondag 5 maart 2006 22:47 schreef Swetsenegger het volgende:
Hmz, $search=like_esc($_POST['search']); geeft bij %zoek% niet \%zoek\% terug zoals ik verwacht?
Niet gestripslashed, macig quotes staat aanquote:Op zondag 5 maart 2006 22:50 schreef JeRa het volgende:
[..]
1) Wat geeft hij dan wél terug?
2) Heb je vantevoren alles gestripslashes()'ed indien magic_quotes_gpc aan staat?
Inderdaad, ik weet verder ook niet waarom hij niet voor je werktquote:Op zondag 5 maart 2006 23:05 schreef Swetsenegger het volgende:
[..]
Niet gestripslashed, macig quotes staat aan
Maar goed, dan verwacht ik nog steeds dat ik wel een geescaped % terug krijgt toch? of wordt die OOK geslashed door magic quotes?
1 2 3 4 5 6 7 8 9 10 11 12 | require('../connect.php'); function like_esc($string) { $string = mysql_real_escape_string($string); $string = str_replace('%', '\%', $string); $string = str_replace('_', '\_', $string); return $string; } ?> |
1 2 3 4 5 | if($_SERVER['REQUEST_METHOD']=='POST'){ $search=like_esc($_POST['search']); $query="SELECT whatever FROM tabel WHERE iets LIKE'%".$search."%' || iets_anders LIKE'%".$search."%' || compleet_anders LIKE'%".$search."%' ORDER BY d DESC"; ?> |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |