为了达到数据库胡最佳性能

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

innodb_buffer_pool_size=256M

sudo service mysql restart


record lock + gap lock  =  next_try_lock

Mysql 5.7优化的更多相关文章

  1. mysql查询性能优化

    mysql查询过程: 客户端发送查询请求. 服务器检查查询缓存,如果命中缓存,则返回结果,否则,继续执行. 服务器进行sql解析,预处理,再由优化器生成执行计划. Mysql调用存储引擎API执行优化 ...

  2. MYSQL数据库的优化

    我们究竟应该如何对MySQL数据库进行优化?下面我就从MySQL对硬件的选择.MySQL的安装.my.cnf的优化.MySQL如何进行架构设计及数据切分等方面来说明这个问题. 服务器物理硬件的优化 在 ...

  3. 1229【MySQL】性能优化之 Index Condition Pushdown

    转自http://blog.itpub.net/22664653/viewspace-1210844/  [MySQL]性能优化之 Index Condition Pushdown2014-07-06 ...

  4. mysql中的优化, 简单的说了一下垂直分表, 水平分表(有几种模运算),读写分离.

    一.mysql中的优化 where语句的优化 1.尽量避免在 where 子句中对字段进行表达式操作select id from uinfo_jifen where jifen/60 > 100 ...

  5. MySQL 调优/优化的 100 个建议

    MySQL 调优/优化的 100 个建议   MySQL是一个强大的开源数据库.随着MySQL上的应用越来越多,MySQL逐渐遇到了瓶颈.这里提供 101 条优化 MySQL 的建议.有些技巧适合特定 ...

  6. 理解MySQL——索引与优化

    转自:理解MySQL——索引与优化 写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点.考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存 ...

  7. MySQL数据库的优化(下)MySQL数据库的高可用架构方案

    MySQL数据库的优化(下)MySQL数据库的高可用架构方案 2011-03-09 08:53 抚琴煮酒 51CTO 字号:T | T 在上一篇MySQL数据库的优化中,我们跟随笔者学习了单机MySQ ...

  8. MySQL数据库的优化(上)单机MySQL数据库的优化

    MySQL数据库的优化(上)单机MySQL数据库的优化 2011-03-08 08:49 抚琴煮酒 51CTO 字号:T | T 公司网站访问量越来越大,导致MySQL的压力越来越大,让我们自然想到的 ...

  9. mysql使用索引优化查询效率

    索引的概念 索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针.更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度.在没 ...

  10. 深入理解MySQL开发性能优化.pptx

    深入理解MySQL开发性能优化.pptx,依旧上传baidu pan http://pan.baidu.com/s/1jIwGslS,视频暂未出,培训完成后会更新.

随机推荐

  1. this:当前调用的对象

  2. Leetcode | 组目录

    数组 [1]999. 车的可用捕获量 [2]989. 数组形式的整数加法

  3. vs2019离线安装包下载

    https://docs.microsoft.com/en-us/visualstudio/install/use-command-line-parameters-to-install-visual- ...

  4. String与StringBuffer

    转载于:http://www.cnblogs.com/springcsc/archive/2009/12/03/1616330.htm  l火之光 StringBuffer类和String一样,也用来 ...

  5. 模拟select,隐藏下拉列表的几种实现

    前言 平时开发过程中,出于各种原因模拟原生slect的要求并不算少见. 在实现的过程中,点击其他区域隐藏下拉列表,又是一个必备的功能, 最近在一次开发的过程中引发了点思考,做下总结. 现象 实际中的实 ...

  6. 删除jar包

    public class TestDelete { private static List<File> files = new ArrayList(); public static voi ...

  7. 设备唯一标识方法(Unique Identifier):如何在Windows系统上获取设备的唯一标识 zz

    原文地址:http://www.vonwei.com/post/UniqueDeviceIDforWindows.html 唯一的标识一个设备是一个基本功能,可以拥有很多应用场景,比如软件授权(如何保 ...

  8. drf序列化组件

    rest_framework序列化之Serializer 步骤: 1.自定义一个类,继承Serializer类: 2.在类中写要序列化的字段: 3.使用:在views.py文件中,book_ser=B ...

  9. PostgreSQL自学笔记:与python交互

    与python交互教程 原文地址:https://www.yiibai.com/html/postgresql/2013/080998.html 1. Python psycopg2 模块APIs 连 ...

  10. ubantu16.04安装ns2.34 错误

    把ns2.34解压缩之后,sudo ./install 出现的错误: 错误一:安装NS2.34过程中出现如下的错误:tools/ranvar.cc: In member function ‘virtu ...