mysql 视图 查询速度慢_mysql 视图查询速度慢

场景:

表 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

6c1555302777729326ca3efa0910d9ec.png

解决方法:利用源表中的索引 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

6c1555302777729326ca3efa0910d9ec.png

来源:oschina

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/245411.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

局部页面切换url为什么不变_python爬虫 - 翻页url不变网页的爬虫探究

python爬虫-翻页url不变网页的爬虫探究url随着翻页改变的爬虫已经有非常多教程啦,这里主要记录一下我对翻页url不变网页的探究过程。学术菜鸡第一次写CSDN,请大家多多包容~ 如果对你有一点点帮助,请帮我点个赞吧!翻页u…

vtune mysql user_intel vtune 介绍、安装和使用

intel vtune 介绍intel vtune 安装包下载地址intel VTune™ Amplifier 2019 安装手册 - Linux* OS:intel VTune™ Amplifier 用户使用手册安装步骤:Intel VTune Amplifier在Linux环境下的安装: $tar zxvf vtune_amplifie_2018_update3.tar.gz $cd vtune…

python波峰波谷算法_波动均分算法

波动均分算法by leeenx on 2018-01-11「波动」和「均分」大部分读者朋友是知道的,但看到「波动均分」应该是一头雾水的。其实,这个名词是笔者拼凑出来的。什么是「波动均分」?把指定的数值 A,分成 N 份,此时每份的数值…

formatter java_Java编程中的Java Formatter是什么?

Java编程中的Java Formatter是什么?作者:admin分类:PHP, JAVA, .NET文章时间:2017-03-30 21:13:02点击量:1428Java Formatter是一个实用程序类,可以在Java中使用格式化流输出时使生存变得简单。 它的构建类…

python计算矩阵方程_python/sympy求解矩阵方程的方法

sympy版本:1.2假设求解矩阵方程AXA2X其中求解之前对矩阵方程化简为(A−2E)XA令B(A−2E)使用qtconsole输入下面程序进行求解In [26]: from sympy import *In [27]: from sympy.abc import *In [28]: AMatrix([[4,2,3],[1,1,0],[-1,2,3]])In [29]: AOut[29]:Matrix([[ 4, 2, 3],[…

java web 注册登录_javaweb实现登录注册功能实例

前期呢,我们学习了javaweb项目用JDBC连接数据库,还有数据库的建表功能,今天,我们来看一下javaweb实现登录注册功能实例,javaweb项目使用的工具是eclipse,最后把项目部署在了Tomcat中,连接数据库…

source insight 函数不能跳到definition_小技能: Windows10突然不能复制粘贴谁搞鬼

最近连续遇到几次,电脑突然不能复制粘贴了,非常影响工作。(如果不想听我扯,就直接跳到最后看结果啊,我真贴心。)你们都懂得,程序员嘛,用的最多的就是ctrlc,ctrlv。这不能用了,不是让…

flip java_java的flip(). 这里用flip()有什么作用?这是反转缓冲区的方法,好像用不上。...

publicclassNServer{//用于检测所有Channel状态的SelectorprivateSelectorselectornull;staticfinalintPORT30000;privateCharsetcharsetCharset.forName("UTF-8");publicvoidinit(...public class NServer{// 用于检测所有Channel状态的Selectorprivate Selector se…

hsv 明度的范围_通过HSV转换的方式实现图片数据增强

在我的上一篇文章中,我记录了自己将MOT17-Det数据集转换成VOC格式:HUST小菜鸡:将MOT17-Det数据集转成VOC格式​zhuanlan.zhihu.com但是在后期的测试过程中,发现了一些小问题:首先是train.txt里面写入的图片数和标注的数…

java数组如何相加_java数组排序,并将数组内的数据求和

java数据编列并求和,江湖我狼哥,人狠话不多,直接上代码!import java.util.Arrays;public class Intarry {public static void main (String[] args){//定义一个数组int intarry[] {20,30,40,10};int num0;Arrays.sort(intarry);/…

python在工厂中的应用_什么是工厂函数?Python 中工厂函数怎么理解?

其实谈工厂函数前必须首先把嵌套作用域和闭包讲清楚python有一个很有意思的地方,就是def函数可以嵌套在另一个def函数之中。调用外层函数时,运行到的内层def语句仅仅是完成对内层函数的定义,而不会去调用内层函数,除非在嵌套函数之…

java protected关键字_Java 权限protected关键字纠正

以前一直认为自己理解了Java四种权限访问,昨天突然编程时发现protected居然在子类中不能调用,然后越看越迷糊??????public: Java语言中访问限制最宽的修饰符,…

老版本fortran语言 内存无效_编程语言的分类

编程语言世代第一代和第二代语言又称低级语言(Low-level language),其余被视为高级语言(High-level language)第一代编程语言即机器语言,由0和1构成,通过面板、打孔带或者打孔卡输入。第二代编程…

金融统计分析python论文_比较好写的本科金融专业论文题目 本科金融专业论文题目怎么取...

为论文写作提供【100道】比较好写的本科金融专业论文题目,海量本科金融专业相关论文题目,包括专科与本科以及硕士论文题目,解决您的本科金融专业论文题目怎么取的相关难题!一、比较好写的本科金融专业论文题目:1、微观金融视角下财务管理专业应用型本科人才培养目标…

互联网java常用框架_来,带你鸟瞰 Java 中4款常用的并发框架!

1. 为什么要写这篇文章几年前 NoSQL 开始流行的时候,像其他团队一样,我们的团队也热衷于令人兴奋的新东西,并且计划替换一个应用程序的数据库。 但是,当深入实现细节时,我们想起了一位智者曾经说过的话:“细…

2020亚太杯数学建模_比赛 | 2020年APMCM亚太地区大学生数学建模竞赛

2020年11月26日到30日,在我院老师指导下,由统计分析竞赛社组织的41支队伍,共123人,参加了亚太地区大学生数学建模竞赛组委会主办的大学生学科类竞赛。此次竞赛题目分为A题和B题,参赛者需从A,B两题中任选其一…

java声明复数类_JAVA声明复数类

声明复数类,成员变量包括实部和虚部,成员方法包括实现由字符串构造复数、复数加法、减法,字符串描述、比较相等等操作。虽然我只是一个刚学一个月JAVA的菜鸡,但是强迫症让我把复数乘法和除法一起写出来了。public class Complex {…

python接口测试非json的断言_荐在接口自动化测试中,如何利用Pytest + JSONPath 进行接口响应断言...

之前有一篇文章,介绍了如何使用JSONSchema对接口响应进行断言,主要的适用场景是对响应的数据结构进行校验,保证客户端收到的数据结构稳定和合法。今天,介绍使用JSONPath对接口响应的值进行断言方法。上一篇文章《在接口自动化测试…

python3中异常处理_python中的五种异常处理机制介绍|python3教程|python入门|python教程...

https://www.xin3721.com/eschool/python.html从几年前开始学习编程直到现在,一直对程序中的异常处理怀有恐惧和排斥心理。之所以这样,是因为不了解。这次攻python,首先把自己最畏惧和最不熟悉的几块内容列出来,里面就有「异常处理…

java static 单例模式_Java 单例模式全面学习

介绍什么是单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点解决什么问题:省略创建对象所花费的时间,不需要频繁创建对象,减轻 GC 压力。单例模式有以下几种实现方式:懒汉式第一次使用的时候…