场景:

表 stockpooldata_flash

CREATE TABLE `stockpooldata_flash` (

`id` bigint(15) NOT NULL AUTO_INCREMENT,

`formula_id` int(8) DEFAULT NULL,

`period_type` tinyint(3) DEFAULT NULL,

`gpMarket` int(4) DEFAULT NULL,

`gpcode` varchar(20) DEFAULT NULL,

`ymd` int(11) DEFAULT NULL,

`hms` int(11) DEFAULT NULL,

`f1` decimal(18,4) DEFAULT NULL,

`f2` decimal(18,4) DEFAULT NULL,

`f3` decimal(18,4) DEFAULT NULL,

`f4` decimal(18,4) DEFAULT NULL,

`f5` decimal(18,4) DEFAULT NULL,

`f6` decimal(18,4) DEFAULT NULL,

`f7` decimal(18,4) DEFAULT NULL,

`f8` decimal(18,4) DEFAULT NULL,

`f9` decimal(18,4) DEFAULT NULL,

`f10` decimal(18,4) DEFAULT NULL,

`f11` decimal(18,4) DEFAULT NULL,

`f12` decimal(18,4) DEFAULT NULL,

`f13` decimal(18,4) DEFAULT NULL,

`f14` decimal(18,4) DEFAULT NULL,

`f15` decimal(18,4) DEFAULT NULL,

`f16` decimal(18,4) DEFAULT NULL,

`buyPrice` decimal(18,4) DEFAULT NULL,

`rise_max` decimal(18,4) DEFAULT NULL,

`rise_signalDay` decimal(18,4) DEFAULT NULL,

`high_max` decimal(18,4) DEFAULT NULL,

`yClose_signalDay` decimal(18,4) DEFAULT NULL,

`iTime` bigint(15) DEFAULT NULL,

`MaxRise` decimal(18,4) DEFAULT NULL,

`Rise_NextDay` decimal(18,4) DEFAULT NULL,

`MaxRise_NextDay` decimal(18,4) DEFAULT NULL,

`Rise_FiveDays` decimal(18,4) DEFAULT NULL,

`MaxRise_FiveDays` decimal(18,4) DEFAULT NULL,

`Rise_TenDays` decimal(18,4) DEFAULT NULL,

`MaxRise_TenDays` decimal(18,4) DEFAULT NULL,

`dayNum` int(8) DEFAULT '-1',

`tag` varchar(1024) DEFAULT NULL,

`update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

PRIMARY KEY (`id`),

UNIQUE KEY `index_formulaId_gpcode_ymd` (`formula_id`,`period_type`,`ymd`,`gpMarket`,`gpcode`,`f10`) USING BTREE,

KEY `index_formulaId_period_ymd` (`formula_id`,`period_type`,`ymd`) USING BTREE,

KEY `index_formulaId_ymd` (`formula_id`,`ymd`) USING BTREE,

KEY `index_uptime` (`update_time`) USING BTREE

) ENGINE=InnoDB AUTO_INCREMENT=88197314 DEFAULT CHARSET=utf8;

建立了一个视图 v_stockpooldata_flash

CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v_stockpooldata_flash` AS select

case formula_id

when '4' then 'DXJJ'

else `t`.`formula_id`

end

AS `gscode`,concat(convert(if((`t`.`gpMarket` = 0),'SZ','SH') using utf8),`t`.`gpcode`) AS `gpcode`,`t`.`ymd` AS `ymd`,

( floor(`t`.`hms` / 10000) * 60 + floor(`t`.`hms` % 10000 / 100) ) AS `hms`,

`t`.`f1` AS `f1`, `t`.`f2` AS `f2`, `t`.`f3` AS `f3`, `t`.`f4` AS `f4`, `t`.`f5` AS `f5`, `t`.`f6` AS `f6`,

case

when formula_id = 4 then ( floor(`t`.`f7` / 10000) * 60 + floor(`t`.`f7` % 10000 / 100) )

else `t`.`f7` end

AS `f7`,

`t`.`f8` AS `f8`, `t`.`f9` AS `f9`, `t`.`f10` AS `f10`, `t`.`f11` AS `f11`, `t`.`f12` AS `f12`, `t`.`f13` AS `f13`, `t`.`f14` AS `f14`, `t`.`f15` AS `f15`, `t`.`f16` AS `f16`, `t`.`rise_max` AS `rise_max`, `t`.`rise_signalDay` AS `rise_signalDay`, `t`.`high_max` AS `high_max`, `t`.`yClose_signalDay` AS `yClose_signalDay`, `t`.`update_time` AS `update_time`

from `stockpooldata_flash` `t`

“SELECT * FROM v_stockpooldata_flash where gscode = 'DXJJ' and ymd = 20190123” 语句查询速度太慢:耗时 256.445 s

解决方法:利用源表中的索引 KEY `index_formulaId_period_ymd`

在创建视图时,select  `t`.`formula_id` AS `formula_id`

CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v_stockpooldata_flash` AS select `t`.`formula_id` AS `formula_id`,

case formula_id

when '4' then 'DXJJ'

else `t`.`formula_id`

end

AS `gscode`,concat(convert(if((`t`.`gpMarket` = 0),'SZ','SH') using utf8),`t`.`gpcode`) AS `gpcode`,`t`.`ymd` AS `ymd`,

( floor(`t`.`hms` / 10000) * 60 + floor(`t`.`hms` % 10000 / 100) ) AS `hms`,

`t`.`f1` AS `f1`, `t`.`f2` AS `f2`, `t`.`f3` AS `f3`, `t`.`f4` AS `f4`, `t`.`f5` AS `f5`, `t`.`f6` AS `f6`,

case

when formula_id = 4 then ( floor(`t`.`f7` / 10000) * 60 + floor(`t`.`f7` % 10000 / 100) )

else `t`.`f7` end

AS `f7`,

`t`.`f8` AS `f8`, `t`.`f9` AS `f9`, `t`.`f10` AS `f10`, `t`.`f11` AS `f11`, `t`.`f12` AS `f12`, `t`.`f13` AS `f13`, `t`.`f14` AS `f14`, `t`.`f15` AS `f15`, `t`.`f16` AS `f16`, `t`.`rise_max` AS `rise_max`, `t`.`rise_signalDay` AS `rise_signalDay`, `t`.`high_max` AS `high_max`, `t`.`yClose_signalDay` AS `yClose_signalDay`, `t`.`update_time` AS `update_time`

from `stockpooldata_flash` `t`

查询语句改为“SELECT * FROM v_stockpooldata_flash where formula_id = 4 and ymd = 20190123” 查询效果如下:耗时 0.962 s

来源:oschina

链接:https://my.oschina.net/u/4328407/blog/3660932

mysql 视图 查询速度慢_mysql 视图查询速度慢相关推荐

  1. mysql视图怎么加字段_mysql视图添加字段

    mysql视图里面怎么新增一个全新字段,在原来表内没首先,要清楚视图的概念: 视图是一个虚拟表,其内容由查询定义.同真实的表一样,视图包含一系列带有名称的列和行数据.但是,视图并不在数据库中以存储的数 ...

  2. mysql获取查询策略语句_MySQL数据库查询性能优化策略

    优化查询 使用Explain语句分析查询语句 Explain 用来分析 SELECT 查询语句,开发人员可以通过分析 Explain 结果来优化查询语句. 通过对查询语句的分析,可以了解查询语句的执行 ...

  3. mysql视图有空间吗_MySQL视图

    视图是从一个表或多个表导出来的表,是一种虚拟表,不占内存空间,视图中保存的仅仅是一条select语句,其数据源来自数据库表或其他视图.当基本表发生变化时,视图的数据也会随之变化.视图是存储在数据库中的 ...

  4. mysql的慢查询日志功能_MySQL 慢查询日志

    MySQL 慢查询日志 简介 MySQL 慢查询日志是排查问题 SQL 语句,以及检查当前 MySQL 性能的一个重要功能. 查看是否开启慢查询功能: mysql> show variables ...

  5. mysql 重构同步老数据_MySQL 重构查询的方式

    主题:如何重构查询冰战士何时需要使用这种技巧 (1)一种复杂查询还是多个简单查询 设计查询的时候需要考虑的一个重要问题是是否需要将一个复杂的查询分成多个简单的查询.在平时我们总是强调需要数据库完成尽可 ...

  6. mysql慢查询的使用_mysql慢查询使用详解

    1 慢查询定义指mysql记录所有执行超过long_query_time参数设定的时间阈值的SQL语句.慢查询日志就是记录这些sql的日志. 2 开启慢查询日志 找到mysql配置文件my.cnf.在 ...

  7. 怎样知道mysql的驱动是什么_MySQL连接查询到底什么是驱动表?看了这里你应该就明白了...

    作者:阿伟~ 链接:https://www.cnblogs.com/sy270321/p/12760211.html 准备我们需要的表结构和数据 两张表 studnet(学生)表和score(成绩)表 ...

  8. mysql 联合查询后排序_MySQL的查询(联合查询,查询排序,正则表达式)

    MySQL的查询(联合查询,查询排序,正则表达式) MySQL的查询(联合查询,查询排序,正则表达式) MySQL的查询 联合查询实例 -- 联合查询 SELECT * FROM user union ...

  9. mysql数据库缓存为多久_mysql数据库查询缓存总结

    概述 查询缓存(Query Cache,简称QC),存储SELECT语句及其产生的数据结果.闲来无事,做一下这块的总结,也做个备忘! 工作原理 查询缓存工作原理如下: 缓存SELECT操作的结果集和S ...

  10. mysql子查询的语法_MySQL子查询Subquery语法介绍

    MySQL子查询Subquery语法介绍 发布时间:2020-05-19 15:48:10 来源:51CTO 阅读:187 作者:三月 下面讲讲关于MySQL子查询Subquery,文字的奥妙在于贴近 ...

最新文章

  1. sixth week:third work
  2. Java程序员从阿里面试回来,这些面试题你们会吗?
  3. gitlab远程提交
  4. 腾讯云搭建WordPress个人博客小白版流程分享
  5. Jupyter Noteboot 添加kernel 环境
  6. percona-toolkit 之 【pt-table-checksum】、【pt-table-sync】说明
  7. 文本分析软件_十大针对机器学习的文本注释工具与服务,你选哪个?
  8. 年仅48岁,985高校教授离世
  9. amd 虚拟化怎么开_性能碾压7nm安培 AMD CDNA计算卡16日发布:Radeon不再-AMD,CDNA,7nm,MI100,加速卡 ——快科技(驱动之家旗下媒体)-...
  10. 翻译 - 【Dojo Tutorials】Getting Started with dojox/app
  11. PhotoSwipe源码解读系列(二)
  12. 实验9Linux共享内存通信,操作系统原理与Linux实践教程(卓越工程师培养计划系列教材)...
  13. 微信联合苹果探索iOS系统的暗黑模式;iPhone SE 2于3月31日发布;Kotlin 1.3.70发布 | 极客头条...
  14. 【Spring】bean的作用域
  15. PowerShell批量配置VM端点
  16. 解决在DHCP环境下私自指定IP和私自搭建DHCP服务器的方法
  17. 总结:form中使用onSubmit=return false防止表单自动提交,以及s...
  18. 公众号怎么提升阅读量
  19. HTTP 错误 404.3 – Not Found 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。
  20. mountain乐谱-蒲公英的约定

热门文章

  1. android 8.0 调系统拍照_Android通知栏微技巧,8.0系统中通知栏的适配
  2. lua运行外部程序_一起聊聊redis(5)——c#的lua脚本应用实例之高并发抢口罩
  3. 深度学习之基于卷积神经网络(VGG16CNN)实现海贼王人物识别
  4. Gargari and Permutations CodeForces - 463D(建图+记忆化搜索)
  5. Beautiful Sequence CodeForces - 1264B(暴力)
  6. python字典排序及字典集合去重高阶教程
  7. Python机器学习---KNN模型评价、追求
  8. matlab八节点六面体程序,平面8节点等参元完整程序
  9. mysql5.0源码安装_linux小白 mysql5.0源码安装配置
  10. PAT_B_1053_Java(20分)