Session重叠问题学习(六)--极致优化
接前文Session重叠问题学习(二) 这是问题和需求的描述,执行时间90秒http://blog.itpub.net/29254281/viewspace-2150229/Session重叠问题学习(三)--优化 一次优化后,执行...
Session重叠问题学习(五)--最优化
周五晚上10点了.这一周连续优化Session合并和拆分问题.每天都比前一天提升性能一倍以上.终于在今天,用独创的小花狸Session合并算法达到了最优级别.令人振奋的1.5秒到2秒级别.时间已经很晚了,思路也有些不清晰了.先把代码贴出来.下周再仔细解释一下这个奇妙算法。...
Session重叠问题学习(四)--再优化
接前文:需求描述和第一版解决方案(执行时间90秒)http://blog.itpub.net/29254281/viewspace-2150229/优化和修改bug的版本(执行时间25秒)http://blog.itpub.net/29254281/viewspace-2150259/我觉得在集合思维处理方式中,前文已经达到最优了.如果放弃完全的集合处理思维,实际上还可以更加的优化.前文的几个问题....
Session重叠问题学习(三)--优化
接前文http://blog.itpub.net/29254281/viewspace-2150229/前文中的算法想了一天半,终于在昨天晚上得出了正确的结果.在我的环境中,耗时90s ,还有进一步优化的空间.首选是生成 t1 和 t2的方式.之前使用create table 方式 导致类型不对,因为是临时作用的表,所以可以预先创建表结构CREATE TABLE `t1` ( `roo...
Session重叠问题学习(二)
u_room_log.zip附件是实验的初始化表.另外需要先创建数字辅助表drop table t1; create table t1 select distinct roomid, userid, if(date(s)!=date(e) and id>1,date(s+int...
冒泡排序
四则运算表达式求值
四则运算表达式求值两个要点1.中缀表达式转后缀表达式2.后缀表达式求值中缀表达式转后缀表达式从左到右遍历中缀表达式的每个数字和符号.若是数字就输出,成为后缀表达式的一部分.若是符号则判断其与栈顶符号的优先级,是右括号或者优先级低于等于栈顶符号,则栈顶元素依次出栈并输出,再将当前的符号进栈。一直到最终输...
两列任意匹配一列
水友居士的一个需求.听他广东的普通话真是费劲.不过还是大概听明白了。实验准备Oraclecreate table t1( userid int primary key, fathername varchar2(32) , mothername varchar2(32) , CONSTELLATION varchar2(32)...
每隔N行生成一个汇总行(总结)
接前文http://blog.itpub.net/29254281/viewspace-2149120/http://blog.itpub.net/29254281/viewspace-2149309/处理这种每隔N行生成一个汇总行的需求,一共有三种方式drop table t;create table t (c int);insert into t values (15),(7),(9),(10),(7),(8),(20),(16),(9),(...
留存率计算
应水友要求帮忙写的SQL留存率: 某一个时段内,使用过该产品的用户,在未来时间段还使用的比率。原来搞过一个hive的http://blog.itpub.net/29254281/viewspace-2097338/以我们的登录表为例space_user_task_statistics_log 表 如果loginflag = 1 说明用户登录过产品.其中createDate 表示登录日期。...
每隔15行生成一个汇总行(王工优化版)
http://blog.itpub.net/29254281/viewspace-2149120/接前文前文有一块写多余了纠正如下王工优化的版本如下,确实是效率又高,可读性又好,整体还更精炼.
每隔15行生成一个汇总行
用户抽奖模块award_gift_record 是用户抽奖记录表.其中actiontime 是抽奖时间.AwardGiftID表示中奖的礼物ID. -1表示没有中奖awardactId 表示活动ID需求:查询每分钟抽奖人数和中奖人数 SELECT ...
计算本年用户最大未登录时间段
计算本年用户最大未登录时间段space_user_task_statistics_log 如果用户登录过,则将信息记入该表主要信息有用户ID和登录时间space_user 记录用户基本信息. 主要包括用户ID和注册时间信息.需求:查所有用户在2017年最大的未登录时间段如果用户在2017年才注册,那么有效时间从注册时间开始算。其实这是...
查询前50%的数据
实验环境:create table t (c int);insert into t values (15),(7),(9),(10),(7),(8),(20),(16),(9),(19),(14),(10),(11),(10),(10),(12),(7),(10),(7),(9);commit; c 等于10,7,9的数量有 11个,超过了半数。超过半数的 item信息。通用方式,不依赖具体数...
记一次内存占用问题的调查过程
https://www.mawenbao.com/research/linux-ate-my-memory.html
禁用Crontab发送邮件和使用inode删除文件
某一台数据库服务器,有大量的Crontab调度.每次运行完成之后,都会发送邮件.久而久之,就怕大量邮件占用inode,导致inode耗尽。查看邮件目录/var/spool/postfix/maildrop使用 df -i 查看 inode的使用率.stat 可以查看文件的inode信息虽然使用率不到1% ,但是crontab 总是发邮件汇报结果,总是一件无聊的事情....
Excel实现动态行转列(数据透视表)
固定行转列比较容易实现.但是动态行转列的需求,用SQL都难以实现,要不然就是超级复杂。不过很多第三方工具都已经提供了很好的支持,不一定非得用SQL实现.比如帆软报表和Excel。最近接到一个比较复杂的查询,并且要求动态行转列.查询的SQL如下...
MySQL查询数据库中没有主键的表
select table_schema,table_name from information_schema.tables where (table_schema,table_name) not in( select distinct table_schema,table_name from information_schema.columns where COLUMN_KEY='PRI' )and t...
用数字辅助表补录数据一则
结构:create table user_baseinfo( userid bigint not null primary key , createtime timestamp);create table user_daily_log( userid bigint, &...
分析索引是否有效
索引的选择性低,效果就多少有些折扣索引是否有效,是否应该创建,需要具体情况具体分析.大表的低CARDINALITY值索引,需要引起注意.下面是 低选择性索引的查询select t2.*,t1.table_rows,round(t2.CARDINALITY/t1.table_rows,2) seletivity inner select table_schema,table_name,i...