EspañolDeutschFrançaisItalianoPortuguêsРусскийΕλληνικά日本語中文(简体)हिन्दी; हिंदीالعربية
设置为默认语言
PF 问题 - 论坛

的 10 关于 MySQL 我们使 PHP 程序员的主要 bug

站长和 SEO  
 
的 10 关于 MySQL 我们使 PHP 程序员的主要 bug

当程序在 PHP 和您的应用程序开始有一定 翼展, 最符合逻辑的事是,你需要支持你在 数据库管理系统 存储和操纵任何关于相同的数据. 在 PHP 的情况下, 在更大程度上使用的系统是 MySQL.

真不容易 建立一个坚实的数据库, 可靠, que esté libre de inconsistencias y vulnerabilidades y que, 因此, 有一个基于任何结构 正常形式 最常用的. 所以它是正常的, como programadores en PHP, caigamos en alguno de los principales errores a la hora de trabajar con MySQL.

 

1. Usar MyISAM en lugar de InnoDB

MyISAM es el motor configurado 默认情况下 en la instalación de MySQL 但, a menos que aún tengas tu base de datos en desarrollo o tu proyecto sea bastante simple, ES 明智的做法 使用 InnoDB. Éste admite 交易, esenciales para la integridad de los datos. 另外, a la hora de insertar o actualizar un registro, solo bloquea a éste, y no a la tabla entera como hace MyISAM, teniendo un efecto positivo sobre el 性能, sobre todo en las escrituras.

 

2. No usar las funciones adecuadas para MySQL de PHP

PHP 提供 funciones específicas para la conexión y uso de MySQL. Funciones como mysql_connect, mysql_query, … Estas funciones resultaron mejoradas para versiones de PHP igual o superior a la 4.1.3, por lo que es aconsejable usar esta última, 调用 MySQLi. Ésta presenta una serie de 优势 como una intefaz orientada a objetos, prevención de ataques de inyección de SQL mediante las preparedStatements, 性能提升, 等.

 

3. No sanear las entradas de usuario

no sanearentradas del usuario y usarlas para crear una sentencia SQL, la cual ejecutaremos sobre la base de datos, estamos dando lugar a una 漏洞 permitiendo la inyección de código SQL en los campos desde los cuales tomamos dichos valores.

如果, 通过 示例, estamos manejando un login de usuario, y al obtener los datos del formulario los asignamos directamente de la siguiente forma:

Si en el campo 名称 introdujéramos el valor admin’; –“ (未使用引号), la cadena SQL resultante sería la siguiente:

Con lo que el usuario accedería 直接 sin introducir 任何一种的 密码, además de acceder como administrador, 如果 管理员 fuese el nombre de algún usuario administrador.

 

4. No usar la codificación UTF-8

Utilizar esta codificación evita muchos problemasinternacionalización, ya que debemos tener en cuenta que nuestro sitio web no solamente será accedido desde nuestro propio país, sino desde países cuyos juegos de caracteres difieren mucho de los nuestros.

 

5. Hacerlo todo mediante PHP

Es habitual realizar toda la codificación mediante el lenguaje PHP, incluso aquellas funciones que resultarían mucho más rápidas si las realizara el propio gestor de bases de datos. 举个例子, utilizar un 回路 en PHP para calcular un promedio, sumando todos los valores de un conjunto de registros, en vez de usar la función nativa de MySQL, AVG().

在以同样的方式, existe la posibilidad de codificar funciones y procedimientos internos 在自己的数据库中, favoreciendo el rendimiento de nuestra aplicación en términos globales.

 

6. No optimizar las consultas

99% de los problemas de rendimiento de una aplicación en PHP es causada por la base de datos. Hay que ser consciente de que una simple mala consulta puede causar un cuello de botella en nuestro sitio web, por lo que es recomendable realizar una optimización de las consultas más pesadas.

Existen aplicaciones y 脚本 que revisarán tu servidor MySQL y te darán 小贴士 para mejorar su rendimiento, así como te mostrarán las posibles consultas que deberían optimizarse.

 

7. Utilizar tipos de datos incorrectos

MySQL ofrece un conjunto de tipos de datos variado (numérico, 链, 时间, 日期, …). Si vas a almacenar una 日期, usa el tipo DATE o DATETIME, en vez de usar un INTEGER o STRING, que harán más complicada las consultas.

A menudo, es tentador crear tus propios tipos de datos y guardarlos en la base de datos como objetos serializados de PHP. Aunque el manejo de la base de datos será más fácil, 你 将防止 realizar fácilmente búsquedas y consultas sobre datos almacenados.

 

8. Usar el asterisco (*) en las consultas SELECT

Nunca uses el asterisco en las consultas 选择, a menos que sea estríctamente necesario. Intenta siempre hacer una consulta sobre los campos que realmente necesites, los demás son recursos gastados en vano.

 

9. No indexación o sobre-indexación

通常, 的 índices se aplican a cualquier columna sobre la que una consulta SELECT realizará su WHERE, por lo que resulta útil el crear índices para las consultas que más recursos consumen y aquellas que normalmente son más usadas.

在以同样的方式, el añadir índices a cada columna puede hacer que caiga el rendimiento del servidor debido a que éstos deben ser regenerados durante cada inserción o actualización de la tabla.

 

10. Olvidarte de hacer copias de seguridad

Aunque no lo creas, las bases de datos fallan, así como los discos duros o cualquier otro hardware o software que pueda tener el servidor donde tengas alojadas tus bases de datos. Si tu aplicativo web tiene cierta 重要性, imagina el perder de golpe toda la información sobre el mismo.

为了避免这种, acostumbra a hacer copias de seguridad periódicas, 或只是, prográmalas para que se realicen 自动.

 

Cómo puedes ver, estos son solo 10 de los principales errores que los programadores en PHP podemos o solemos cometer cuando trabajamos con el gestor de bases de datos MySQL. 不用说,, aparte de este, 所以众所周知, sistema de bases de datos, 有 otras soluciones 一样 fiables y buenas, y que también pueden ser opción para cualquiera de los proyectos o aplicativos web que tengamos que desarrollar bajo PHP.

加入的频道 电报

我们的留言或输入到论坛
Share on Facebook Tweet about this on Twitter Share on Google+ Pin on Pinterest Share on Reddit Share on VK Share on StumbleUpon Share on Tumblr Share on LinkedIn Email this to someone Print this page

相关的文章