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;已经记不住是什么时候加入到我的GTD阅读清单的&#xff0c;在去北京出差时带上了这本书&#xff0c;前4章介绍了许多故事和记忆的原理&#xff0c;快速翻到第5章开始阅读&#xff0c;随着作者一起开始记忆的练…

推自己的镜像到网易云

推送本地镜像 本文介绍如何将本地镜像推送至你的网易云私有镜像仓库&#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…

WebSocket-nodejs实现

一、环境配置 1.下载安装nodejs https://nodejs.org/en/download/ 2.安装完成后打开cmd命令&#xff0c;执行node --version,看看是否安装成功&#xff0c;如果提示没有此命令&#xff0c;去配置下环境变量&#xff0c;正常情况下安装后自动设置环境变量 二、配置nodejs模…

PXE自动安装FreeBSD

作者信息 作者:diege 时间:2012-05-02 前言 最经准备整理运维自动化相关的技术&#xff0c;发现FreeBSD的PXE安装忘的七七八八了&#xff0c;所以先整理一下&#xff0c;仍到博客上来。 目标 通过FreeBSD Server PXE安装FreeBSD操作系统 Server信息 操作系统版本&#xff1a;Fr…

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;这两个动作 …

centos 6 安装mosh 1.2

关于mosh&#xff08;引用于&#xff09; 芬兰研究员Tatu Ylnen于1995年设计出最早的SSH协议&#xff0c;它迅速成为最流行的远程登录安全协议。17年后&#xff0c;一组MIT的***提出了mosh&#xff0c;让SSH走向现代化。mosh是基于新的State Synchronization Protocol&#xff…

数组去重js方式

var selectmap new Array(); /(\x0f[^\x0f])\x0f[\s\S]*\1/.test("\x0f"selectmap.join("\x0f\x0f") "\x0f")返回为true表示存在重复数据转载于:https://www.cnblogs.com/lc93/p/9028038.html

mysql网络订餐系统截屏_在线订餐系统mysql字段

在线订餐系统mysql字段,随便写的了。也许要改变呢。再说吧啊。在线订餐系统mysql字段分成3个表开发1.user2.order3.pay1.用户表包含下面字段 id int 主键&#xff0c;自动累加&#xff0c;不为空&#xff0c;长度10就够了吧&#xff1b;用户名(name) varchar类型 30长度够了吧。…

学习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<…

实例讲解override和new的区别

一、override&#xff1a;Override关键字主要是提供派生类对基类方法的新实现。 1、不可以用于重写非虚方法和静态方法 2、与其配套使用的关键字是Virtual、abstract、Override。 3、不能使用修饰符 new、static、virtual 或 abstract 来修改 override 方法。 二、new&#xff…

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…