常见MySQL错误用法有哪些 小白怎么学Web前端
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了常见MySQL错误用法有哪些 小白怎么学Web前端,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2063字,纯文字阅读大概需要3分钟。
内容图文
常见MySQL错误用法有哪些?小白怎么学Web前端?无论是前端开发还是后台应用,都需要掌握数据库相关的知识,而MySQL是企业常用的数据库之一。对于一个Web前端小白来说,在完成HTML+CSS的基础学习后,他们还需要学习MySQL相关操作,下面列举几种比较常见的MySQL错误用法,希望大家能够引以为鉴。
1、隐式转换
SQL语句中查询变量和字段定义类型不匹配是另一个常见的错误。比如下面的语句:
mysql> explain extended SELECT *
> FROM my_balance b
> WHERE b.bpn = 14000000123
> AND b.isverified IS NULL ;
mysql> show warnings;
| Warning | 1739 | Cannot use ref access on index ‘bpn‘ due to type or collation conversion on field ‘bpn‘
其中字段bpn的定义为varchar(20),MySQL的策略是将字符串转换为数字之后再比较。函数作用于表字段,索引失效。
上述情况可能是应用程序框架自动填入的参数,而不是程序员的原意。现在应用框架很多很繁杂,使用方便的同时也小心它可能给自己挖坑。
2、混合排序
MySQL不能利用索引进行混合排序,但在某些场景,还是有机会使用特殊方法提升性能的。
SELECT *
FROM my_order o
INNER JOIN my_appraise a ON a.orderid = o.id
ORDER BY a.is_reply ASC,
a.appraise_time DESC
LIMIT 0, 20
由于is_reply只有0和1两种状态,我们按照上面的方法重写后,执行时间从1.58秒降低到2毫秒。
SELECT *
FROM ((SELECT *
FROM my_order o
INNER JOIN my_appraise a
ON a.orderid = o.id
AND is_reply = 0
ORDER BY appraise_time DESC
LIMIT 0, 20)
UNION ALL
(SELECT *
FROM my_order o
INNER JOIN my_appraise a
ON a.orderid = o.id
AND is_reply = 1
ORDER BY appraise_time DESC
LIMIT 0, 20)) t
ORDER BY is_reply ASC,
appraisetime DESC
LIMIT 20;
3、EXISTS语句
MySQL对待EXISTS子句时,仍然采用嵌套子查询的执行方式。如下面的SQL语句:
SELECT *
FROM my_neighbor n
LEFT JOIN my_neighbor_apply sra
ON n.id = sra.neighbor_id
AND sra.user_id = ‘xxx‘
WHERE n.topic_status < 4
AND EXISTS(SELECT 1
FROM message_info m
WHERE n.id = m.neighbor_id
AND m.inuser = ‘xxx‘)
AND n.topic_type <> 5
去掉exists更改为join,能够避免嵌套子查询,将执行时间从1.93秒降低为1毫秒。
SELECT *
FROM my_neighbor n
INNER JOIN message_info m
ON n.id = m.neighbor_id
AND m.inuser = ‘xxx‘
LEFT JOIN my_neighbor_apply sra
ON n.id = sra.neighbor_id
AND sra.user_id = ‘xxx‘
WHERE n.topic_status < 4
AND n.topic_type <> 5
注意:
1)数据库编译器产生执行计划,决定着SQL的实际执行方式。但是编译器只是尽力服务,所有数据库的编译器都不是尽善尽美的。
2)了解数据库编译器的特性,才能避规其短处,写出高性能的SQL语句。
3)程序员在设计数据模型以及编写SQL语句时,要把算法的思想或意识带进来。
4)编写复杂SQL语句要养成使用WITH语句的习惯,简洁且思路清晰的SQL语句也能减小数据库的负担。
如果你想了解更多MySQL数据库知识,或者你想快速成为合格的Web前端工程师,可以选择专业的学习,让你快速系统的学好技能!
原文:https://www.cnblogs.com/qianfengzz/p/11578645.html
内容总结
以上是互联网集市为您收集整理的常见MySQL错误用法有哪些 小白怎么学Web前端全部内容,希望文章能够帮你解决常见MySQL错误用法有哪些 小白怎么学Web前端所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。