`
wsql
  • 浏览: 11815518 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

MySQL Innodb数据库性能实践

 
阅读更多
在实际工作中,经常有同事问道:MySQL Innodb表记录数多大是合适的?
一般的理解肯定是表越大性能越低,但具体低多少呢,是缓慢下降还是急剧下降,是1000万就下降还是1亿才下降呢?

针对这些问题,我做了一下基准测试,基准测试环境如下:
【硬件配置】
硬件
配置
CPU
Intel(R) Xeon(R) CPU E5620 主频2.40GHz, 物理CPU 2个,逻辑CPU 16个
内存
24G(6块 * 4G DDR3 1333 REG)
硬盘
300G * 3个,SAS硬盘 15000转,无RAID,有RAID卡,且开了回写功能
OS
RHEL5
MySQL
5.1.49/5.1.54
【MySQL配置】
配置项
配置
innodb_buffer_pool_size
18G
innodb_log_file_size
200M
innodb_log_files_in_group
3
sync_binlog
100
innodb_flush_log_at_trx_commit
2
【表配置】

配置项
配置
记录数
1000万,2000万,5000万,1亿
存储引擎
Innodb
行格式
compact
性能测试结果如下:
1)同一张表,不同记录数,测试结果如下:


分析如下:
(1)当表大小小于Inndob buffer pool时,整体性能会随着表记录数的增加而略微降低,但各种操作的性能差别总体不大(例如1KW/2KW是12000TPS,5KW是10000TPS,相差16%)。
(2)当表大小大于Innodb buffer pool(10KW)时,性能急剧下降(从12000降到1000),性能接近高安全性配置的性能,因为此时磁盘IO成为了性能的主要影响因素。
因此,表记录数本身对性能影响不大,关键是表的大小是否小于Innodb buffer pool。

2)不同的表,不同的记录数
为了进一步验证表记录对性能的影响,还验证了另外一种情况:记录数很大但每条记录较短,和记录数较少但每条记录很长两种表对比。
主要对比了Value长度为10(以下简称Value10)和Value长度为250(以下简称Value250)的表的性能。由于Innodb只有在buffer pool大于表大小的时候性能才最高,因此测试对比时为了满足这个条件,Value10的表记录数是10KW,而Value250的表记录数是2KW。


从上图可以看出,即使Value10的表记录数是Value250的表记录数的5倍,但性能反而高出16%左右,由此可以看出,相比表记录数来说,行长度对性能影响更大,行越长性能越低。

【应用建议】
基于以上分析,对于表记录数需要考虑的是记录数的临界点,即:表达到这个记录数后,表大小(数据和索引)超过了Innodb buffer pool的大小;而设计时推荐尽量设计和试用行长度小而精的表。
分享到:
评论

相关推荐

    mysql内核 innodb存储引擎

    内容深入,从源代码的角度深度解析了InnoDB的体系结构、实现原理、工作机制,并给出了大量最佳实践,能帮助你系统而深入地掌握InnoDB,更重要的是,它能为你设计和管理高性能、高可用的数据库系统提供绝佳的指导。...

    MySQL书籍(21本)目录知识点(思维导图加图).rar

    2013年《MySQL技术内幕- InnoDB存储引擎(第2版)》 2013年《MySQL入门经典》 2013年《高性能MySQL(第3版)》 2014年《深入浅出MySQL-数据库开发、优化与管理维护》 2014年《涂抹MySQL》 2015年《MySQL教程》 2015年...

    2017最新老男孩MySQL高级专业DBA实战课程全套【清晰不加密】,看完教程月入40万没毛病

    12-为什么选择MySQL数据库即MySQL优势介绍.avi 13-MySQL数据库分类与版本升级知识讲解.avi 14-MySQL数据库商业版与社区版区别.avi 15-MySQL数据库的发布版本知识讲解.avi 16-MySQL数据库发展的三条产品线介绍.avi 17...

    高性能MySQL pdf 免费-part1

    《高性能MySQL》汇聚了著名MySQL 专家在实践中构建大型系统的多年宝贵经验,指导你如何使用MySQLTF发出快速可靠的系统。的第二版着眼于健壮性、安全性及数据完整性,涵盖了 MySQL性能的细微之处。  《高性能MYSQL》...

    MySQL管理之道 性能调优、高可用与监控.part2.rar

    《mysql管理之道:性能调优、高可用与监控》由资深mysql专家撰写,以最新的mysql版本为基础,以构建高性能mysql服务器为核心,从故障诊断、表设计、sql优化、性能参数调优、mydumper逻辑、xtrabackup热备份与恢复、...

    2013中国数据库大会ppt(1)

    eXtremeDB内存数据库性能提升方案分享.pdf 运用之妙 存乎一心—— Oracle优化器案例与算法解析.pdf DM7 MPP架构——同时满足OLAP与OLTP需求.pdf SAP 让大数据飞翔.pdf 阿里数据库关键技术.pdf 基于Oracle的SQL优化...

    MySQL网络培训精品班-Inside君姜承尧

    课程紧密结合互联网公司实践,学员能够领略到BAT、网易等大公司的数据库架构与应用案例 课纲结合最新的MySQL 5.6、5.7版本,使得学员学到的都是最新的内容 充分掌握课程内容的学员年薪至少在25W起,第1期的学员已经...

    高性能MySQL part2 免费

    《高性能MySQL》汇聚了著名MySQL 专家在实践中构建大型系统的多年宝贵经验,指导你如何使用MySQLTF发出快速可靠的系统。本书的第二版着眼于健壮性、安全性及数据完整性,涵盖了 MySQL性能的细微之处。  《高性能...

    2013年中国数据库大会PPT第一部分

    15.eXtremeDB内存数据库性能提升方案分享.pdf 16.运用之妙 存乎一心—— Oracle优化器案例与算法解析.pdf 17.DM7 MPP架构——同时满足OLAP与OLTP需求.pdf 18.SAP 让大数据飞翔.pdf 19.阿里数据库关键技术.pdf 20....

    2013中国数据库大会ppt(3)

    eXtremeDB内存数据库性能提升方案分享.pdf 运用之妙 存乎一心—— Oracle优化器案例与算法解析.pdf DM7 MPP架构——同时满足OLAP与OLTP需求.pdf SAP 让大数据飞翔.pdf 阿里数据库关键技术.pdf 基于Oracle的SQL优化...

    C++程序设计实践项目——学生信息管理系统,基于Qt+MySQL.zip

    自1998年首次发布以来,MySQL以其卓越的性能、可靠性和可扩展性,成为全球范围内Web应用程序、企业级解决方案以及其他各种数据处理场景的首选数据库平台之一。 以下是对MySQL数据库的详细介绍: 核心特性与优势 ...

    NOSQL数据库入门到实战 结合实践案例,以任务为驱动.zip

    2、所有数据库对象*不要用mysql关键字命名 3、库表的命名要达到看到此名称,就大概知道是干嘛的 4、临时库表要以tmp_为前缀,日期为后缀 5、备份库表要以bak_为前缀,日期为后缀 6、相同的数据,在所有表中的列名和...

    2023MySQL高频面试题

    MySQL是目前应用最广泛的关系型数据库之一,因此在企业招聘中,MySQL面试题也是非常常见的。以下将对MySQL面试题作一个简要的概述。 首先,MySQL面试题主要可以分为两大类:基础问题和高级问题。基础问题通常涉及到...

    2013中国数据大会ppt(2)

    eXtremeDB内存数据库性能提升方案分享.pdf 运用之妙 存乎一心—— Oracle优化器案例与算法解析.pdf DM7 MPP架构——同时满足OLAP与OLTP需求.pdf SAP 让大数据飞翔.pdf 阿里数据库关键技术.pdf 基于Oracle的SQL优化...

    MySQL 5.5.x my.cnf参数配置优化详解

    一直有耳闻MySQL5.5的性能非常NB,所以近期打算测试一下,方便的时候就把bbs.kaoyan.com升级到这个版本的数据库。今天正好看到一篇有关my.cnf优化的总结,虽然还没经过我自己的实践检验,但从文章内容来说已经写的很...

    TreeOne:功能强大的通用分层树数据结构设计模型,这是开发中的最佳实践

    树一功能强大的通用分层树数据结构设计模型是开发中的最佳实践。表数据结构CREATE TABLE `tree` ( `id` int(11) NOT NULL, `name` varchar(30) NOT NULL, `level` mediumint(4) NOT NULL DEFAULT '1', // Level ...

Global site tag (gtag.js) - Google Analytics