MySQL高级技术

MySQL高级技术,各种优化,提高,技巧等。

[深入理解MySQL系列] - sort_buffer

注:本系列文章主要探讨 MySQL 内存利用以及执行计划相关的一些知识点,从而为 MySQL 优化打下更好的基础。

环境说明

OS: AS4U6, 2.6.9-67.0.15.ELsmp, 16G Ram, MD3000阵列, xfs文件系统
MySQL 5.1.26 - percona(innodb plugin, innodb stat, user stat, msl, show patch, acc-pslist 补丁)

[InnoDB系列] - InnoDB VS PBXT实测

1、前言

PBXTPrimeBase 公司推出的MySQL插件引擎,其功能和 InnoDB 类似,主要特性如下:

  • MVCC Support:
    MVCC stands for Multi-version Concurrency Control. MVCC allows reading the database without locking.
  • Fully ACID complient:
    This means that transactionally safe, and able to handle multiple concurrent transactions.
  • Row-level locking:
    When updating, PBXT uses row-level locking. Row-level locking is also used during SELECT FOR UPDATE.
  • Fast Rollback and Recovery:
    PBXT
    uses a specialized method to identify garbage which makes "undo"
    unncessary. This make both rollback of transactions and recovery after
    restart very fast.
  • Deadlock Detection:
    PBXT identifies all kinds of deadlocks immediately.
  • Write-once:
    PBXT
    uses a log-based storage which makes it possible to write transactional
    data directly to the database, without first being writen to the
    transaction log.
  • Referential Integrity:
    PBXT supports foreign key definitions, including cascaded updates and deletes.
  • BLOB streaming:
    In combination with the BLOB Streaming engine PBXT can stream binary and media directly in and out of the database.

[InnoDB系列] - 实例解析Innodb的隔离级别以及锁模式

1、隔离级别为:READ COMMITTED

 

READ COMMITTED

一个有些象Oracle的隔离级别。所有SELECT ... FOR UPDATE和SELECT ... LOCK IN SHARE
MOD语句仅锁定索引记录,而不锁定记录前的间隙,因而允许随意紧挨着已锁定的记录插入新记录。UPDATE和DELETE语句使用一个带唯一搜索条件的唯一的索引仅锁定找到的索引记录,而不包括记录前的间隙。在范围类型UPDATE和DELETE语句,InnoDB必须对范围覆盖的间隙设置next-key锁定或间隙锁定以及其它用户做的块插入。这是很必要的,因为要让MySQL复制和恢复起作用,“幽灵行”必须被阻止掉。

实测Raid5 VS Raid1+0下的innodb性能

1、说明

硬件:
Raid 5: DELL 2950, 8G RAM, 3块SEAGATE SAS 140G 盘构成
Raid 1+0: DELL 2950, 8G RAM, 4块SEAGATE SAS 140G 盘构成

软件:

Red Hat Enterprise Linux AS release 4 (Nahant Update 6)
Linux imysql.cn 2.6.9-67.0.15.ELsmp #1 SMP Tue Apr 22 13:58:43 EDT 2008 x86_64 x86_64 x86_64 GNU/Linux

mysql 5.0.45

sysbench-0.4.8

innodb主要相关参数:

技术相关:

UPDATE 时主键冲突引发的思考

假设有一个表,结构如下:

mysql> CREATE TABLE `a` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `id2` int(10) unsigned NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM;

[InnoDB系列] -- SHOW INNODB STATUS 探秘

原文译自:http://www.mysqlperformanceblog.com/2006/07/17/show-innodb-status-walk-through/

 

很多人让我来阐述一下 SHOW INNODB STATUS 的输出信息, 了解 SHOW INNODB STATUS 都输出了些什么信息,并且我们能从这些信息中获取什么资讯,得以提高 MySQL 性能。

首先,让我们来了解一下 SHOW INNODB STATUS 输出的基础,它打印了很多关于 InnoDB 内部性能相关的计数器、统计、事务处理信息等。在 MySQL 5 中,InnoDB 的性能统计结果也在 SHOW STATUS 结果中显示了。大部分和 SHOW INNODB STATUS 的其他信息相同,在旧版本中还没有这个功能。

SHOW INNODB STATUS 中的很多统计值都是每秒更新一次的,如果你打算利用这些统计值的话,那么最好统计一段时间内的结果。InnoDB 首先输出以下信息:

MySQL 5.1.24rc + innodb plugin尝鲜

1. 前言

oracle 收购 innobase 后,沉寂了将近2年,innodb开发团队一直是在修改bug等,也没见到什么动作。
前几天,他们终于宣布,发布最新的innodb plugin for MySQL 5.1,这个plugin其实等同于innodb引擎,只是可以plugin的方式安装,也可以自己编译。

innodb plugin 的一些主要新特性有:

  • Fast index creation: add or drop indexes without copying the data
  • Data compression: shrink tables, to significantly reduce storage and i/o
  • New row format: fully off-page storage of long BLOB, TEXT, and VARCHAR columns
  • File format management: protects upward and downward compatibility
  • INFORMATION_SCHEMA tables: information about compression and locking
    • Other changes for flexibility, ease of use and reliability
  • Dynamic control of innodb_file_per_table
  • TRUNCATE TABLE re-creates the *.ibd file to reclaim space
  • “Strict mode” to prevent mistakes

MySQL Proxy快速实现读写分离以及负载均衡

1. 安装
下载已经编译好的安装包,或者预编译安装包均可,在这里,使用预编译版本。

[@s1.yejr.com ~]# tar zxf mysql-proxy-0.6.0-linux-rhas4-x86.tar.gz

[@s1.yejr.com ~]# cd mysql-proxy-0.6.0-linux-rhas4-x86

#可以看到有2个目录
[@s1.yejr.com mysql-proxy-0.6.0-linux-rhas4-x86]# ls
sbin  share

技术相关:

[HeartBeat新手上路] -- 测试、后续

4. 测试

可以通过几种方式来模拟节点当掉:关闭网卡,iptables防火墙,当然了,也可以直接关机。由于ha.cf中指定是用bcast的方式来检测节点是否连通,因此采用iptables防火墙时,还需要把广播包给禁用了。

iptables -A input -m pkttype --pkt-type broadcast -j DROP

 

5. 后续

技术相关:

[HeartBeat新手上路] -- 配置

3. 配置

3.1. 编辑hertbeat主配置文件,2个主机上的内容一样。

[root@s1.yejr.com heartbeat-2.1.3]# vi /usr/local/etc/ha.d/ha.cf

## ha的日志文件记录位置。如没有该目录,则需要手动添加
#logfile /var/log/ha_log/ha-log.log
#logfacility local7
#debugfile /var/log/ha_log/ha-debug.log
##使用eth1做心跳监测
bcast eth1
##设定心跳(监测)时间时间为2秒
keepalive 1
warntime 3
deadtime 10
initdead 120
hopfudge 1

技术相关:

页面

Subscribe to RSS - MySQL高级技术