mysql:consejos:start

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

mysql:consejos:start [15/11/2011 01:59] – edició externa 127.0.0.1mysql:consejos:start [24/05/2018 11:53] (actual) – suprimit mate
Línia 1: Línia 1:
-= Consejos para BBDD MySQL 
-[[http://net.tutsplus.com/tutorials/other/top-20-mysql-best-practices/|(del artículo Top 20+ MySQL Best Practices)]] 
  
-  - evitar ciertas funciones nativas de MYSQL (fecha, aleatoriedad) para evitar que no las cahee 
-  - Usar el comando EXPLAIN en nuestras sentencias SELECT para ver que hace y poder optimizarlas 
-  - Usar LIMIT 1 cuando queremos coger solo un registro 
-  - Indexar todas las columnas de la tabla que pueden ser susceptibles de una búsqueda 
-  - Usar el mismo tipo de índice y tipo de columna (character encoding) en las columnas que se usan para JOINs 
-  - No utilizar el ORDER BY RAND() LIMIT 1 para obtener una fila aleatoria 
-  - No utilizar el SELECT * 
-  - Tener siempre un ID, Primary Key, Auto_Increment, Unsigned. No utilizar VARCHAR como indices, es más lento. Una excepción son las tablas que relacionan 2 tablas muchos-a-muchos. En este caso se puede utilizar como calve primaria los 2 campos a la vez 
-  - Usar ENUM en lugar de VARCHAR (ENUM funciona como un TinyInt) siempre que sea posible 
-  - Usar PROCEDURE ANALYSE(), te da sugerencias que puedes seguir o no. 
-  - Evitar el uso del NULL en las columnas siempre que sea posible 
-  - Usar sentencias SQL preparadas (mysqli_extension, PDO), se pueden reutilizar con diferentes valores pero solo se compilan 1 vez 
-  - unbuffered Queries ( mysql_unbuffered_query() ) 
-  - guardar direcciones IP en UNSIGNED INT (4 bytes), con las funciones INET_ATON() y INET_NTOA() 
-  - Las tablas que tienen todos los campos de longitud fija son más rápidas. Las columnas del tipo VARCHAR, TEXT, BLOB no lo son. 
-  - Usar técnicas de "particionado vertical": fraccionar la tabla en varias partes en función de: 
-    - datos pocos frecuentes VS datos muy utlizados 
-    - campos con alta frecuencia de actualización (UPDATES) 
-    - OJO con lo JOIN si son muy frecuentes no valdrá la pena 
-  - Fraccionar DELETEs e INSERTs grandes en fracciones (LIMIT 1000), usleep(50000) 
-  - Ajustar las columnas a su tamaño adecuado, las columnas pequeñas son más rápidas. 
-  - Escoger correctamente la Storage Engine: 
-    - MyISAM: ideal para heavy-read, lento en escritura (+ bloqueo de tabla). Cálculo rápido de SELECT COUNT(*) 
-    - InnoDB: más compleja que MyISAM, más lenta para cosas pequeñas. Soporta bloqueo de registro (en vez de la tabla entera) 
-  - Utilizar un ORM que aproveche las transacciones (Doctrine) 
- 
-{{:mysql:consejos:top_20_mysql_best_practices_nettuts_.pdf|Soporte PDF del enlace}} 
- 
-{{tag>mysql}} 
  • mysql/consejos/start.1321351182.txt.gz
  • Darrera modificació: 15/11/2011 01:59
  • per 127.0.0.1