开发中使用mysql的注意点

本文探讨了数据库字段选择、查询效率提升和索引优化的策略。遵循阿里规范,建议使用最小数据类型,优先选择VARCHAR,避免NULL字段,利用LIMIT限制查询数据量,避免全表扫描和使用!=或<>操作符。同时,优化索引以提升数据库性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字段相关

  • 优先选择符合存储需要的最小的数据类型
    因为列的字段越大,建立索引时所需要的空间也就越大,这样一页中所能存储的索引节点的数量也就越少,在遍历时所需要的 IO 次数也就越多,索引的性能也就越差。

  • 简单的数据类型优先

  • VARCHAR不用charVARCHAR的长度只分配真正需要的空间。

  • 使用TIMESTAMPDATETIME而不是字符串存时间类型,TIMESTAMP又优于DATETIME,TIMESTAMP存不下才用DATETIME

  • 避免使用NULL字段,因为很难查询优化且占用额外索引空间

查询相关

避免查询中筛选大量数据,可以通过limit限制;

不要使用select * 这种全表扫描的语句

可通过开启慢查询日志来找出较慢的SQL

不做列运算
例如:SELECT id WHERE age + 1 = 10这样的sql就很不好
任何对列的操作都将导致表扫描,它包括数据库教程函数、计算表达式等等,查询时要尽可能将操作移至等号右边

拆分大事物
一个事物只能在一个cpu运算;大语句拆小语句,减少锁时间;一条大sql可以堵死整个库

避免%xxx式查询

使用同类型进行比较,比如用’123’和’456’比,123和456比,而不要用‘123’和456比。

尽量避免在WHERE子句中使用!=或<>操作符,否则会放弃使用索引而全表扫描

索引优化相关

索引优化

阿里规范

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值