MySQL中十大最佳实践

转自https://bigdata-madesimple.com/top-10-best-practices-in-mysql/

MySQL是世界上使用最广泛的开源关系数据库管理系统。它因其一致的快速性能,高可靠性和易用性而变得如此受欢迎。本文介绍了MySQL中的一些最佳实践

MySQL中的最佳实践

1.始终使用正确的数据类型

根据数据的性质使用数据类型。如果使用不相关的数据类型,则可能会占用更多空间或导致错误。
示例:使用varchar(20)存储日期时间值而不是DATETIME数据类型将导致与日期时间相关的计算期间出现错误,并且还存在存储无效数据的可能情况。

2.在VARCHAR上使用CHAR(1)(1)

如果您将单个字符串起来,请使用CHAR(1)而不是VARCHAR(1),因为VARCHAR(1)将使用额外的字节来存储信息

3.使用CHAR数据类型仅存储固定长度的数据

示例:如果数据长度小于1000,则使用char(1000)而不是varchar(1000)将占用更多空间

4.避免使用区域日期格式

使用DATETIME或DATE数据类型时,请始终使用适合您的SQL引擎的YYYY-MM-DD日期格式或ISO日期格式。其他区域格式如DD-MM-YYY,MM-DD-YYYY将无法正确存储。

5.索引键列

确保索引JOIN子句中使用的列,以便查询快速返回结果。
如果使用涉及多个表的UPDATE语句,请确保将用于连接表的所有列都编入索引

6.不要在索引列上使用函数

在索引列上使用函数会破坏索引的用途。假设您想要获取客户代码的前两个字符为AK的数据,请不要写
SELECT列FROM表WHERE left(customer_code,2)='AK' 
但是使用
SELECT列重写它表FROM表WHERE customer_code如'AK%' 
哪个将使用索引,这将导致更快的响应时间。

7.仅在需要时使用SELECT *

不要盲目地在代码中使用SELECT *。如果表中有许多列,则会返回所有列,这将减慢响应时间,尤其是在将结果发送到前端应用程序时。
明确键入实际需要的列名。

8.仅在需要时使用ORDER BY子句

如果要在前端应用程序中显示结果,请让它对结果集进行排序。在SQL中执行此操作可能会减慢多用户环境中的响应时间。

9.选择适当的数据库引擎

如果您开发的应用程序比写入更频繁地读取数据(例如:搜索引擎),请选择MyISAM存储引擎。
如果您开发的应用程序比读取更频繁地写入数据(例如:实时银行交易),请选择INNODB存储引擎。
选择错误的存储引擎会影响性能

10.在需要的地方使用EXISTS子句

如果要检查数据是否存在,请不要使用
If(SELECT count(*)from Table WHERE col ='some value')> 0 
,使用EXISTS子句
如果EXISTS(SELECT * from Table WHERE col ='some value ')
响应时间更快。

猜你喜欢

转载自blog.csdn.net/hyrzzh/article/details/84422506