1. 尽可能把数据的存储和计算放入Memory而不是Disk,且减少IO操作,比如运用Redis等缓存技术

2. 对数据表进行精心设计,特别是大数据表,对常用数据字段进行适当的冗余,尽可能避免分表导致的Join查询,即使非Join不可也是大表和小表Join,而不是一堆大表之间Join

3. 对常用查询字段,特别是作为Join on条件的字段,必须建立索引

4. 对大数据集结果做条件限制,仅返回其小范围子集,例如运用Limit或Where进行条件过滤

N张表join,然后select如何优化?

1.在join表中的on列上加上索引

create index i_cr_data_dic on cr_data_dic(data_code);

2.结果用limit进行限制,比如limit 1,10

对select count(*) from bigTable,基于上面的索引优化后,这个还是特别耗时,特别慢,怎么办呢?

只能从走对结果集进行条件限制的思路,比如加上where条件,创建时间为最近1月,其实把整个历史上所有数据都统计一遍,通常是不需要的

select count(*) from
"pre_app_main" "pam" left join "pre_app_customer" "pac" on("pam"."id" = "pac"."app_id")
left join "pre_app_staff_only" "paso" on("pam"."id" = "paso"."app_id")
left join "pre_app_loan" "pal" on("pam"."id" = "pal"."app_id")
left join "cr_data_dic" "cdd1" on("pam"."pre_app_status" = "cdd1"."data_code")
left join "cr_data_dic" "cdd2" on("pam"."app_status" = "cdd2"."data_code")
left join "app_city" "act" on(concat('PREQAPP_WECHAT_',"pam"."apply_city_code") = "act"."city_code")
where pam.created_time > DATE_SUB(NOW(), INTERVAL 1 MONTH)

最新文章

  1. error: insufficient permissions for device: verify udev rules
  2. LeetCode -- Triangle 路径求最小和( 动态规划问题)
  3. ServletInputStream的重复读取(多次读取)(转)
  4. I/O复用:异步聊天
  5. BZOJ 2228 礼物(gift)(最大子长方体)
  6. 适配iOS10以及Xcode8-b
  7. C语言的左位移能不能超过8位?
  8. 用法简单的图片和视频播放的框架Demo
  9. SQL Server 系统时间
  10. Mysql数据库中的EXISTS和NOT EXISTS
  11. js去除首尾空格
  12. Manjaro安装配置笔记
  13. POI richText和html的转换案例
  14. Vue自动化工具(Vue-CLI)的安装
  15. Spring JDBC StoredProcedure类示例
  16. 全局 SqlConnection
  17. 【Android】3.9 覆盖物功能
  18. bson.errors.InvalidStringData: strings in documents must be valid UTF-8
  19. CC2530zigbee技术-简介协议栈
  20. mysql概念特性和优化

热门文章

  1. 【web 安全测试Tools】BurpSuite 1.7.32及注册机【无后门版】
  2. java面试考点-面试准备
  3. APK在Android Studio下如何签名
  4. 搭建一个超好用的 cmdb 系统
  5. 在使用pandas 0.23.4对日期进行分组排序时报错
  6. Jmeter CSV操作
  7. PO,VO,DAO,BO,POJO之间的区别与解释
  8. centos 7.2安装git2.x版本
  9. 某 游戏公司 php 面试题
  10. 病毒 | wordpress网站内容被篡改、自动跳转、变全英文的解决办法