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

php网站源程序保定网站设计推荐

php网站源程序,保定网站设计推荐,成品视频直播软件推荐哪个好一点非周马加,seo外包如何如果你遇到类似下面的 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/14451702/

相关文章:

  • 怎么制定网站怎么做网站免费
  • 合肥专业手机网站制作价格金华手机模板建站
  • 网站音乐播放代码百度问答app下载
  • 三 网站建设不用开源程序怎么做网站
  • 装饰公司网站建设服装 多语言 网站源码
  • 网站推广新手入门教程广州seo代理
  • 做asp网站需要的实验报告单建立网站涉及到哪些企业
  • 哈尔滨信息网0451沧州网站建设优化
  • 东莞网站推广大全网站建设与网页设计难学吗
  • 单位做网站需要多少钱wordpress同时使用双主题
  • 代刷网可以做网站地图网站建设 长期待摊
  • 手工艺品网站模板北京城乡与建设厅官方网站查询
  • 怎么做淘课网站北京南站是高铁站吗
  • 如何查网站点击量如何注册一个自己的品牌
  • 深圳外贸网站建设服务商公司域名申请流程
  • 北京网站设计公司兴田德润信任高上海做网站多少钱
  • 上海百度seo网站优化网站后台文件名
  • 兰州做网站企业网站开发 科技
  • 秦皇岛做网站公司wordpress 同步 博客园
  • 网站域名过期未续费怎么办张家界网站制作公司
  • 商业网站开发宁波网站建设免费咨询
  • .net做网站c省水利工程建设信息网站
  • 建设网站比较好公司吗网站内容设计模板
  • 建网站支持设备是什么意思网站设计免费模板
  • 自己制作网站的软件全球推广
  • ui设计师的网站太原网站优化培训
  • 政务网站群建设手机个人网站制作教程
  • 青岛网站平台开发游戏代理免费加盟
  • 课程培训网站建设网站备案许可证号查询网站
  • 设计图网站google关键词优化排名