Hallo,

Ik zat eens na te denken en ik kwam op een best wel leuk idee voor mijn site. Maar dan zou ik de zoekmachine drastisch moeten aanpassen. Ik gebruik nu FULLTEXT om mijn database te doorzoeken. Maar ik vind dat FULLTEXT toch wel een paar nadelen heeft, maar daar kan ik aan de andere kant ook wel meer mee leven. Ik moet als ik mijn 'idee' in de zoekmachine eerst ORDER BY score DESC doen en dan moet ik het ook nog orderen op de waarde van een bepaald veld, dus dan moet er nog iets achter: , ORDER BY waarde DESC:
Is dit mogelijk? En als het mogelijk is maar het zou op een andere manier beter kunnen gaan, dan hoor ik dat graag. Ook vroeg ik me af of je een database per se met FULLTEXT moet doorzoeken: Zijn hier geen goede, snelle, veilige scripts voor?

Alvast bedankt!

Ik heb het over Fulltext, zoals je kan teruglezen. Niet over constraints.


Zo zou je het inderdaad kunnen lezen. Ik bedoel maar te zeggen dat je niet zomaar tegen producten aan moet gaan schoppen. MySQL is geen amateuristisch kutsysteem anders zou het niet zo'n enorm marktaandeel te hebben. Relationele databases zijn geen probleem en ja, daarvoor zal je Fulltext moeten opgeven. Dat is niet zo raar, MySQL kiest ervoor om hun storage engines zo op te bouwen dat ze op een bepaald gebied sterk zijn en niet overal matig in.

Als professional zou je alle voor en nadelen van PostgreSQL, MySQL of welke database dan ook moeten kennen en per situatie moeten beoordelen welke database het beste tot z'n recht komt. Als je MySQL gelijk aan de kant schuift met een label 'amateuristisch' en 'kutsysteem' denk ik niet dat je die overweging objectief zal maken :-)
(1) MySQL is geen amateuristisch kutsysteem anders zou het niet zo'n enorm marktaandeel te hebben.
(2) Relationele databases zijn geen probleem en ja, daarvoor zal je Fulltext moeten opgeven. Dat is niet zo raar, MySQL kiest ervoor om hun storage engines zo op te bouwen dat ze op een bepaald gebied sterk zijn en niet overal matig in.
(...)
(3) Als professional zou je alle voor en nadelen van PostgreSQL, MySQL of welke database dan ook moeten kennen en per situatie moeten beoordelen welke database het beste tot z'n recht komt.
(4) Als je MySQL gelijk aan de kant schuift met een label 'amateuristisch' en 'kutsysteem' denk ik niet dat je die overweging objectief zal maken :-)
Punt 1. Ik weet dat ik zelf niet bepaald veel argumenten heb gegeven, maar dit is ook geen argument. Het is bijvoorbeeld een feit dat de meeste PHP programmeurs amateurs zijn, dit is waar MySQL dan ook altijd wordt toegepast. In hun groei naar professionalisering blijven ze bij de database. Maar zul je ooit een database-specialist met MySQL zien werken? Misschien dat ze MySQL 5 in overweging nemen, maar ik zou het antwoord simpelweg op 'nee' gooien.

Punt 2. Dit betekent dus dat óf PostgreSQL in alles matig is, óf je MySQL-developers niet in staat acht iets te maken dat in alle opzichten goed is. Ik ben het met allebei niet eens. Wat zou de reden zijn dat Falcon komt? Omdat InnoDB niet voldoet (ja, en van Oracle is). Daarnaast zijn er zo ontzettend veel dingen aan MySQL die raar of slecht zijn. Ik verwijs je in eerste instantie al naar yapf.net. Voor iemand die SQL gewend is is MySQL een puzzel zonder oplossing. Of het nou om rechten, views, fulltext gaat of over performance m.b.t. gebruikers en processen; niets van de geavanceerde SQL/database functies werkt nou echt naar behoren. Het enige waar je MySQL de voorkeur in kan geven is voor grote zoekmachines. Verder zie ik echt geen redenen.

Punt 3. Voor zoekmachines (Google-achtig) kun je MyISAM gebruiken. InnoDB-voordeel zie ik niet t.o.v. PostgreSQL of Oracle, of Sybase, of whatever.

Punt 4. Ik hád 'm inderdaad niet objectief gemaakt, nu wel. Ik stel mijn bewering bij naar: "amateuristisch kutsysteem mits je niet met grote zoekmachines bezig bent".

Edit: overigens heb ik nooit beweerd dat je MySQL niet moet gebruiken. Soms is het praktischer, bijvoorbeeld in verband met kosten of collega-programmeurs, of voorkeuren van een klant. Dat neemt niet weg dat het als databasesysteem op zich niet júh-van-hèt is.


Dat neemt niet weg dat het als databasesysteem op zich niet júh-van-hèt is.


En ik heb nooit gezegd dat MySQL alles is of dat je MySQL moét gebruiken.

Ik zeg alleen dat je als professional moet weten wát je gebruikt en waarom je dat gebruikt. MySQL gebruiken omdat iedereen dat doet is fout, net zoals PostgreSQL gebruiken omdat een paar fan-boys dat telkens roepen op een forum. Daarom zijn kort door de bocht uitspraken die jij doet absoluut nutteloos en artikelen om de beginners kennis te laten maken met PostgreSQL als 'alternatief' wel handig.

Ff kleine reactie op PHPerik ;)

Veel mensen kiezen voor MySQL omdat de hosters dat ook aanbieden. Pas als je grote sites hebt en daarvoor ook wilt betalen heeft PostreSQL nut ( dus zeg maar 5000+ bezoekers per dag) Daarvoor werkt MySQL prima ;) (maar dat weet je zelf ook wel, denk ik)
Ik zeg alleen dat je als professional moet weten wát je gebruikt en waarom je dat gebruikt. MySQL gebruiken omdat iedereen dat doet is fout, net zoals PostgreSQL gebruiken omdat een paar fan-boys dat telkens roepen op een forum. Daarom zijn kort door de bocht uitspraken die jij doet absoluut nutteloos en artikelen om de beginners kennis te laten maken met PostgreSQL als 'alternatief' wel handig.
Het is niet mogelijk altijd een uitgebreide beargumentatie neer te zetten. Dit soort uitspraken zijn jullie héél nuttig, want nu gaat iedereen kijken wat er dan zo goed is aan PostgreSQL en er eens mee aan de slag. Dus op technisch niveau een nutteloze uitspraak is op psychologisch niveau vrij nuttig in dit geval. Verder heb ik mijn argumentatie nu (opnieuw) gegeven in dit topic. Ik had al verwacht dat er naar gevraagd zou worden.

Veel mensen kiezen voor MySQL omdat de hosters dat ook aanbieden. Pas als je grote sites hebt en daarvoor ook wilt betalen heeft PostreSQL nut ( dus zeg maar 5000+ bezoekers per dag) Daarvoor werkt MySQL prima ;) (maar dat weet je zelf ook wel, denk ik)
Dat klopt wat je zegt. Alleen dat zijn dus de amateurs waar ik het over had. Ik bedoel met amateur niet eens direct iemand die geen verstand van zaken heeft, met een amateur bedoel ik iemand die het niet voor z'n beroep doet. Want mensen die het voor hun werk doen die hebben ook een budget. Maar ik wil je er wel op wijzen dat goede hosting met PostgreSQL niet duurder hoeft te zijn dan MySQL hosting. Het wordt minder aangeboden, maar er zijn ook varianten van een eurootje per maand.

Ik ben het in grote lijnen met je eens, ik zei ook al: "Soms is het praktischer, bijvoorbeeld in verband met kosten". Dus je hebt een punt ja.
Hé! MySQL-moddergooien en jullie hebben mij niet gevraagd??? GeenStijl!

MySQL gebruiken omdat iedereen dat doet is fout, net zoals PostgreSQL gebruiken omdat een paar fan-boys dat telkens roepen op een forum.
En daar ben ik het ook helemaal mee eens. Als aanvulling zou ik nog even willen zeggen dat het belangrijkste is dat je jezelf realiseert dat er meerdere databases op deze wereld zijn en dat ze allemaal zo hun voor- en nadelen hebben.

Dé nadelen van MySQL vind ik de betrouwbaarheid. By default geeft MySQL namelijk geen foutmelding op verkeerde input, je kunt zonder enig probleem de string 'blablabla' in een INTEGER zetten. Dat je de data kwijt raakt, zul je MySQL niet over horen. Een datum als 2007-09-31 is evenmin een probleem, net zoals een string van 32 karakters in een VARCHAR waar slechts 30 karakters passen. MySQL gooit voor het gemak wel een stuk van jouw data weg. Je weet dus nooit voor 100% of de data in de database wel correct is, daarvoor zul je moeten weten wat de input was (en wie weet dat?) en wat jouw php-script met de input doet. Zonder deze gegevens is de data altijd onbetrouwbaar, de database doet geen enkele poging om de integriteit te garanderen. Tuurlijk, met STRICT-mode kun je dit soort stommiteiten voorkomen, maar wie gebruikt dat? Als dat er hier op phphulp.nl een stuk of 5 gebruikers zijn, dan houdt het echt wel op.

Het gebruik van foreignkey's is ook zo'n apart verhaal. De enige engine van MySQL die dat kan, innoDB, is niet van MySQL, maar van Oracle! Ik weet niet welk steekje er bij MySQL los zit, maar met het ontbreken van foreignkey's degradeer je een potentiele relationele database tot nauwelijks meer dan een textfile waarbij je zelf de relaties tussen records moet gaan onderhouden. En dat gaat je niet lukken, althans niet zonder zelf een engine te bouwen.

MySQL heeft, imho, slechts 1 voordeel: vrijwel iedere webhoster biedt het aan. Verder staat het stijf van de nadelen of biedt het gelijkwaardige functionaliteit.

Waarom veel php-ers dan toch MySQL kiezen? Veel php-ers hebben nog nooit van SQL gehoord, weten niet wat een RDBMS is maar hebben wel MySQL in hun 1-euro-per-jaar-hosting-abonnement zitten. En wanneer je dan wat hebt gebouwd, ga je niet snel overstappen op een andere database. Dat zal vaak ook niet zonder slag of stoot gaan, ondanks veelvuldig gebruik van SQL, kunnen ze nog geen correcte SQL schrijven. Vaak hebben ze niet eens door dat MySQL poep retour geeft, denk maar eens aan wat fraaie GROUP BY-queries die helemaal niet kunnen...

Ps. Voortaan geen MySQL-bash-topics meer beginnen zonder mijn aanwezigheid, afgesproken? ;)

Reageren