mysql大表优化
https://segmentfault.com/a/1190000006158186
https://tech.meituan.com/mysql-index.html
http://www.cnblogs.com/wajika/p/6713636.html
使用索引,减少列,减少连接操作,精简数据类型和约束条件。
去除重复索引
重复索引使数据库需要做更多工作保持数据和索引一致性,且消耗磁盘空间,导致备份和恢复所需时间增加。
去除没有被使用的索引或者无效索引
改进索引
减少SQL语句
把多条ALERT语句整合成一条SQL语句是一种简单的优化
简化SQL语句
使用连接代替子查询
缓存选项
MySQL查询缓存可能会让写操作多与读操作的业务产生退化,对给定的表的任何改变,都会导致与该表相关的缓存失效。
在应用程序缓存
优化完之后需要验证,优化效果是否会随着数据容量增加而退化。
show status like 'innodb_buffer%';
show status like 'Qcache%';
select * from information_schema.processlist;
show engine INNODB status;
show variables like 'query_cache%';
set profiling = 1;
select * from student where id = 1;
show profiles;
show profile for query 1;
OR
改写成IN
:OR
的效率是n级别,IN
的效率是log(n)级别,in的个数建议控制在200以内
对于连续数值,使用BETWEEN
不用IN
:SELECT id FROM t WHERE num BETWEEN 1 AND 5
列表数据不要拿全表,要使用LIMIT
来分页,每页数量也不要太大
mysql大表优化的更多相关文章
- 优秀后端架构师必会知识:史上最全MySQL大表优化方案总结
本文原作者“ manong”,原创发表于segmentfault,原文链接:segmentfault.com/a/1190000006158186 1.引言 MySQL作为开源技术的代表作之一,是 ...
- MySQL 大表优化方案(长文)
当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑.部署.运维的各种复杂度,一般以整型 ...
- 详解MySQL大表优化方案( 转)
当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑.部署.运维的各种复杂度,一般以整型 ...
- MySQL 大表优化方案探讨
当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑.部署.运维的各种复杂度,一般以整型 ...
- MySQL大表优化方案
转:https://segmentfault.com/a/1190000006158186?hmsr=toutiao.io&utm_medium=toutiao.io&utm_sour ...
- MySQL 大表优化方案
当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑.部署.运维的各种复杂度,一般以整型 ...
- MySQL大表优化方案 Mysql的row_format(fixed与dynamic)
转自:https://mp.weixin.qq.com/s/VY69wWlrVLjRtKU7ULrYGw 当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 单表优化 除 ...
- 详解MySQL大表优化方案
单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑.部署.运维的各种复杂度,一般以整型值为主的表在千万级以下,字符串为主的表在五百万以下是没有太大问题的.而事实上很多时 ...
- mysql 大表优化
当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 转自:https://segmentfault.com/a/1190000006158186 单表优化 除非单表数据未 ...
随机推荐
- java中Thread类分析
创建线程的方式有三种,一是创建Thread实例,二是实现Runnable接口,三是实现Callable接口,Runnable接口和Callable接口的区别是一个无返回值,一个有返回值:不管是Runn ...
- Linux & Oracle目录说明
/bin:存放着一百多个Linux下常用的命令.工具 /dev:存放着Linux下所有的设备文件! /home:用户主目录,每建一个用户,就会在这里新建一个与用户同名的目录,给该用户一个自己的空间 ...
- mySQL教程 第1章 数据库设计
E-R设计 很多同学在学SQL语句时,觉得非常困难,那是因为你在学一个你根本不了解的数据库,数据库中的表不是你设计的,表与表之间的关系你不明白.因此在学SQL语句之前,先介绍一下数据库设计. 下面举例 ...
- MongoDB配置成系统服务(Win)
bin同级目录下创建文件夹data 进入data创建文件夹db和文件夹logs 进入logs创建文件mongo.log 以管理员权限打开cmd,进入mongo的bin目录下执行命令: mongod - ...
- vscode美化方法以及定制主题插件
首先是学会调整字体和字体大小 换成你看着舒服的字体和字体大小,当然,通常情况下默认的就很好看,但每个人的显示屏参数不同显示起来的效果因人而异,如果你有更好的方案不妨设置一下 下面展示我的浅色主题和深色 ...
- 驳《编码规范是技术上的遮羞布》自由发挥==摆脱编码规范?X
引子: 看了一坨文字<编码规范是技术上的遮羞布>,很是上火,见人见智,本是无可厚非,却深感误人子弟者众.原文观点做一个简单的提炼: 1.扔掉编码规范吧,让程序员自由发挥,你会得到更多的好处 ...
- neo4j图数据库入门
一.安装及启动 1.安装 Java SDK 1) 地址:http://www.oracle.com/technetwork/java/javase/downloads 2) 下载:jd ...
- volatile关键字的作用、原理
在只有双重检查锁,没有volatile的懒加载单例模式中,由于指令重排序的问题,我确实不会拿到两个不同的单例了,但我会拿到"半个"单例. 而发挥神奇作用的volatile,可以当之 ...
- matplot 代码实例
matplot 代码实例 #!/usr/bin/env python # coding=utf-8 import numpy as np import matplotlib.pyplot as plt ...
- OpenCV:初试牛刀-显示图像-1
OpenCV开发包提供了读取各种类型的图像文件.视频内容以及摄像机输入的功能.这些功能是OpenCV开发包所包含的HighGUI工具集的一部分. 先看两个小例子: #include"open ...