Mysql 5.7优化
为了达到数据库胡最佳性能
1. 普通用户通过配置软件与硬件来实现
2. 高级用户会寻求机会改善MySQL本身,开发自己的数据存储引擎,硬件应用。
在数据库层面的优化
1. 表设计,通常列有适合的数据类型,表有适合的列。例子,写操作多的应有通常有多点表,少点列。
大量的数据分析的,会多点列,少些表。
2. 建立适合的索引。
3. 使用适合的存储引擎。
优化select语句。
例子:
优化InnoDB Queries
如果列中不可能有NULL,声明为NOT NULL更有利于优化器
不要单独建立二级索引,因为每次查询只使用一个索引。尝试使用组合索引。
行级锁:InnoDB多用户,高并发,在线计算
为了防止死锁,InnoDB可以自动发现死锁条件,回滚。
在高并发系统里,这个机制导致缓慢。所以disable 死锁检测,依靠innodb_lock_wait_timeout, innodb_deadlock_detect这个可以关掉。
https://dev.mysql.com/doc/refman/5.7/en/table-locking.html
To specify that all updates issued in a specific connection should be done with low priority, set the low_priority_updates
server system variable equal to 1.
When tuning a MySQL server, the two most important variables to configure are key_buffer_size
and table_open_cache
. You should first feel confident that you have these set appropriately before trying to change any other variables.
使用视图的注意事项是,视图是根据你定义的联表查询规则生产的临时表,当你基于视图来做各种条件查询,他会首先联表生成一张大表,那就相当于全表扫描,性能很差,生成完临时表后才筛选你的条件。如果是你自己灵活查询,在联表之前你就可以用条件筛选出很少的记录,避免了全表扫描。
show index from [table]
查看 cardinality
有时mysql会挂掉
tail /var/log/mysql/error.log
2018-07-29T06:04:29.385989Z 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
2018-07-29T06:04:29.386000Z 0 [ERROR] Plugin 'InnoDB' init function returned error.
2018-07-29T06:04:29.386006Z 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2018-07-29T06:04:29.386013Z 0 [ERROR] Failed to initialize builtin plugins.
2018-07-29T06:04:29.386017Z 0 [ERROR] Aborting
可以尝试修改
/etc/mysql/mysql.conf.d/mysqld.cnf
sudo service mysql restart
record lock + gap lock = next_try_lock
Mysql 5.7优化的更多相关文章
- mysql查询性能优化
mysql查询过程: 客户端发送查询请求. 服务器检查查询缓存,如果命中缓存,则返回结果,否则,继续执行. 服务器进行sql解析,预处理,再由优化器生成执行计划. Mysql调用存储引擎API执行优化 ...
- MYSQL数据库的优化
我们究竟应该如何对MySQL数据库进行优化?下面我就从MySQL对硬件的选择.MySQL的安装.my.cnf的优化.MySQL如何进行架构设计及数据切分等方面来说明这个问题. 服务器物理硬件的优化 在 ...
- 1229【MySQL】性能优化之 Index Condition Pushdown
转自http://blog.itpub.net/22664653/viewspace-1210844/ [MySQL]性能优化之 Index Condition Pushdown2014-07-06 ...
- mysql中的优化, 简单的说了一下垂直分表, 水平分表(有几种模运算),读写分离.
一.mysql中的优化 where语句的优化 1.尽量避免在 where 子句中对字段进行表达式操作select id from uinfo_jifen where jifen/60 > 100 ...
- MySQL 调优/优化的 100 个建议
MySQL 调优/优化的 100 个建议 MySQL是一个强大的开源数据库.随着MySQL上的应用越来越多,MySQL逐渐遇到了瓶颈.这里提供 101 条优化 MySQL 的建议.有些技巧适合特定 ...
- 理解MySQL——索引与优化
转自:理解MySQL——索引与优化 写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点.考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存 ...
- MySQL数据库的优化(下)MySQL数据库的高可用架构方案
MySQL数据库的优化(下)MySQL数据库的高可用架构方案 2011-03-09 08:53 抚琴煮酒 51CTO 字号:T | T 在上一篇MySQL数据库的优化中,我们跟随笔者学习了单机MySQ ...
- MySQL数据库的优化(上)单机MySQL数据库的优化
MySQL数据库的优化(上)单机MySQL数据库的优化 2011-03-08 08:49 抚琴煮酒 51CTO 字号:T | T 公司网站访问量越来越大,导致MySQL的压力越来越大,让我们自然想到的 ...
- mysql使用索引优化查询效率
索引的概念 索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针.更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度.在没 ...
- 深入理解MySQL开发性能优化.pptx
深入理解MySQL开发性能优化.pptx,依旧上传baidu pan http://pan.baidu.com/s/1jIwGslS,视频暂未出,培训完成后会更新.
随机推荐
- Coverity代码扫描工具
1.说明:Coverity代码扫描工具可以扫描java,C/C++等语言,可以和jenkins联动,不过就是要收钱,jenkins上的插件可以用,免费的,适用于小的java项目 2.这是Coverit ...
- spring+redis的集成,使用spring-data-redis来集成
1.参考:https://www.cnblogs.com/qlqwjy/p/8562703.html 2.首先创建一个maven项目.然后加入依赖的jar包就行了.我加入的jar包很多,反正加入了也没 ...
- Visual Studio 2017
美国西雅图时间 3 月 7 日上午 9 点(北京时间 8 日凌晨 1 点),微软将正式发布 Visual Studio 2017. 下载地址:https://www.visualstudio.co ...
- Centos系统中彻底删除Mysql数据库
步骤: 1.输入命令查询系统中已安装的mysql. rpm -qa |grep -i mysql 2.逐个卸载mysql. yum remove 系统显示已安装的mysql 比如:yum remove ...
- 【java】-- java并发包总结
1.同步容器类 1.1.Vector与ArrayList异同 1.Arraylist和Vector都是采用数组方式存储数据,都允许直接序号索引元素,所以查找速度快,但是插入数据等操作涉及到数组元素移动 ...
- 一文搞定scrapy爬取众多知名技术博客文章保存到本地数据库,包含:cnblog、csdn、51cto、itpub、jobbole、oschina等
本文旨在通过爬取一系列博客网站技术文章的实践,介绍一下scrapy这个python语言中强大的整站爬虫框架的使用.各位童鞋可不要用来干坏事哦,这些技术博客平台也是为了让我们大家更方便的交流.学习.提高 ...
- TestNG 中DataProvider 的用法
使用DataProvider提供数据有两种形式: 第一种:一种是在测试代码和测试数据放在同一个类中: 第二种:把所有的数据提供都单独写在一个类里面,当测试数据比较多时,这种方法利于维护. DataPr ...
- IOS开发中获取当前WIFI的名字
ifs = [self fetchSSIDInfo]; ssid = [ifs objectForKey:@"SSID"]; self.sSIDTxt.textFi ...
- 5. 箭头函数_this 指向_es6 常用语法
1. 箭头函数 函数的简写方式 () => {} 只有一个参数时,可以省略() ---- x => {} 只有一条语句时,可以省略{},此时这点语句的结果会作为函数的返回值返回 () = ...
- 2018-2019-1 20189210 《LInux内核原理与分析》第五周作业
一.系统调用实验 1.库函数将系统调用封装起来,大多数程序员使用库函数进行系统调用. 2.Linux操作系统的体系架构分为用户态和内核态.CPU的执行级别对应的就是内核态,所有指令都可以执行.用户态对 ...