26、当在 SQL 语句中连接多个表时,请使用表的别名,并把别名前缀于每一列上,这样语义更加清晰
反例:
select* from A innerjoin B on A.deptId = B.deptId;
正例:
selectmemeber.name,deptment.deptName from A member innerjoin B deptment on member.deptId = deptment.deptId;
27、尽可能使用 varchar/nvarchar 代替 char/nchar
反例:
`deptName` char(100) DEFAULT NULL COMMENT '部门名称'
正例:
`deptName` varchar(100) DEFAULT NULL COMMENT '部门名称'
理由如下:
因为首先变长字段存储空间小,可以节省存储空间 。
其次对于查询来说,在一个相对较小的字段内搜索,效率更高 。
28、为了提高 group by 语句的效率,可以在执行到该语句前,把不需要的记录过滤掉
反例:
select job,avg(salary) from employeegroup by job having job ='president' or job = 'managent'
正例:
select job,avg(salary) from employee where job ='president' or job = 'managent' group by job;
29、如果字段类型是字符串,where 时一定用引号括起来,否则索引失效
反例:
select * from user where userid =123;
文章插图
正例:
select * from user where userid ='123';
文章插图
理由:为什么第一条语句未加单引号就不走索引了呢?这是因为不加单引号时,是字符串跟数字的比较,它们类型不匹配,MySQL 会做隐式的类型转换,把它们转换为浮点数再做比较 。
30、使用 explain 分析你 SQL 的计划
日常开发写 SQL 的时候,尽量养成一个习惯吧 。用 explain 分析一下你写的 SQL,尤其是走不走索引这一块 。
explain select * from user where userid =10086 or age =18;
文章插图
作者:捡田螺的小男孩
来源:捡田螺的小男孩
推荐阅读
- 开发安全、高质量代码的 5 款顶级 Python 工具
- 小颗粒男性是什么梗 人类高质量男性是啥梗什么意思
- 四个最佳实践,引导你写出高质量JavaScript模块
- 如何编写高质量的 JS 函数
- 建议书写作格式及范文 建议书的范文
- 网站优化更新之伪原创内容书写方式
- 30条高情商社交潜规则
- 饭桌上掌握这30条餐桌礼仪,让你做一位优雅的人
- RESTful API书写规范
- 前端正则表达式书写以及常用的方法