mysql8优化实战

最近上线了一个10万户的管理系统,以前的客户没有这么多用户量,隐藏在代码中的慢sql渐渐显现出来了。
下面是我最近一周慢sql优化的总结:

	多表sql优化、count sql优化、超过10 0000条limit优化

一、多表sql优化

二、count sql优化

在这里插入图片描述
该表有2135067条记录,使用pageHelper默认生成的count sql,导致相关菜单页面完全没法使用
在这里插入图片描述
在这里插入图片描述
由于count(*)太慢,考虑到使用count(任意索引列)的方式写sql,字段的数据长度越长,建立的索引长度越长、查询性能越差。就找了长度只有1的status字段,这样能达到最好的索引性能。
使用如下sql建立索引:

alter table water add index idx_status (status)

从阿里规约得知,count(列名)不会统计此列为NULL值的行,status字段必须设置成非空,否则存在NULL值会导致统计数据错误;虽然该优化不符合规约,但实实在在的提升性能,故值得一试!
在这里插入图片描述
三、超过10 0000条limit优化
在这里插入图片描述

MySQL 并不是跳过 offset 行,而是取 offset+N 行,然后返回放弃前 offset 行,返回 N 行,那当 offset 特别大的时候,效率就非常的低下,要么控制返回的总页数,要么对超过特定阈值的页数进行 SQL 改写。

在这里插入图片描述
数值状态码查询条件,使用int代替varchar查询效率更高 status:char(1)
在这里插入图片描述

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

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

相关文章

工作317:uni-修改其他页面整体样式

<template><view class"wrap"><u-form :model"form" :rules"rules" ref"uForm" :errorType"errorType"><u-form-item label"标题" class"label-left" style"margin-left:30r…

工作318:uni-切换tabber修改状态修饰

onLoad() {/* 调用市场信息的接口 分别 vuex获取 其他三项 */this.$u.api.getTreasureList({marketId: this.vuex_user.market_id,pageNo: 1,pageSize: 20,type:this.current1,releaseBureau:this.releaseBureau,name:this.name}).then(res > {if (res.data.code 200) {thi…

字节跳动小程序支付接入

字节跳动小程序支付接入躺过的坑流程签名支付宝配置问题java福利躺过的坑 流程 小程序申请流程业务调用流程 签名 请求字节跳动接口的签名请求预下单返回验签 支付宝配置问题 流程 小程序申请流程 字节跳动小程序开通申请有个渠道秘钥类型选择RSA2和RSA&#xff0c;不管你选择…

深入浅出JVM-内存模型

JVM内存模型总图程序计数寄存器Java虚拟机栈(JVM Stack)定义特点本地方法栈(Native Method Stack)Java堆(Java Heap)定义特点方法区定义特性可能抛出的异常直接内存(Direct Memory)Metaspace (元空间)元空间特色GC元空间内存分配模型从GC角度看Java堆JVM关闭总图 程序计数寄存器…

HDU 4487 Maximum Random Walk

Maximum Random Walk Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 756 Accepted Submission(s): 419 三维dp&#xff0c;一维的话根本没有办法开展&#xff0c;二维的话没办法保存当前位置或者最远位置&…

深入浅出JVM-GC过程

深入浅出JVM-GC过程Minor GC对象进入老年代的4种情况Full GC空间分配担保Minor GC Minor GC过程 假设现在Heap内存大小为20M&#xff0c;其中年轻代为10M&#xff0c;老年代为10M&#xff0c;年轻代中Eden区6M&#xff0c;From区2M&#xff0c;To区2M&#xff0c;新创建的对象…

工作324:uni-时间过滤器封装

filters: {toChangeDate(e) {console.log(new Date(e).getFullYear())console.log(new Date(e).getMonth())console.log(new Date(e).getDay())let dateYear new Date(e).getFullYear(); //获取年 let dateMonth new Date(e).getMonth()1<10? 0 new Date(e).getMonth() …

[Python] 制作启动uiautomator2 的web版 uiautomatorviewer2 批处理启动

打开一个txt文件&#xff0c;复制如下命令进行并另存为为 .bat文件 1 echo on 2 echo 正在启动 uiautomatorviewer2 3 4 python -m weditor 5 6 echo off 注意&#xff1a;如果批处理里面有中文的话&#xff0c;一定要将 txt 文本的编码方式设置为 ANSI 编码进行保存&#xf…

微信小程序获取unionid为空

微信小程序获取unionid为空原因&#xff1a;未绑定微信开放平台绑定步骤原因&#xff1a;未绑定微信开放平台 最新在调试一个新的微信小程序&#xff0c;因为要对web授权登录、app授权登录、小程序授权登录&#xff1b;几种登录场景根据unionid来开放登录。但是授权出现获取un…

《精通Python设计模式》学习之原型模式

暂时在工作中&#xff0c;还没有用到呢~~~ 以后要留意一下&#xff0c;主要用于复制对象副本&#xff0c; 然后又有自定义属性的地方。 import copy from collections import OrderedDictclass Book:def __init__(self, name, authors, price, **rest):self.name nameself.aut…

alipay.data.bill.balance.query ISV权限不足

alipay.data.bill.balance.query ISV权限不足alipay.data.bill.balance.query是支付宝商家账户当前余额查询接口&#xff1b;目前调用该接口返回 ISV权限不足 完整返回&#xff1a; {"body":"{"alipay_data_bill_balance_query_response":{"cod…

洛谷 P1063 能量项链 区间dp

洛谷 P1063 题意&#xff1a;在一串项链中&#xff0c;是环状的&#xff0c;第 i 颗珠子有两个能量a[i]和a[i1],第i1颗珠子有两个能量a[i1]和a[i2],可以合并两个珠子&#xff0c;得到a[i]*a[i1]*a[i2]的能量&#xff0c;这两个珠子合并成a[i]和a[i2]的新珠子&#xff0c;问通过…

支付宝第三方授权登陆

支付宝微信第三方软件的接入&#xff0c;也是越来越流行&#xff0c;最近也稍微研究了一下&#xff0c;支付宝和微信的登陆接入。 由于本人是做Java后台发开的&#xff0c;所以前端app集成没有涉及&#xff0c;研究的是网页和后台部分。 做第三方软件的​接入&#xff0c;…

解决IntelliJ创建Maven项目一直显Loading archetype list

最近在使用idea的过程中&#xff0c;创建maven项目&#xff0c;一直会遇到这个问题&#xff0c;查了很多资料&#xff0c;最终解决啦。 网上普遍存在两种方式 但是我是用第三种方式解决的..... 首先&#xff0c;说说前两种方式&#xff0c; 1.删除{User_Home}/.IntelliJIdea{V…

flex布局-笔记

一 、flex布局 弹性布局&#xff0c;灵活性 .box{display: flex;display: -webkit-flex; /* Webkit内核的浏览器&#xff0c;必须加上-webkit前缀。 */ /* 行内元素也可以使用弹性布局。 display: inline-flex;*/ /*弹性布局后&#xff0c;子元素的float、clear和vertical-ali…

​​使用win7超级终端连接华为交换机并配置端口镜像

​ 首先&#xff0c;用console连接主机和交换机&#xff0c;打开超级终端&#xff0c;&#xff08;注意&#xff1a;一定要用win7系统配置&#xff09;如图所示&#xff1a; ​ ​ 新建连接时名字随意&#xff0c;但要注意不能是下面图标&#xff1a; ​ 然后出现下面这…

电脑安装打印机设备搜索不到解决记录

下面以windows10举例&#xff0c;打印机设备为HP品牌 1.打开控制面板选择查看打印机设备&#xff0c; 选择添加打印机&#xff0c;搜索不出的时候选择我所需的打印机未列出 选择第三个选项&#xff1a;使用TCP/IP地址或主机名添加打印机&#xff0c;点击下一步 填写打印机主机名…

用原生PHP做Blog系统-Day01

目标 用原声PHP&#xff0c;不用框架&#xff0c;写一个博客发布系统&#xff0c;后台管理文章&#xff0c;用户&#xff0c;前台展示。 技术栈 PHPAJAXJavaScript JQueryHTML前端 WordPress阿里百秀模板 后端样式 转载于:https://www.cnblogs.com/huxiaoyi/p/9445565.html

支付宝APP支付 错误代码 insufficient-isv-permissions 错误原因: ISV权限不足

首先&#xff0c;你得搞清楚支付方式&#xff1a; 支付宝支付分为&#xff1a;APP支付 以及 网站支付 两种&#xff0c;所以你要去确认你签约的到底是哪种。 于是&#xff0c;如果签约与调用的一致 解决办法&#xff1a; 登录开放平台 -> 研发管理-> 我的应用->…

elasticSearch的安装步骤~

Elasticsearch是一个实时的分布式搜索和分析引擎&#xff0c;关于elasticsearch和solr的比较和使用场景请自行百度。 1. 机器环境 Centos6.5 jdk-8u121-linux-x64.tar.gz elasticsearch-5.2.2.tar.gz 2. 配置(1). 配置静态ip (2). 进入cd /usr/local/src 在src目录下创建文件…