优化前:

SELECT
id,
loan_id,
NAME,
company
FROM
tablename
WHERE
time BETWEEN 1522512000
AND 1525103999
AND loan_time BETWEEN 1522512000
AND 1525103999
AND STATUS = 1
AND is_again_yd = 0
AND company <> 1
order by rand()
LIMIT 30
优化方案一:
采用JOIN,查询max(id) * rand()来随机获取数据。
SELECT
t1.id,
t1.loan_id,
t1. NAME,
t1.company
FROM
`tablename` AS t1
JOIN (
SELECT
ROUND(
RAND() * (
SELECT
MAX(id)
FROM
`tablename`
)
) AS id
) AS t2
WHERE
t1.id >= t2.id
AND time BETWEEN 1522512000
AND 1525103999
AND loan_time BETWEEN 1522512000
AND 1525103999
AND STATUS = 1
AND is_again_yd = 0
AND company <> 1
ORDER BY t1.id ASC
LIMIT 30;

优化方案二:

 SELECT
t1.id,
t1.loan_id,
t1.NAME
FROM
tablename t1
WHERE
t1.id >= (
SELECT
floor(
RAND() * (
SELECT
MAX(id)
FROM
`tablename`
)
)
)
AND t1.time BETWEEN 1522512000 AND 1525103999
AND t1.STATUS IN (1, 2, 4)
AND t1.type IN (1, 2)
AND t1.belong_company = 0
AND t1.is_del = 0
AND NOT EXISTS (
SELECT
loan_id
FROM
tablename2 t2
WHERE
t2.loan_id = t1.loan_id
AND t2.company = 1
)
ORDER BY id
limit 20

说明:这种方案替代mysql rand(),性能太幅度提升,随机性没有rand()强,如果随机性强的请选择替代方案。

 

最新文章

  1. [No0000A8]Word中设置图片下的题注及插入多级列表编号
  2. 51nod1185(wythoff+高精度)
  3. Power of Three
  4. PHP访问带密码的Redis
  5. LA 5135 井下矿工
  6. const,static,volatile
  7. ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var mysql 启动不了
  8. mysql+mybatis 插入可递增字段库表操作
  9. Codeforces Round #340 (Div. 2) B. Chocolate 水题
  10. java中的hashcode和euqals的区别和联系
  11. 字符串匹配算法——KMP算法学习
  12. oracle 临时表学习
  13. 在ajax当中使用url重写来避免url的暴露
  14. Asp.net--Ajax前后台数据交互
  15. PAT - 基础 - 龟兔赛跑
  16. android复习-AnsyTask
  17. SecureCRT安装
  18. [IOT] 自制蓝牙工牌办公室定位系统 (一)—— 阿里物联网平台概览及打通端到云(硬核&#183;干货)
  19. 自学Aruba5.3.1-Aruba安全认证-有PEFNG 许可证环境的认证配置OPEN、PSK
  20. java发送get,post请求

热门文章

  1. R语言 plot()函数 基础用法
  2. 二十六、SAP中通过FORMAT COLOR来设置文字背景颜色
  3. 留学英文论文写作Abstract三种类型
  4. opencv python运动人体检测
  5. Maven的安装和创建项目的过程
  6. junit基础学习之-测试controller层(2)
  7. jQuery中:first,:first-child,first()的使用区别
  8. slave_net_timeout, MASTER_HEARTBEAT_PERIOD, MASTER_CONNECT_RETRY,以及 MASTER_RETRY_COUNT设置和查看
  9. oracle11g数据库的安装
  10. UML图的种类