注:由于slideshare长期被墙,本PPT的新浪微盘地址是: MVCC(Oracle, InnoDB, PostgreSQL) 大家可以从此地址,下载并阅读。
注:由于slideshare长期被墙,本PPT的新浪微盘地址是: Buffer Pool Implementation InnoDB vs Oracle 大家可以从此地址,下载并阅读。
一、前言
Innodb
Plugin引擎开始引入多种格式的行存储机制,目前支持:Antelope、Barracuda两种。其中Barracuda兼容Antelope格式。
另外,Innodb plugin还支持行数据压缩特性,不过前提是采用Barracuda行存储格式。
表空间启用压缩的前提是innodb表空间文件存储格式修改成:Barracuda,需要修改2个选项:
innodb_file_format = "Barracuda"
innodb_file_format_max = "Barracuda"
下面是对比测试结果
二、表空间压缩比
1. 某项目数据表压缩比
2.1 数据表tabA
压缩之前
-rw-rw---- 1 mysql mysql 19038208 Mar 21 13:59
tabA.ibd(18.1G)
压缩之后
-rw-rw---- 1 mysql mysql 9.2G Mar 21 19:11 tabA.ibd
相差:12414976 ~= 12124 MB ~= 11.83 Gb,节约49.32%
2.2 数据表tabB
压缩前
-rw-rw---- 1 mysql mysql 1.1G Mar 21 13:51 tabB.ibd
…
作者:吴炳锡 来源:http://www.mysqlsupport.cn/ 联系方式: wubingxi#gmail.com 转载请注明作/译者和出处,并且不能用于商业用途,违者必究.
在MySQL数据库连接数很多,而且大多属于活跃的状态时MySQL机器基本上负载很高,属于基本上快要死去的状态了.
这时怎么办呢?
有可能两个办法.
第一先限制Innodb的并发处理.如果innodb_thread_concurrency = 0 可以先改成 16或是64
看机器压力,如果
非常大,先改成16让机器的压力下来,然后慢慢增达,适应自已的业务.
处理方法: set global innodb_thread_concurrency=16;
第二: 对于连接数已经超过600或是更多的情况,可以考虑适当的限制一下连接数,让前端报一下错,也别让DB挂了.
…
Bug现象描述 master为MySQL 5.5.20,slave用MySQL 5.1.49挂起,然后slave执行以下命令: change master to master_host=’127.0.0.1′, master_user=’backup’, master_password=’1234′, master_port=3306, master_log_file=’mysql-bin.000009′, master_log_pos=***; 若master_log_pos指定的位置出错,则master直接崩溃退出。 重现环境搭建 启动数据库(主库) D:\mysql\mydata12\master-bin\mysqld.exe –defaults-file=”D:\mysql\mydata12\master-bin\my.ini” 登录数据库(主库) D:\tnt0326\Src\client\Debug\mysql.exe –defaults-file=”D:\mysql\mydata12\master-bin\my.ini” –uroot grant replication slave,replication client on *.* to backup@127.0.0.1 identified by ’1234′; show master status \G 启动数据库(备库) MySQL 5.5.20 … 继续阅读 →
按照惯例,如果前端应用程序采用长连接的话,那么innodb buffer pool最高可设置为物理内存大小的80%。
不过部分在线DB由于并发连接数较高,每个线程分配的内存较多,或由于业务上升,并发事务数突然较大幅度提升,加上innodb
buffer pool较大,导致了严重的内存交换(swap)发生。
鉴于此,我们建议在这些活跃度较高/并发连接数较高的在线DB服务器上,适当调低innodb buffer
pool的大小(例如先调低为60%),
同时也适当调低各线程级别的内存参数,例如:tmp_table_size,
sort_buffer_size等,避免因为内存交换而影响服务器性能。尤其是
tmp_table_size,不少人以为是全局变量,设置的非常大,甚至见过一个设置为 1GB 的,太吓人了。
如果绝大多数引擎是InnoDB的话,建议调低key_buffer_size到很小的值,同时可以关闭query …
[获取更多]