mysql对大量数据查询花费时间_对于Mysql大量数据查询速度慢的问题

1.如果mysql数据量过大,当查询的时候耗时比较长,则会影响页面数据展示。给客户的直观反应的:

点击了某个查询功能,结果等了差不多十几秒才反应出来,这样的体验感太差了。

2.为了增加反应速度。一般来是建立索引,如我现在的查询语句:

SELECT

aa.INDI_NAME,

aa.gg,

aa.gp,

aa.pn,

bb.report_name

FROM

(

SELECT

T.INDI_ID,

T.INDI_NAME,

SUM(CASE WHEN T.AREA_ID =2501 THEN T.INDI_VALUE ELSE 0 END) gg,

SUM(CASE WHEN T.AREA_ID =2502 THEN T.INDI_VALUE ELSE 0 END) gp,

SUM(CASE WHEN T.AREA_ID =2503 THEN T.INDI_VALUE ELSE 0 END) pn

FROM VW_ST_INDEX_INST_DAY_2310_DT_X T

WHERE T.MONTH_NO = '201708'

AND T.DATE_NO = '20170831'

AND T.LATN_ID = '1100'

AND T.TYPE_ID < '99'

AND T.REPORT_ID = '23100104' -- 该至是个变至1到4变化 例如:23100101,23100102,23100103,23100104

GROUP BY T.INDI_ID, T.INDI_NAME

UNION ALL

SELECT T.INDI_ID, T.INDI_NAME,

SUM(CASE WHEN T.AREA_ID =2501 THEN T.INDI_VALUE ELSE 0 END) gg,

SUM(CASE WHEN T.AREA_ID =2502 THEN T.INDI_VALUE ELSE 0 END) gp,

SUM(CASE WHEN T.AREA_ID =2503 THEN T.INDI_VALUE ELSE 0 END) pn

FROM VW_ST_INDEX_INST_DAY_2310_DT_X T

WHERE T.MONTH_NO = '201708'

AND T.LATN_ID = '1100'

AND T.DATE_NO <= '20170831'

AND T.TYPE_ID ='99'

AND T.REPORT_ID = '23100104' -- 该至是个变至1到4变化 例如:23100101,23100102,23100103,23100104

GROUP BY T.INDI_NAME, T.INDI_ID) aa,

(SELECT

*

from dim_report_conf

where report_id = '23100104') bb -- 该至是个变至1到4变化 例如:23100101,23100102,23100103,23100104

如下反应速度比较慢是2秒

0818b9ca8b590ca3270a3433284dd417.png

建立索引:

0818b9ca8b590ca3270a3433284dd417.png

索引语句:

CREATE INDEX vwIndexIdLAAAA on vw_st_index_inst_day_2310_dt_x (REPORT_ID,LATN_ID,DATE_NO);

然后再次或者多次查询就变成了0.009秒了

0818b9ca8b590ca3270a3433284dd417.png

所以还是建立索引比较快。

则是你数据库字段太长了,需要修改具体的长度计算规则如下:

经过查询才知道,是Mysql的字段设置的太长了,于是我把这两个字段的长度改了一下就好了。

建立索引时,数据库计算key的长度是累加所有Index用到的字段的char长度后再按下面比例乘起来不能超过限定的key长度1000:

latin1 = 1 byte = 1 character

uft8 = 3 byte = 1 character

gbk = 2 byte = 1 character

举例能看得更明白些,以GBK为例:

CREATE UNIQUE INDEX `unique_record` ON reports (`report_name`, `report_client`, `report_city`);

其中report_name varchar(200), report_client varchar(200), report_city varchar(200)

(200 + 200 +200) * 2 = 1200 > 1000,所有就会报1071错误,只要将report_city改为varchar(100)那么索引就能成功建立。

如果表是UTF8字符集,那索引还是建立不了。

(200 + 200 +200) * 3 = 1800 大于提示信息字段。

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

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

相关文章

推自己的镜像到网易云

推送本地镜像 本文介绍如何将本地镜像推送至你的网易云私有镜像仓库&#xff0c;以便在网易云上部署容器或集群。 注&#xff1a;Docker 客户端版本要求 1.7 及以上。 1. 列出本地镜像 docker images 2. 后台启动容器&#xff0c;验证配置是否正确 docker run -d {镜像名或ID} …

-js中json数组 以表格形式_为什么js类数组加上splice方法就是数组形式,不加就是对象形式?...

var array_like {};array_like[0] "test 0";array_like[1] "test 1";array_like[2] "test 2";array_like[3] "test 3";//关键点array_like.length 4;//为对象设置length属性array_like.splice [].splice;//同时设置splice属性为…

BYZ原创天语w806测评--入手2天,总结优点、缺点.

原帖地址&#xff1a;BYZ原创天语w806测评--入手2天,总结优点、缺点.楼下附上图片哦&#xff01;billyzhou033邀请您访问锋动网http://flydong.com/?fromuid989昨天刚入手的大黄蜂w806&#xff0c;使用了1天&#xff0c;阿里云系统&#xff0c;由于第一次使用此系统&#xff0…

mysql 5.6 gtid 主从_MySQL5.6基于GTID的主从复制

一、GTID简介MySQL 5.6 的新特性之一&#xff0c;是加入了全局事务 ID (GTID) 来强化数据库的主备一致性&#xff0c;故障恢复&#xff0c;以及容错能力。什么是GTID&#xff1f;官方文档&#xff1a;http://dev.mysql.com/doc/refman/5.6/en/replication-gtids.html在这篇文档…

Spring Boot之HelloWorld

视频网址&#xff1a;http://www.iqiyi.com/w_19ruksbpf1.html <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://maven.a…

防止黑客入侵的五大技巧

2019独角兽企业重金招聘Python工程师标准>>> 防止黑客入的方法有很多&#xff0c;但是世界上没有绝对安全的系统。我们只可以尽量避免被入侵&#xff0c;最大的程度上减少伤亡。那么&#xff0c;接下来天下数据将为您详细介绍防止黑客入侵的五大技巧。(本文为天下数…

mysql js 命令行登录_mysqlsh 命令行模式与密码保存-爱可生

原标题&#xff1a;mysqlsh 命令行模式与密码保存-爱可生命令行模式mysql shell 如何实现类似 mysql -e "show processlist;" 的效果&#xff1f;即执行完就退出登录&#xff0c;不需要交互&#xff0c;我们经常在脚本中这样使用。那么同样的&#xff0c;在维护 Inno…

AngularJS学习笔记(1)——MVC模式的清单列表效果

MVC模式的清单列表效果 使用WebStorm新建todo.html并链入bootstrap.css、bootstrap-theme.css、angular.js。要链入的相关css和js文件预先准备好&#xff0c;文件目录如下&#xff1a; 使用MVC模式前的代码&#xff1a; <!DOCTYPE html> <html ng-app> <head&g…

C#多线程学习(六) 互斥对象

C#多线程学习(六) 互斥对象 原文链接&#xff1a;http://kb.cnblogs.com/page/42533/ 本系列文章导航 C#多线程学习(一) 多线程的相关概念 C#多线程学习(二) 如何操纵一个线程 C#多线程学习(三) 生产者和消费者 C#多线程学习(四) 多线程的自动管理(线程池) C#多线程学习(五) 多…

什么是mysql事物定义_Mysql事务原理

1. 什么是数据库事务1.1 事务的应用场景电商平台中例如常见的下单流程&#xff0c;会同时操作订单表&#xff0c;库存表等&#xff0c;有时候这些操作要在一个事务里面完成。还有金融系统业务的银行转账&#xff0c;需要保证一个账户增加另一个账户减少&#xff0c;这两个动作 …

学习jvm,关于MAT an internal error occurred during:Parsing heap dump from问题

写了一个死循环不断的创建对象&#xff0c;模拟内存溢出 1 package com.zuo.test1;2 3 import java.util.ArrayList;4 import java.util.List;5 6 public class Main {7 8 public static void main(String[] args) {9 List<Demo> demosnew ArrayList<…

mysql报错5_mysql5.5 启动报错:ERROR!_MySQL

bitsCN.com在FreeBSD中启动mysql时报错&#xff0c;ERROR! The server quit without updating PID file&#xff0c;通常这是可以查看数据库目录下的.err日志&#xff0c;里面会记录一些具体的错误信息&#xff0c;对排错相当有用&#xff0c;内容如下&#xff1a;110805 17:30…

MySQL安装总结

安装MySQL&#xff1a;&#xff08;以安装5.1版本为例&#xff09; 1. 双击你下载的安装程序&#xff0c;然后会进入一个‘Welecom to the Setup Wizard for MySQL Server 5.1’的图形界面&#xff01;在这里不用做任何操作&#xff0c;点击next&#xff0c;进入下一步&a…

java swing事件_第四节 Java Swing事件处理

第四节&#xff1a;事件处理一个图形界面完的成只是程序开发中起步的工作&#xff0c;因为要想让每一个组件都发挥其作用&#xff0c;就必须对所有的组件进行事件处理。那么什么是事件处理&#xff0c;所谓事件就表示一个对象发生状态变化。例如&#xff0c;每当按下一个按钮时…

jedate-开始使用一款好用的时间插件

jeDate日期控件 -&#xff08;原生JS版&#xff09;jeDate V6.5.0 是一款原生JS开发的 不依赖任何第三方库 大众化的日期控件&#xff0c;包含 多语言、设定年月&#xff08;YYYY-MM&#xff09;、日期范围限制、开始日期设定、自定义日期格式、根据不同的日期格式&#xff0c;…

zabbix的安装(一)监控os资源:内存,cpu,io,负载,带宽

一、Linux下开源监控系统简单介绍1&#xff09;cacti&#xff1a;存储数据能力强&#xff0c;报警性能差2&#xff09;nagios&#xff1a;报警性能差&#xff0c;存储数据仅有简单的一段可以判断是否在合理范围内的数据长度&#xff0c;储存在内存中。比如&#xff0c;连续采样…

linux下rpm方式安装mysql(2012-5-12)

由于感觉前几篇博客中关于linux下rpm方式安装mysql的方法问题太多&#xff0c;今天抽时间重新实践和整理了一下&#xff0c;现在拿出来和大家分享&#xff0c;希望对家有用。 系统环境&#xff1a;Rat had enterprise linux server 6.1MySQL-5.5.22-1.linux2.6.i386VMware Work…

list java语法_java基础语法 List

List的用法List包括List接口以及List接口的所有实现类。因为List接口实现了Collection接口&#xff0c;所以List接口拥有Collection接口提供的所有常用方法&#xff0c;又因为List是列表类型&#xff0c;所以List接口还提供了一些适合于自身的常用方法&#xff0c;如表1所示。表…

基础练习

口述题1.分别解释"","",""的含义。 是赋值语句 把一个值赋值给另一个值 是判断语句 判断两个值是否相等 是赋值语句 a1 等价于 aa1 2.两个变量的关系&#xff1f;n1123456n2n1 把123456赋值给变量n1,把n2赋值给n1,n1,n2共同指向123456这个地址 …

求大神解决下这个题目!做好请发到308960728@qq.com

RIP动态路由配置RIP是使用最广泛的距离向量协议&#xff0c;通过本次配置来理解RIP协议的传播、分析、挑选路由&#xff0c;来实现路由发现、路由选择、路由切换等功能&#xff0c;掌握RIP动态路由信息协议的配置方法。1.RIP配置环境与网络拓扑结构图实验设备&#xff1a;3台CI…