Allora, eccomi qui a tirar le somme.
Purtroppo i dati che ho sottomano non sono molto attendibili, a causa della macchina che uso.
Ho tolto easyphp e ho installato Apache2, PHP 4.4.1 e MySQL 4.4.1 sul mio pc con Windows XP, ma evidentemente non è affidabile per DB di grosse dimensioni: con 200.000 record e 1GB di database, per la stessa query ci mette una volta 40 secondi, poi 6, poi 20 e poi 2.![]()
Quando il DB era 250mega le cose andavano NETTAMENTE meglio (vedi post poco più su).
Sicuramente dipende dal fatto che il pc è usato anche per altre cose, e che il disco è in realtà una partizione dati + windows su un hd da 5400rpm ATA.
Comunque... per quel che ho potuto riscontrare, impostando il limite minimo a 3 caratteri le prestazioni non subiscono un degrado apprezzabile. Quando potrò mettere tutto l'ambaradan su un server "vero", allora potrò sciorinare dati con cognizione di causa.
Nel frattempo, mi costruisco un sistema di statistiche che tenga traccia del tempo utilizzato per ogni query in relazione al numero di record del DB.
Nel frattempo, restano aperte le mie domande:
Resta il fatto che tra FULLTEXT e REGEXP non esiste il paragone!1) Se dovessi cercare le parole di 3 lettere con LIKE, non sfrutterei gli indici fulltext e quindi la query sarebbe MOLTO onerosa, o mi sbaglio?
2)I tempi quindi sono + che accettabili, ma è ragionevole supporre che se il db occupasse 2.5gb o 25gb invece degli attuali 250mb, i tempi medi sarebbero rispettivamente 30 secondi e 300 secondi, invece dell'attuale mezzo secondo? Oppure non è così che vanno calcolati?VVoVe:

VVoVe:
Rispondi quotando