mysql 重新整理——性能下降的原因[四]
时间:2020-05-30
本文章向大家介绍mysql 重新整理——性能下降的原因[四] ,主要包括mysql 重新整理——性能下降的原因[四] 使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
前言
什么是性能下降?
其实就是代码运行的环境变了,那么环境变化是什么?
比如cpu上升了,内存满了。有或者表中数量增加了,量变了。
其实这些是dba干的,但是呢,我们也需要去了解下,并且优化我们的code。
正文
简单介绍一个量大的情况,那么这个时候我们可能会建立索引,其实也不是量大去建立索引,而是量大且查询数据多,修改少。
在此举个栗子:
SELECT * from employees where first_name='Martial'
我在一张30w的employees 中做查询。
查询出来的结果为:
受影响的行: 0
时间: 0.645s
通过查询发现索引只有主键:
show index from employees
然后这是就想,如果要是在first_name中建立主键,那么是否能提升。
create INDEX idx_first_name on employees(first_name)
看下效果继续运行查询:
[SQL] SELECT * from employees where first_name='Martial'
受影响的行: 0
时间: 0.216s
效果明显哈。
当然这很简单,现在复杂一点点,这样子。
怎么说呢,就是要有first_name 和 last_name 一起。
这时候就要创建复合索引。
create INDEX idx_first_name on employees(first_name,last_name )
在下就在次执行重复操作了。
同样我们可以看到我使用了*,这时候问题同样来了,你想想看,这个语句性能就不好了。
同样如果性能下降了,还要从语句下手。
在我进公司的时候,有一个专门搞数据库的部门,设计师设计数据库的时候,我们查一条要join好几张表,这就是设计问题,后来改了表结构,但是代价有多大可以自己想到。
最后性能不强的还有一些配置,如线程数量,这个和硬件有关,专业dba干了,我们也很难去搞定。
原文地址:https://www.cnblogs.com/aoximin/p/12991970.html
- 怎样把微信聊天记录导出备份到电脑【微信公众平台技巧】
- zookeeper curator选主(Leader)
- zookeeper curator使用caches实现各种监听
- python apschedule安装使用与源码分析
- 数据迁移过程中hive sql调优
- 词序:神经网络能按正确的顺序排列单词吗?
- 使用spark对hive表中的多列数据判重
- 如何从微信公众平台上下载关注用户(备份微信关注用户)
- 使用hive客户端java api读写hive集群上的信息
- 大数据算法设计模式(1) - topN spark实现
- redis性能调优笔记(can not get Resource from jedis pool和jedis connect time out)
- thrift例子:python客户端/java服务端
- springboot与thrift集成实现服务端和客户端
- 调用{dede:likewords}为dedecms添加相关搜索词
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解
- 面试题-JAVA之HashMap-put方法源码分析
- 案例实战 | Python 玩转 AB 测试中的分层抽样与假设检验!(附代码和数据集)
- Python 3.10 明年发布,看看都有哪些新特性?
- R可视化 | 混合多个图形
- 爱了!爱了!一款用 pandas 玩转 SQL 的神器
- 详细了解JS Map,它和传统对象有什么区别?
- Java HelloWorld 學習
- Bytecodes.java
- GenerateOopMap.java
- CellTypeState.java
- 终于开始了,微软的野心将通过全场景开发平台.NET 5体现得淋漓尽致!
- 微信小程序开发实战(27):录音
- 微信小程序开发实战(28):播放、暂停、停止声音
- 微信小程序开发实战(29):控制背景音乐
- 面试:如何从 100 亿 URL 中找出相同的 URL?