Mysql 配置优化

标签: mysql 优化 | 发表时间:2018-02-23 17:59 | 作者:hpgary
出处:http://www.iteye.com

一、Innodb 配置优化

线程参数配置:

sort_buffer_size (排序缓冲区), join_buffer_size(join缓冲大小),read_buffer_size(读取缓冲区大小),read_rnd_buffer_size(索引缓冲区大小)

 

mysql innodb系统参数配置:

innodb_buffer_pool_size=1024M #innodb 缓存池大小,设置innodb使用缓存的大小  设置内存的80%左右 一般设置和数据量大小一直  (总内存-每个线程所需要的内存*连接数-系统保留的内存) 

 

innodb_log_file_size 控制单个事务日志文件的大小

innodb_log_files_in_group 控制事务日志文件的个数

innodb_log_buffer_size 日志缓冲区大小 32M 64M 

innodb_flush_log_at_trx_commit=2 #设置为 0 每秒log buffer的内容写入日志,并且刷新到磁盘 设置为1 每个事务提交后,将log buffer的内容写事务日志并且写入磁盘,设置2每个事务提交,将log buffer 内容写入事务日志,但不写入磁盘,机械硬盘设置为2,固态硬盘设置为1

innodb_flush_method=O_DIRECT 通知操作系统不要缓存数据,数据直接写入到磁盘。

innodb_file_per_table=1 打开独立表空间

innodb_doublewrite=1  开启双写缓存,防止数据丢失

expire_logs_days=0 binlog日志保存的天数

max_allowed_packet=1073741824 mysql最大接收的包的大小

read_only=1 禁止任何没有super权限的账号修改权限,一般在从库中启用该选项

sql_mode 可指定sql的标准规范可选值:

STRICT_TRANS_TABLES  如果给定的数据不能插入到事务中会中断sql中
NO_ENGINE_SUBSTITUTION  如果在create table中指定的存储引擎不可用的情况下,让表创建失败,不是默认的存储引擎创建表
only_full_group_by 要求查询中group by没有group by的字段不能进行查询
no_zreo_date 表是日期中不允许存储 0000-00-00 这样的值

 sync_binlog 控制mysql如何向磁盘刷新binlog 默认0由系统决定什么时候刷新binlog,设置为1,每次事务执行完成后刷新binlog 影响性能,但是数据安全

 

tmp_table_size 和 max_heap_table_size 控制内存临时表大小,两个参数值应该保持一致,并且不要设置太大,防止内存溢出

 

max_connections mysql最大的链接数,默认100,通常会修改为2000或者更大

 

二、数据库设计对性能的影响:

1、过分的反范式化建立太多的列

2、过分的范式化造成太多的表关联

3、在交易系统中中使用不合适的分区表

4、使用外键保证数据的完整性

 

性能优化顺序:

1、数据库设计和sql语句

2、数据库存储引擎和参数的配置

3、系统选择及优化

4、硬件升级

 

 

 

 

 



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [mysql 优化] 推荐:

mysql优化

- - 数据库 - ITeye博客
公司网站访问量越来越大,MySQL自然成为瓶颈,因此最近我一直在研究 MySQL  的优化,第一步自然想到的是 MySQL 系统参数的优化,作为一个访问量很大的网站(日20万人次以上)的数据库系统,不可能指望 MySQL  默认的系统参数能够让 MySQL运行得非常顺畅. 在Apache, PHP,  MySQL的体系架构中,MySQL对于性能的影响最大,也是关键的核心部分.

mysql优化

- - 数据库 - ITeye博客
      1.通过 show (session 或者 global) status 来查看( 当前连接 或者 数据库上次开机以来 )的服务器状态信息,默认是session.         例如:show status like '%com_%' : com_XXX表示XXX语句执行的总次数,这总次数是针对所有引擎的总和.

MySQL性能优化

- sun - IT程序员面试网
在笔试面试中,尤其是像百度,淘宝这些数据量非常大,而且用LAMP架构的公司,数据库优化方面就显得特别重要了. 此外,除了数据库索引之外,在LAMP结果如此流行的今天,数据库(尤其是MySQL)性能优化也是海量数据处理的一个热点. 下面就结合自己的经验,聊一聊MySQL数据库优化的几个方面. 首先,在数据库设计的时候,要能够充分的利用索引带来的性能提升,至于如何建立索引,建立什么样的索引,在哪些字段上建立索引,上面已经讲的很清楚了,这里不在赘述.

mysql 引擎优化

- - CSDN博客推荐文章
MySQL数 据库引擎取决于MySQL在安装的时候是如何被编译的. 要添加一个新的引擎,就必须重新编译MYSQL. 在缺省情况下,MYSQL支持三个引擎:ISAM、MYISAM和HEAP. 另外两种类型INNODB和BERKLEY(BDB),也常常可以使用. 如果技术高超,还可以使用MySQL++ API自己做一个引擎.

mysql参数优化

- - CSDN博客推荐文章
### 用来存放InnoDB的内部目录,对于大数据设置16M足够用. ### InnoDB 缓存总大小设置,一般设置为系统内存的70%-80%. ### 指定所有InnoDB数据文件的路径和大小分配. ### 文件读写io数设置:. ### InnoDB内核的并发线程数设置. ### 设置日值的大小.

Zabbix 的 MySQL 优化

- - SegmentFault 最新的文章
为 Zabbix 优化 MySQL. 标签(空格分隔): Zabbix MySQL Optimizing 优化. Aurimas Mikalauskas,原文是. Zabbix 和 MySQL. 在大型的 Zabbix 环境中,遇到的挑战大部分是 MySQL 以及更具体的说是 MySQL 磁盘 IO.

mysql优化方法

- - 数据库 - ITeye博客
通过show status和应用特点了解各种SQL的执行频率. 通过SHOW STATUS可以提供服务器状态信息,也可以使用mysqladmin extended-status命令获得. SHOW STATUS可以根据需要显示session级别的统计结果和global级别的统计结果. 以下几个参数对Myisam和Innodb存储引擎都计数:.

Mysql性能优化

- - 数据库 - ITeye博客
MySQL性能优化.   性能优化是通过某些有效的方法来提高MySQL的运行速度,减少占用的磁盘空间. 性能优化包含很多方面,例如优化查询速度,优化更新速度和优化MySQL服务器等.   数据库管理人员可以使用SHOW STATUS语句来查询MySQL数据库的性能. 语法:SHOW STATUE LIKE ‘value’;其中value参数是常用的几个统计参数.

MYSQL设计优化

- - CSDN博客推荐文章
本文将从各方面介绍优化mysql设计的一些方式. (1)定位需要优化的sql语句. 1)show status统计SQL语句频率. 对Myisam和Innodb存储引擎都计数的参数:. SHOW STATUS可以根据需要显示session级别的统计结果和global级别的统计结果. 1.Com_select  执行select操作的次数,一次查询只累加1;.

MySQL优化之Explain

- - 数据库 - ITeye博客
Mysql Explain 详解. 例如: explain select * from t3 where id=3952602;. 二.explain输出解释. | id | select_type | table | type  | possible_keys     | key     | key_len | ref   | rows | Extra |.