Errori comuni Mysql di un programmatore PHP

466 visite
database

Errori Mysql PHP

Il database è uno strumento fondamentale per chi programma in PHP ed è molto importante evitare di fare alcuni errori comuni.Senza entrare troppo nel dettaglio ecco di seguito una lista di errori comuni:

1. Usare l’engine MyISAM invece di InnoDB

MySql ha un diverso numero di engine a disposizione e il MyISAM è quello di default.

La scelta di usare questo engine è pessima per due motivi: MyISAM non supporta i vincoli di chiave esterna e le transazioni, elementi fondamentali per mantenere l’integrità dei dati del DB. Inoltre tutta la tabella viene messa in Lock quando avviene un inserimento o un aggiornamento abbassando di molto le performance della gestione dei dati.

C’è una soluzione: usare InnoDB.

2. Usare le funzioni PHP mysql

Se state usando un versione di MySql superiore alla 4.1.3 è consigliabile usare le funzioni mysql native PHP: mysqli.

Queste funzioni utilizzano il prepared statements durante gli inserimenti utili per evitare l’injection SQL e inoltre supporta multiple statement e le transazioni.

3. Non controlla l’input

Evitare in modo assoluto di fidarsi di qualsiasi stringa input che si riceve e inserirla senza un controllo nel database. In questo modo eviteremo attacchi distruttivi e injection al nostro DB.

4. Non usare il charset UTF-8

L’UTF-8 risolve tutti i nostri problemi in caso di multilingua.

5. Non ottimizzare le Query

Il 99% dei problemi di performance di un software PHP viene da un cattivo utilizzo del Database. Per esempio non si controllano le query con EXPLAIN per capire come ottimizzarle o come inserirne correttamente gli indici. E’ possibile utilizzare Query Profiler e molti altri tools (slow queries) etc..

6. Usare Select * nelle query

Cercare di non usare * nelle Select

7. Non effettuare un Backup

Ricordarsi di effettuare backup periodici perchè il disastro dei nostri dati è sempre in agguato.

8. MySQL non è l’unico Database

Infine non dimentichiamoci che Mysql non è l’unico RDBMS presente sul mercato !

MariaDB per esempio è una alternativa… PostgresSQL oppure FirebirdSQL Drizzle ma ce ne sono altri.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.