`
id.alex
  • 浏览: 22081 次
社区版块
存档分类
最新评论

Mysql 优化

阅读更多
引用

cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
     24  Intel(R) Xeon(R) CPU E5-2630 0 @ 2.30GHz


引用

$free
             total       used       free     shared    buffers     cached
Mem:      49531892    4153752   45378140          0     157772     281952
-/+ buffers/cache:    3714028   45817864
Swap:      1999864          0    1999864



binlog_cache_size5M是 MySQL 用来提高binlog的记录效率而设计的一个用于短时间内临时缓存binlog数据的内存区域,默认才32K
concurrent_insert2MyISAM引擎的数据表可由concurrent_insert 参数来控制是否可以insert语句的并发或insert与select语句的并发。
connect_timeout30The number of seconds that the mysqld server waits for a connect packet before responding with Bad handshake.
innodb_additional_mem_pool_size20M这个参数用来设置 InnoDB 存储的数据目录信息和其它内部数据结构的内存池大小。应用程序里的表越多,你需要在这里分配越多的内存。对于一个相对稳定的应用,这个参数的大小也是相对 稳定的,也没有必要预留非常大的值。如果 InnoDB 用光了这个池内的内存, InnoDB 开始从操作系统分配内存,并且往 MySQL 错误日志写警告信息。默认值是 1MB ,当发现错误日志中已经有相关的警告信息时,就应该适当的增加该参数的大小。
innodb_autoextend_increment 当自动扩展表空间被填满之时,每次扩展空间的大小,默认值是8(单位MB)。
innodb_buffer_pool_size32ginnodb_buffer_pool_size 定义了 InnoDB 存储引擎的表数据和索引数据的最大内存缓冲区大小。和 MyISAM 存储引擎不同, MyISAM 的 key_buffer_size 只能缓存索引键,而 innodb_buffer_pool_size 却可以缓存数据块和索引键。适当的增加这个参数的大小,可以有效的减少 InnoDB 类型的表的磁盘 I/O 。在一个以 InnoDB 为主的专用数据库服务器上,可以考虑把该参数设置为物理内存大小的 60%-80% 。
innodb_change_bufferinginserts在5.5之前。这还不叫change buffer,而是insert buffer;当更新/插入的非聚集索引的数据所对应的页不在内存中时(对非聚集索引的更新操作通常会带来随机IO),会将其放到一个insert buffer中,当随后页面被读到内存中时,会将这些变化的记录merge到页中。当服务器比较空闲时,后台线程也会做merge操作但insert buffer会占用buffer pool,并且在非聚集索引很少时,并不总是必要的,反而会降低buffer pool做data cache的能力,5.5提供了参数innodb_change_buffering来对其进行控制根据官方文档的描述,主要包括以下几个值:1.allThe default value: buffer inserts, delete-marking operations, and purges.2.noneDo not buffer any operations.3.insertsBuffer insert operations.4.deletesBuffer delete-marking operations.(包括delete和update操作)5.changesBuffer both inserts and delete-marking.6.purges
innodb_fast_checksum1innodb_fast_checksum = 1:开启Fast checksum特性
innodb_file_per_table1可以修改InnoDB为独立表空间模式,每个数据库的每个表都会生成一个数据空间。独立表空间:优点:1. 每个表都有自已独立的表空间。2. 每个表的数据和索引都会存在自已的表空间中。3. 可以实现单表在不同的数据库中移动。4. 空间可以回收(除drop table操作处,表空不能自已回收)innodb_flush_log_at_trx_commit 2 抱怨Innodb比MyISAM慢 100倍?那么你大概是忘了调整这个值。默认值1的意思是每一次事务提交或事务外的指令都需要把日志写入(flush)硬盘,这是很费时的。特别是使用电 池供电缓存(Battery backed up cache)时。设成2对于很多运用,特别是从MyISAM表转过来的是可以的,它的意思是不写入硬盘而是写入系统缓存。日志仍然会每秒flush到硬 盘,所以你一般不会丢失超过1-2秒的更新。设成0会更快一点,但安全方面比较差,即使MySQL挂了也可能会丢失事务的数据。而值2只会在整个操作系统 挂了时才可能丢数据。
innodb_flush_methodO_DIRECTinnodb_flush_method则确定日志及数据文件如何write、flush。
innodb_io_capacity1000在合并插入缓冲时,合并插入缓冲的数量为innodb_io_capacity数值的5%。在从缓冲区刷新脏页时,刷新脏页的数量为innodb_io_capacity。
innodb_lock_wait_timeout50MySQL可以自动地监测行锁导致的死锁并进行相应的处理,但是对于表锁导致的死锁不能自动的监测,所以该参数主要被用于在出现类似情况的时候等待指定的时间后回滚。系统默认值是50秒,用户可以根据应用的需要进行调整。
innodb_log_buffer_size10M这是 InnoDB 存储引擎的事务日志所使用的缓冲区。类似于 Binlog Buffer,InnoDB 在写事务日志的时候,为了提高性能,也是先将信息写入 Innofb Log Buffer 中,当满足 innodb_flush_log_trx_commit 参数所设置的相应条件(或者日志缓冲区写满)之后,才会将日志写到文件(或者同步到磁盘)中。可以通过 innodb_log_buffer_size 参数设置其可以使用的最大内存空间。注:innodb_flush_log_trx_commit 参数对 InnoDB Log 的写入性能有非常关键的影响。该参数可以设置为0,1,2,解释如下:0:log buffer中的数据将以每秒一次的频率写入到log file中,且同时会进行文件系统到磁盘的同步操作,但是每个事务的commit并不会触发任何log buffer 到log file的刷新或者文件系统到磁盘的刷新操作;1:在每次事务提交的时候将log buffer 中的数据都会写入到log file,同时也会触发文件系统到磁盘的同步;2:事务提交会触发log buffer 到log file的刷新,但并不会触发磁盘文件系统到磁盘的同步。此外,每秒会有一次文件系统到磁盘同步操作。
innodb_log_files_in_group4The number of log files in the log group. InnoDB writes to the files in a circular fashion. The default (and recommended) value is 2.
innodb_log_file_size1000MInnodb 引擎 log 文件大小, 在  IO <<< +-  >>>恢复时间 做权衡.
innodb_max_dirty_pages_pct50This is an integer in the range from 0 to 99. The default value is 75. The main thread in InnoDB tries to write pages from the buffer pool so that the percentage of dirty (not yet written) pages will not exceed this value.
innodb_open_files65535作用:限制Innodb能打开的表的数据。分配原则:如果库里的表特别多的情况,请增加这个。这个值默认是300。请适当的增加table_cache
innodb_read_io_threads4innodb_read_io_threads/innodb_write_io_threads1、异步IO线程数innodb_read_io_threads/innodb_write_io_threads 异步IO线程数
innodb_rollback_on_timeoutOFF事务会回滚到上一个保存点,InnoDB在执行每条SQL语句之前,都会创建一个保存点. 但事务尚未提交
innodb_stats_on_metadata00为关闭索引统计.默认是开启,可能对线上环境有影响.
innodb_thread_concurrency16这个是innodb内核的并发线程处理参数
innodb_write_io_threads16innodb_read_io_threads/innodb_write_io_threads 异步IO线程数, 有文章说 4/4 就ok了.
join_buffer_size4M在参加JOIN操作的数据列没有索引时为JOIN操作分配的缓存区长度(默认设置是128K)
key_buffer8M疑似: key_buffer_size , 网上并没有找到 key_buffer 资料.
key_buffer_size索引缓存的大小,默认值是16M
max_allowed_packet24M当MySQL客户端或mysqld服务器收到大于max_allowed_packet字节的信息包时,将发出“信息包过大”错误,并关闭连接。服务器默认max-allowed-packet为1MB
max_binlog_size500M二进制日志文件的最大长度(默认设置是1GB)
max_connections3100修改最大连接数
max_connect_errors1500max_connect_errors是一个MySQL中与安全有关的计数器值,它负责阻止过多尝试失败的客户端以防止暴力破解密码的情况。max_connect_errors的值与性能并无太大关系。
max_user_connections3000这个用户的最大连接数
myisam_sort_buffer_size20M设置恢复表之时使用的缓冲区的尺寸
query_cache_size查询结果缓存, 会影响'写'的性能.
query_cache_type0关闭 Query Cache 功能,任何情况下都不会使用 Query Cache
read_buffer疑似 read_buffer_size
read_buffer_size4M为从数据表顺序读取数据的读操作保留的缓存区的长度(默认设置是128KB);
read_rnd_buffer_size5M类似于read_buffer_size选项,但针对的是按某种特定顺序(比如使用了ORDER BY子句的查询)输出的查询结果(默认设置是256K)。
sort_buffer_size4MSort_Buffer_Size 是一个connection级参数,在每个connection第一次需要使用这个buffer的时候,一次性分配设置的内存。
sync_binlog1000sync_binlog=n,当每进行n次事务提交之后,MySQL将进行一次fsync之类的磁盘同步指令来将binlog_cache中的数据强制写入磁盘。
table_cache2048表缓存:在mysql默认安装情况下,table_cache的值在2G内存以下的机器中的值默认时256到512,如果机器有4G内存,则默认这个值是2048,但这决意味着机器内存越大,这个值应该越大,因为table_cache加大后,使得mysql对SQL响应的速度更快了,不可避免的会产生更多的死锁(dead lock)
table_definition_cache2048缓存的表的数量:在MySQL5.1.25 之前的版本中,默认值为128,从MySQL5.1.25 版本开始,则将默认值调整为256
table_open_cache增加table_open_cache,会增加文件描述符,当把table_open_cache设置为很大时,如果系统处理不了那么多文件描述符,那么就会出现客户端失效,连接不上
thread_cache_size256Thread_Cache 中存放的最大连接线程数.  目测 256 比较大


ITeye 弄个大点的Table好费劲.
分享到:
评论

相关推荐

    mysql优化配置大全

    mysql慢可能是配置不对,阅读一下这个可能对你有帮助 ...对于Discuz!... 下面我们了解一下MySQL优化的一些基础,MySQL的优化我分为两个部分,一是服务器物理硬件的优化,二是MySQL自身(my.cnf)的优化。

    php之mysql优化

    mysql优化

    mysql优化及基础面试题

    mysql优化及基础面试题。 什么是慢查询 慢查询日志,顾名思义,就是查询慢的日志,是指 mysql 记录所有执行超过 long_query_time 参数设定的时间阈值的 SQL 语句的日志。该日志能为 SQL 语句的优化带来很好的帮助...

    mysql 优化工具.rar

    为什么要开发这个MySQL 优化工具(Why)   “一键优化”功能,可以优化本地/远程需要优化的机器,将繁琐的优化工作“傻瓜”式操作 根据您的业务需求Step By Step优化的MySQL服务器参数,起到指引的作用,简化用户...

    MySql优化.rar

    MySql优化

    MySQL优化大揭秘.rar

    MySQL优化

    MYSQL优化-一篇很好的优化文章

    21. MYSQL扩展/优化-提供更快的速度 22. MYSQL何时使用索引 23. MYSQL何时不使用索引 24. 学会使用EXPLAIN 25. 学会使用SHOW PROCESSLIST 26. 如何知晓MYSQL解决一条查询 27. MYSQL非常不错 28. MYSQL应避免...

    我的mysql 优化日记

    我的mysql优化日记 我的mysql优化日记 我的mysql优化日记 我的mysql优化日记

    mysql优化笔记+资料

    详细介绍了mysql的优化方法,资料包里包含word文档,ppt和图片

    mysql优化十大技巧

    mysql优化技巧mysql优化技巧mysql优化技巧mysql优化技巧mysql优化技巧mysql优化技巧mysql优化技巧mysql优化技巧mysql优化技巧mysql优化技巧mysql优化技巧mysql优化技巧mysql优化技巧mysql优化技巧mysql优化技巧mysql...

    mysql优化-sql高级

    mysql优化从以下几个方面介绍 mysql的架构 索引优化分析 查询截取分析 mysql锁机制 主从复制

    大型门户网站核心技术-Mysql优化

    教程名称:大型门户网站核心技术-Mysql优化 课程目录:【】Mysql优化 资料【】Mysql优化01关键技术【】Mysql优化02表的设计【】Mysql优化03慢查询(一)【】Mysql优化04慢查询(二)【】Mysql优化05慢查询(三)【】Mysql...

    Mysql优化方法介绍.ppt

    Mysql优化方法介绍.ppt

    windows平台mysql优化配置

    windows平台mysql优化配置

    MySql 优化.doc

    MySql优化——MySql 优化.doc

    MySql优化.pdf

    MySql优化.pdf

    深入浅出的mysql优化大全

    深入浅出的mysql优化大全!网易数据库专家写的

    2h拿下MySQL优化.pdf

    经典案例实例分析,通过演示教你掌握基本的mysql优化

    非常实用的mysql优化规则

    非常实用的mysql优化规则,问题:,若是能够恰当的使用sql规则,便能极大提高系统的效率。那么如何实现sql语句和表的优化呢?

Global site tag (gtag.js) - Google Analytics