Volgens mij klopt je vraag niet. Als ik het goed begrijp heb je 150 velden die je allemaal nodig hebt, niet 150 records.Anoniem: 97422 schreef op 21 juni 2004 @ 19:08:
---------------------
1 select met 1 where statement zoals select * from test where id=7 op een tabel met 2 kolommen (+de explode) langzamer is dan: een join tussen 2 of 3 tabellen die resulteert in 150 records.
---------------------
(als je uitgaat van de situatie die in deze disussie naar voren komt)
?
Ik zeg niet dat het perse sneller moet zijn, maar zie geen redenen waarom het langzamer zou moeten zijn. Hoe je je data ook ordent, je server moet evenveel bitjes bij elkaar sprokkelen en versturen, je wil immers alle data hebben. De verpakking is dan niet al te relevant, zolang je er geen redundantie inbouwt.
Kort gezegd.. of de database nou
code:
1
| |1|hezik|blaat|1-2-2003| |
of
code:
1
| |1;hezik;blaat;1-2-2003| |
als resultatenset verstuurt maakt weinig uit. Bij voldoende records is de overhead van de metagegevens te verwaarlozen imo.
De grootte van de resultatenset blijft dus ongeveer gelijk.
Ik weet niet hoe groot je veld met 150 kolommen erin is; maar controleer ook eens hoe mysql de zaken fysiek opslaat. Het zou me niets verbazen dat het ophalen van één fat-assed 'string' uit een DB langer duurt dan 150 'normale'.
Ik zal het heel simpel proberen uit te leggen waarom DRM's optie sneller kan zijn:
Je hebt 10 gelijke ladingen welke je bij 10 klanten moet bezorgen. Je magazijn heeft zo'n deur:
code:
1
2
3
4
5
| |----| | |-----------------------------------------------------| | | | | |----------------------------------------------------------| |
Nu heb je keuze voor verschillende verpakkingsmogelijkheden van je lading. Je kunt de lading in zijn geheel in 1 grote doos stoppen (voorwaarde is dat je dat dan bij alle ladingen doet). Die grote doos past slechts per één tegelijk door het hoge stuk van je magazijndeur.
Je kunt de ladingen ook splitsen in kleinere pakketjes, welke met meerdere tegelijk door de deur passen.