会话重叠问题学习(四)——再优化

  ,roomid, DATETIME),开始时间,,DATETIME), endtime , (,,,,   李   <李>   ,@d 开始时间,@d:=d, v3.roomid v3.d  endtime , (,,,,   李   <李>   roomid才能,,,,,,   李   <李>   ,nums.id=1, v1s ,,,,,,   李   <李>   ,nums.id=2, v1e ,,,,,,   李   <李>   ,nums.id=3, v2s ,,,,,,   李   <李>   ,nums.id=4, v2e ,,,,,,   李   <李>   ,d ,, (,,,,   李   <李>   ,,,,v1.roomid v1.s  v1, v1.e  v1e, v2.s 是,v2.e  v2e ,,,   李   <李>   ,t1  v1 ,,,   李   <李>   t1 才能;v2 , ((v1.s , v2.s , v2.e , v1.e , v2.s , v2.e ),,, v1.roomid=v2.roomid),,,,,   李   <李>   ,v2.roomid  (roomid 才能,t1 , (s)=pTime),,,,   李   <李>   ,v2.s>=pTime  v2.s<(pTime + interval ,, (v2.roomid、v2.userid v2.s, v2.e) !=, (v1.roomid、v1.userid v1.s, v1.e),,,,,   李   <李>   ,nums.id<=4,,,,   李   <李>   d  roomid才能,,,,   李   <李>   ,@d:=), vars ,,,   李   <李>   ,开始时间!=,   李      
  该部分使用集合处理方式,不好理解性能还差。
  
  这块可以通过游标写临时表轻易解决。
  本质上最小范围就是
  每天每个房间每个记录的开始时间和结束时间都扣出来作为一行排序。
  
  <强>然后找到 <强>每个时间 <强>最近的下一个时间 <>强,作为最小时间范围。
  
  如果使用游标,遍历一遍即可。
  
     <李>      李   <李>      李   <李>   ,定义者=@“localhost”,“根”,“p”(),,   李   <李>   ,,   李   <李>   ,done , 0;,,,,,,   李   <李>   ,v_roomid ,,   李   <李>   ,v_start ,,   李   <李>   ,v_end ,,   李   <李>   ,cur_test ,, roomid,年代,e , t1 ,,,,,   李   <李>      李   <李>   ,,HANDLER ,, FOUND ,, done =, 1,,,,,,,   李   <李>      李   <李>   if 才能;exists  t1;,,   李   <李>   if 才能;exists  tmp_time_point;,,   李   <李>   ,,,的t1, (,,   李   <李>   (11),,,,,,,   李   <李>   (20),,,,,,,   李   <李>   ,,,,,,,,,,,,   李   <李>   “roomid”,才能(“roomid”、“s”,“e”,“标识”),,   李   <李>      李   <李>      李   <李>   ,,tmp_time_point (,,   李   <李>   ,,,   李   <李>   ,,,   李   <李>   ,(roomid计算),   李   <李>      李   <李>      李   <李>      李   <李>   ,,t1    李   <李>   ,,,,   李   <李>      李   <李>      李   <李>   (s) !=(e),, id> 1, (s + interval  id-1  (s + interval  id-1  (e),, e, date_format (s + interval  id-1 )), e ,,,   李   <李>   ,(,,,,   李   <李>   s.roomid,才能,s.userid,,轮上,,,,,,,   李   <李>   ,(e),,,,,   李   <李>   ,(roomid才能,userid,, roomend , e ,,,,,   李   <李>   ,u_room_log  a ,,,,,   李   <李>   EXISTS (才能,*,,,,,   李   <李>   ,u_room_log  b ,,,,,   李   <李>=,,a.roomid  b.roomid ,,,,,   李   <李>=,,a.userid  b.userid ,,,,,   李   <李>   ,a.roomend 祝辞=,b.roomstart ,,,,,   李   <李>   ,a.roomend  & lt; b.roomend),,,,,,   李   <李>      李   <李>   ,s2.e 祝辞s.s ,,,,,   李   <李>=,,s.roomid  s2.roomid ,,,,,   李   <李>=,,s.userid  s2.userid ,,,,,   李   <李>   ,e ,,,,   李   <李>   ,(roomid才能,userid,, roomstart , s ,,,,,   李   <李>   ,u_room_log  a ,,,,,   李   <李>   EXISTS (才能,*,,,,,   李   <李>   ,u_room_log  b ,,,,,   李   

会话重叠问题学习(四)——再优化