Ik heb een script waarbij ik via jQuery een tabel aanmaak waarin ik heel snel een row kan opzoeken tussen 36.000+ andere rows.
Maar het duurt HEEEEL lang voordat het geladen is.
Weet iemand hoe ik dit kan verbeteren?
De query:
<?php
$sql = "
SELECT
ID,
client_id,
name,
contact
FROM
clients
ORDER BY
name, ID
";
?>
De tabel:
<?php
CREATE TABLE IF NOT EXISTS `clients` (
`ID` int(20) NOT NULL,
`client_id` int(20) NOT NULL,
`name` varchar(255) NOT NULL,
`street` varchar(255) NOT NULL,
`postal` varchar(255) NOT NULL,
`city` varchar(255) NOT NULL,
`country` varchar(255) NOT NULL,
`phone` varchar(255) NOT NULL,
`since` varchar(255) NOT NULL,
`changed` varchar(255) NOT NULL,
`contact` varchar(255) NOT NULL,
`email` varchar(255) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=36085 DEFAULT CHARSET=latin1;
?>
Nadat je browser de filtering gedaan heeft. Beetje jammer voor de gebruikers met een wat trage verbinding (duurt even voor de data er is) en met een wat trage pc, omdat de pc van de bezoeker aan het werk gezet wordt om 90% van de opgehaalde data weer weg te gooien
Verkeerd verwoord dan. Ik haal er 200 op uit de database (die 200 is variable), dus ik filter ze neit in de browser. Scroll je omlaag wordt er dmv ajax nieuwe records opgehaald. Ik zou niet weten waarom ik 36.000 rows zou ophalen voor wat zoekwerk, terwijl mysql het zoeken ook voor mij kan doen ;)
Verder gebruik ik deze plugin alleen zelf, en ben zeer tevreden over de snelheid.
Als de interesse er is, wil ik hem best delen hier op phphulp na wat finetuning...
Weet iemand hoe ik dit kan verbeteren?
De query:
<?php
$sql = "
SELECT *
FROM
clients
ORDER BY name, ID
";
?>
Kom ik heel veel tegen bij ontwikkelaars die bij me komen omdat de "database" zo traag is, of ik de database even van de handrem af kan halen. Enorme bakken met data ophalen en processen in loops op de client(en/of webproces). Niet doen! Meteen de juiste selectie in je query maken en de op te halen hoeveelheid in ieder geval beperken. Zie de tips van Randy!
Mijn doel was om heel snel door deze rows te kunnen zoeken naar de juiste client.
Mijn loadtime is 0,00001 seconde voor al deze rows te laden.
Niet jokken, alleen het ophalen van 36k rijen door de database duurt al een halve seconde, en ze omzetten naar JSON zal ook niet gratis zijn.
Misschien, heel misschien, als je heel erg slecht meet, is het daadwerkelijk zoeken in de JSON array te doen in een paar milliseconden maar dat geloof ik ook niet echt. :-)
Vind ik niet echt een "aanslag" op mijn server die gewoon online (lees live) draait..
Hij doet nog steeds zo'n 30.000 keer zoveel werk als hij hoeft te doen. Je traffig is sowieso griezelig veel groter dan nodig.
[qoote]
Het kan vast 100x beter, maar voor mij werkt het nu voorlopig..
[/quote]
Het werkt, absoluut, en zolang je het op een hele kleine schaal toepast is er ook niet echt iets op tegen, maar als je dit publiek maakt dan krijg je een hele waslijst aan klachten en een rekening van je provider :)