业务SQL那些事--慎用LIMIT】的更多相关文章

业务SQL那些事--慎用LIMIT 在业务中使用LIMIT限制SQL返回行数是很常见的事情,但如果不知道其中可能的坑或者说真正执行逻辑,就可能会使SQL执行非常慢,严重影响性能. LIMIT OFFSET, ROW_COUNT实现分页 业务反映一条SQL执行非常慢.简单分析,例如下面的schema与SQL(演示databae:PostgreSQL): create table t(c1 varchar(20) primary key, c2 int); select * from t where…
接口测试报告中发现时不时有一个接口报错,但再跑一次又没有这个报错了.报错信息是sql异常,sql中有两个limit.查看后台代码和XXmapper.xml,发现确实只有一个limit.一开始开发以为是数据的问题或者是jmeter的问题导致...赶着提测就先没理了. 我的第一想法是pagehelper的问题,后面通过查找网上资料,发现pagehelper使用startPage()把分页标识存放在threadlocal,若当前线程在未调用mybatis查询前发生异常了(pagehelper会拦截my…
SQL SERVER/MS Access的Select Top的用法: Select TOP number|percent table_columname FROM tablename MySQL/Oracle的SELECT TOP Select columname FROM tablename LIMIT number Select columname FROM tablename WHERE ROWNUM < number.…
1. 如何对评论进行分页展示 一般情况下都是这样写 SELECT customer_id,title,content FROM product_comment WHERE audit_status = 1 AND product_id =199726 LIMIT 0,15;; 我们来看看它的执行计划 可以看到possible_keys.key.key_len的值均为NULL,说明这条SQL在product_comment 表上是没有可用的索引的,取出9593行过滤度为1% 1. 建立索引,优化评…
查看表相关命令 - 查看表结构   desc 表名- 查看生成表的SQL   show create table 表名- 查看索引   show index from  表名 使用索引和不使用索引 由于索引是专门用于加速搜索而生,所以加上索引之后,查询效率会快到飞起来. # 有索引 mysql> select * from tb1 where name = 'zhangqiye'; +-----+-------------+---------------------+--------------…
最近遇到一个新项目,需要与硬件结合,进行读取信息并保存在数据库中.业务要求也在昨天发布一个问题,当然感谢许多园内的朋友出谋划策,截图有真相! 关于这个问题,我做了如下假设.目前处于测试状态,代码比较简单,具体功能已经实现. 1.首先一张比较丑的图片表名业务逻辑关系. 用户customer 他可以去A  B  C  D 四个办事处去登记信息.这样假设每个办事处有一个登记人员,假设customer 选择了 A ,(可能是离A比较近,他不想跑了) 登记人员说出示的卡.登记人员就把的卡往Arecorde…
场景: 使用windows服务定时更新合同数据:执行存储过程(pas_RefreshContractStatus),但存储过程里面有一个需要更新4W条人才表循环处理业务 问题: 循环更新4W条人才表状态字段 优化前: UPDATE pt SET StatusText = CASE FROM pas_ContractQuit c ),pt.ID)+',%') THEN '已退租' ELSE '未申请' END FROM pas_Talent pt 耗时:1分07秒 优化后: --定义人才行转列st…
eg:select orderid,status,createtime from orders where appid = :appId and userid = :userId order by createtime desc limit :page,:pageSize; 小细节,注意一下…
1.引架包.注意版本问题 <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.1.6</version> </dependency> 2.在MyBatis 的总体文件中配置插件 放到<environments default="developmen…
1,个人开户报表统计 优化前语句,执行时间80多秒 SELECT a.DA AS f_da, a.account_name AS f_account_name, a.sex AS f_sex, a.nick_name AS f_nickname, a.create_time AS f_open_account_time, DATE_FORMAT(a.create_time, '%Y%m%d') AS f_open_account_date, HOUR (a.create_time) AS f_o…