TokuDB && InnoDB insert压力测试对比
1 测试环境指标测试环境机型DELL PE R720(2U PC Server)CPUXeon E5-2620(6核,12线程,2.0GHz, L3 15MB) * 2内存32G(4G * 8)阵列卡及设置PERC H710,512MB,BBU(FW:12.10.1-0001),RAID 1+0FORCE WB硬盘15K RPM 300G SAS * 8网卡Intel 1GbE操作系统RHEL 5.8文件系统xfsMySQL版本5.5.36测试工具mysqlslap2 测试实例mysqlslap –S /data/mysql/test_3314/mysql.soc
MySQL 临时表与dstat mysql临时表监控插件开发
临时表简介MySQL在执行SQL查询时可能会用到临时表,一般而言,用到临时表就意味着性能较低。MySQL临时表可分:内存临时表和磁盘临时表,磁盘临时表使用MyISAM存储,而内存临时表则使用Memory引擎。MySQL使用内存临时表来存放查询的中间结果集,如果中间结果集大于临时表的容量设定,又或者中间结果集含TEXT或BLOB列类型字段,则MySQL会把其转化为磁盘临时表。Linux平台缺省是/
MySQL Schema设计(一)范式不能当'范'吃
RDBMS之父Codd于1970年代初提出范式,其出发点是为了减少数据库中数据冗余,增进数据的一致性。但冗余是奢侈的,因为那个年代的存储空间极其昂贵。理解完这一背景并对范式的持续深入后,目的是为了能更好地利用及打破规范和标准。毕竟范式带来了一些问题:● 紧耦合,表之间表现为强依赖,在业务高速增长后,将导致拆分的老大难问题● Join成本,表关联开销大,内
索引的另一个好处及其运用实例介绍
索引用来加速查询或者是件家喻户晓的事,但还有一优势是:降低排序成本下面用2个例子来分析运用实例例1:优化排序分页原语句:select * from t order by col limit 100000,10;改进后语句:select * from t where col >= (select col from t order by col limit 100000,1) limit 10;改进后的好处:1)无需排序(排序只在非聚簇索引col上进行)2)无需回表(利用覆盖索引即可回答查询)例2:消除filesort什么是filesort
MySQL性能医生:OrzDBA
[root@even ~]# svn co http://code.taobao.org/svn/orzdba/trunkA trunk/orzdba_rt_depend_perl_module.tar.gzA trunk/orzdbaA trunk/orzdba工具使用说明.pdf取出版本 4。[root@even trunk]# chmod +x orzdba需要在代码160行左右配置MySQL的相关验证信息,如username,password,host,port,sock等㈠ 查看MySQL响应时间(rt)先安装tcprstat# wget http://github.com/downloads/Lowercases/tcprstat/tcprstat-static.v0.3.1.x86_64# ln -sf /root/tcprs
浅析MySQL 表锁
因为MySQL独树一帜的存储引擎架构,导致MySQL可在2个地方实现锁机制:Server层和存储引擎层存储引擎层可通过接受Server层传递来的锁类型而自行决定该如何给数据上锁表锁是在Server层实现的锁定机制,MyISAM并没有自己实现,则是完全使用Server层传递来的表锁表锁优点是附加成本低,缺点是可支持的并发度非常之小现阶段MySQL公认的2个经典版本是5.1和5.5,然而5.5引入元数据锁,
MySQL 优化Limit分页
很多时候、我们需要选择出从指定位置开始的指定行数、此时、limit笑了 对于limit的定义是: limit x,y 表示从第x行开始选择y条记录 在业务需要分页操作的时候、我们通常采用limit+order by这对洗剪吹组合、高端洋气上档次 然而、当翻到非常靠后的页面时、MySQL需要花费大量的时
MySQL 讨厌哪种类型的查询
㈠ 任何查询都讨厌 只要是查询、MySQL都讨厌、执行查询最快的方式就是不去执行 缓存为王、比如Redis或者memcache ㈡ 查询结果集最小 尽量基于主键或者二级索引来查询、通过覆盖索引避免回表来节省IO 如:&
MySQL HINT:Straight_JOIN
来自生产环境的朋友、可能都会碰到: 原本运行良好的查询语句,过了一段时间后,可能会突然变得很糟糕 一个很大可能的原因就是数据分布情况发生了变化 从而导致MySQL优化器对驱动表的选择发生了变化,进而出现索引失效的情况 所以、闲着蛋疼喝咖啡的时候、应该多收集两下表的统
MySQL 数据类型的最优选择
慎重选择数据类型很重要、为啥哩?可以提高性能、原理如下: ● 存储(内存、磁盘)、从而节省I/O(检索相同数据情况下) ● 计算、进而减负CPU负载 数据类型总体可分三种:数字、字符和时期 ㈠ 数字 &nbs
从数据库层面理解:随机 I/O & 顺序 I/O
在谈这俩概念前、先来说说 大I/O vs. 小I/O 通常、我们把 <=16KB 的I/O认为是小I/O、而 >=32KB 的I/O认为是大I/O 了解I/O的大小、影响到后期对缓存、RAID类型、LUN的一些属性的调优 当前大多数数据库使用的都是传统的机械磁盘 因此、整个系统设计要尽可能顺序I/O 避免昂贵