当前位置: 首页 > news >正文

php网站源程序多语言网站建设 技术

php网站源程序,多语言网站建设 技术,工业设计公司排行,海门做网站如果你遇到类似下面的 SQL 查询#xff1a; SELECT * FROM customer c WHERE 0 (SELECT COUNT(*)FROM orders oWHERE o.customer_id c.customer_id);意味着有人没有遵循 SQL 最佳实践。该语句的作用是查找没有下过订单的客户#xff0c;其中子查询使用了 COUNT 函数统计客…如果你遇到类似下面的 SQL 查询 SELECT * FROM customer c WHERE 0 (SELECT COUNT(*)FROM orders oWHERE o.customer_id c.customer_id);意味着有人没有遵循 SQL 最佳实践。该语句的作用是查找没有下过订单的客户其中子查询使用了 COUNT 函数统计客户的订单数量如果结果等于零代表没有订单。 从逻辑上来讲以上查询没有问题但是它可能存在性能问题。原因在于 COUNT 函数需要统计订单数量如果某个客户有大量订单数据库需要计算出一个总数即使客户的订单数量不多仍然需要进行统计。 以下是 MySQL 中的执行计划 EXPLAIN ANALYZE SELECT * FROM customer c WHERE 0 (SELECT COUNT(*)FROM orders oWHERE o.customer_id c.customer_id);- Filter: (0 (select #2)) (cost111563.21 rows1040858) (actual time8.305..7043.840 rows231117 loops1)- Table scan on c (cost111563.21 rows1040858) (actual time6.968..1104.438 rows1048577 loops1)- Select #2 (subquery in condition; dependent)- Aggregate: count(0) (cost1.30 rows2) (actual time0.005..0.005 rows1 loops1048577)- Index lookup on o using customer_id (customer_idc.customer_id) (cost1.15 rows2) (actual time0.004..0.005 rows2 loops1048577)其中Aggregate表示子查询中执行了聚合操作查询的执行时间大概是 7 秒。 实际上这个 COUNT 函数结果对于我们并不重要我们只需要知道客户是否存在订单。这种情况下最简单的方法就是使用 EXISTS 运算符 SELECT * FROM customer c WHERE NOT EXISTS (SELECT 1FROM orders oWHERE o.customer_id c.customer_id);如果客户存在任何订单子查询就会获得结果NOT EXISTS 运算符就会排除对应的客户从而避免统计全部订单数据。新的执行计划如下 EXPLAIN ANALYZE SELECT * FROM customer c WHERE NOT EXISTS (SELECT 1FROM orders oWHERE o.customer_id c.customer_id);- Nested loop antijoin (cost217780392498.61 rows2177801765412) (actual time2273.676..3746.089 rows231117 loops1)- Table scan on c (cost111871.61 rows1040858) (actual time2.191..804.896 rows1048577 loops1)- Single-row index lookup on subquery2 using auto_distinct_key (customer_idc.customer_id) (actual time0.000..0.000 rows1 loops1048577)- Materialize with deduplication (cost423621.04..423621.04 rows2092314) (actual time2797.545..2797.545 rows1021689 loops1)- Filter: (o.customer_id is not null) (cost214389.64 rows2092314) (actual time0.811..1372.007 rows2097157 loops1)- Index scan on o using customer_id (cost214389.64 rows2092314) (actual time0.809..1164.613 rows2097157 loops1)新的查询计划使用了 antijoin 连接和物化Materialize执行时间不到 4 秒。 无论用户订单数量多还是少NOT EXISTS 的性能都不会差于 COUNT 函数而且绝大部分情况下它的性能会更好。
http://www.hkea.cn/news/14377704/

相关文章:

  • 烟台网站开发清溪镇仿做网站
  • 网站建设多少钱怎么卖WordPress企业显示
  • 做ppt好的网站有哪些三合一网站程序
  • 《电子商务网站开发》实验报告建设专题网站
  • 建网站的价格wordpress编辑器下载
  • 广西网站建设推广大概需要多少钱建网
  • 手机网站优化南宁网站建设智能优化
  • 中国建筑装饰施工网广州百度推广优化排名
  • 娱乐网站开发在手机上制作网页软件
  • 什么是网站源码wordpress自定义分类无法显示
  • python网站开发的优势做推广有什么好网站
  • 网站被很多公司抄袭电商型网站开发多少钱
  • 新手学做网站的教学书上海搬家公司哪家好和便宜
  • 便宜建站方法站外推广方式有哪些
  • 网站数据抓取怎么做网站客户案例的
  • 明年做哪个网站致富微信怎么关闭小程序功能
  • 网站模板 寻模板动态ip做网站影响seo吗
  • 小男孩和女人做的网站包含导航栏至少包含三个布局
  • 宝宝投票网站怎么做网站怎么做网站收录
  • 专业手机网站建设多少钱婚庆网站开发要达到的目标
  • 不锈钢公司网站源码 网站建设 产品3级分类asp源码诸暨建设局网站
  • 常州模板网站建设价位吉林网站网站建设
  • 建设网站服务器是什么技术支持 骏域网站建设专家佛山
  • 衡水专业网站制作软件开发学校
  • 网站内容建设的原则是什么网站备案需要多久时间
  • 嘉兴网站制作厂家程序员入门教程
  • 做网站对比报告响水做网站的价格
  • 小程序公众号网站建设上饶福田集团
  • 成都网络推广建站网站优化主要怎么做
  • 做外贸英文网站wordpress样式乱了