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

重庆网站建设狐灵新产品推广策划方案

重庆网站建设狐灵,新产品推广策划方案,传媒公司招聘信息,wordpress忘记了用户名背景:人脸闸机,每刷一次人脸,就会有一条记录插入到通行记录表。而闸机可能会多次识别同一个人的人脸,那么这时通行记录表就会插入多次同一个人的记录,同一个人的记录中,只不过通行时间不同而已 需求&#…

背景:人脸闸机,每刷一次人脸,就会有一条记录插入到通行记录表。而闸机可能会多次识别同一个人的人脸,那么这时通行记录表就会插入多次同一个人的记录,同一个人的记录中,只不过通行时间不同而已

需求:查询出最新的5个人的通行记录信息(通行记录表100w条数据),mysql语法编写

你会怎么写这条sql?

原sql

SELECTa.*
FROMykt_ryface_records a
INNER JOIN ( SELECT max( record_time ) AS record_time, person_id, max( data_id ) id FROM ykt_ryface_records GROUP BY person_id 
) AS c ON a.data_id = c.id
ORDER BY record_Time DESC 
LIMIT 0,5

ykt_ryface_records 通行记录表

        data_id 主键

        person_id 刷脸人的id

        record_time 通行时间

这条sql的意思是:子查询中根据刷脸人id分组,获取最大通行时间,最大的主键id 作为一个c表,然后再匹配通行记录表a,这么写会导致全表扫描,肯定慢的,执行了几十秒才有结果

本想着在c表中加一个 limit 500,应该也可以了,当如果4个人刷了500条数据呢,那么会导致最终查询出来的数据不准确。虽然现实中这个需求不可能出现。毕竟刷脸刷几次不行,他早走别的通道去了。

后来想着在结合java代码程序执行,就是执行查500条数据的sql,返回结果集,判断结果集是否有5条数据,如果没有再查500条,一直到满足5条数据为止。这样是可行的,但感觉不爽,我喜欢一条sql搞定一切

优化的sql,本来没写出来,去趟洗手间回来就写出来了,哈哈

SELECTa.* 
FROMykt_ryface_records aINNER JOIN ( SELECT a.person_id,a.person_name,@idStr,@count,@dataid idfrom ykt_ryface_records aINNER JOIN (select @idStr:=0,@count:=0,@dataid:=0) b on (IF(find_in_set(IFNULL(a.person_id,-999),@idStr)=0,concat(@idStr:=CONCAT(@idStr,',',IFNULL(a.person_id,-999)),@count:=(LENGTH(@idStr) - LENGTH(REPLACE(@idStr,',',''))),@dataid:=a.data_id),-1) = 0 )  order by a.record_Time DESC  LIMIT 5) AS c ON a.data_id = c.id 
ORDER BY record_Time DESC

精华都在c表中的inner join,以前我都是在select 列名这用临时变量,灵机一动在inner join 的on条件后也可以用。c表的sql大概意思是,降序查询每条记录,然后对每条记录的的刷脸人id,主键id,放到临时变量中。查询逻辑如:先查第一条记录,记录了相关id,这时候的条件是on 0=0 然后查第二条,发现和第一条记录的相关id一样,就返回-1,那么条件就是 on -1 = 0,因为是内连接,所以第二条记录就没有了。按照这样的逻辑一次类推,巧妙使用limit 5就找出5个人的最新数据了。然后再作为c表关联a表查询,就避免了全表扫描了。该sql执行时间在0.1秒以下

感想:

巧妙利用临时变量,解决很多复杂的sql查询,提高效率。

http://www.shuangfujiaoyu.com/news/26477.html

相关文章:

  • 东莞视频网站制作发稿软文公司
  • 做网站的重要性怎么建立自己的网页
  • 科技网站的一些案例展示分析影响网站排名的因素
  • 大理企业网站建设网站模板中心
  • 网站应用软件设计网盘资源搜索神器
  • 医学分类手机网站模版怎样优化网站关键词排名靠前
  • java开发企业网站开发文档6网络广告策划与制作
  • wordpress主题汉化插件下载seo应该如何做
  • 网站规划与建设评分标准深圳市住房和建设局官网
  • 贵州网站建设整合营销传播最基础的形式是
  • 建设网站的技术风险seo 优化一般包括哪些内容
  • 网站建设如何实现检索功能网络推广赚钱
  • 网页设计与制作教程第四版清华大学出版社重庆seo搜索引擎优化优与略
  • 百度优化seo做关键词优化
  • 网站模板产品推广方案要包含哪些内容
  • js做网站预览效果郑州网络推广哪个好
  • 三类人不适合学编程深圳关键词排名优化系统
  • 网站首页设计注意沈阳百度推广排名优化
  • 网站开发遇到的难点电商网站建设价格
  • 地产政策最新消息seo标题关键词优化
  • 教育部国家中职示范校建设网站山东济南seo整站优化公司
  • 运用阿里云怎么做网站百度站长收录提交入口
  • 网页制作哪家质量好江北seo页面优化公司
  • 做深度报道的网站网络营销的优势和劣势
  • 0基础1小时网站建设教程seo网站诊断顾问
  • 网站制作需求表外链代发公司
  • 专业商城网站建设宁波seo排名公司
  • 郑州网站外包公司简介营销活动策划
  • 直播平台开发多少钱鞍山seo优化
  • 网站开发要学什么语言哪有恶意点击软件买的