今天试了下在Linux下安装mysql,我只选了server和client两个组件,没有装其他的组件.
安装包的下载可以参见 http://www.mysql.com/downloads/ server端的安装:
[root@oel2 install_mysql]# rpm -ivh
MySQL-server-advanced-5.
【linux】 【mysql】 【innodb】 【Oracle】 【LOG】 【Server】 【database】 …
腾讯互娱内部维护了一个MySQL分支,基于官方5.5.24,实现了类似于Oracle 11g的快速加字段功能,这个分支我们内部称为TMySQL。该功能通过扩展存储格式来实现,原理类似于Oracle 11g,以下介绍下其实现原理。
1. GCS行格式
需要在innodb中实现类似oracle的快速加字段功能,仅仅基于原来的行格式是不行的,必须对其进行扩展。为了保证原MySQL和innodb的兼容性,不改变原存储格式的行为,在线加字段功能是通过新增一种innodb行格式GCS(Game Cloud Storage)来实现,从而避免对其他格式造成影响。
单一字段的索引长度限制为767 bytes,
索引总长度的限制是:
The InnoDB internal maximum key length is 3500 bytes, but MySQL
itself restricts this to 3072 bytes. (1024 bytes for non-64-bit
builds before MySQL 5.0.17, and for all builds before
5.0.15.)
在utf8字符集下,varchar(255) 的[数据部分]占用 255*3=765 bytes,最接近767bytes,
256*3 = 768bytes,已经超过767。
[BIGHD](root@localhost) [cm]> CREATE TABLE `temp_2` (
-> `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
-> `pn` VARCHAR(128) DEFAULT '',
-> `first_path` VARCHAR(256) DEFAULT '',
-> `dir` VARCHAR(255) DEFAULT '',
-> `a` text,
-> PRIMARY KEY (`id`)
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8
->
-> ;
Query OK, 0 ROWS affected (0.15 sec)
[BIGHD](root@localhost) [cm]>
[BIGHD](root@localhost) [cm]>
[BIGHD](root@localhost) [cm]> … |
MySQL 5.6开始支持InnoDB memcached插件,也就是可以通过SQL高效读写memcached里的缓存内容,也支持用原生的memcache协议读写,并且可以实现缓存数据持久化,以及crash recovery、mysql replication、触发器、存储过程等众多特性,详细介绍可以查看:Benefits of the InnoDB / memcached Combination。看起来非常诱人,那就测试下看看吧,是驴子是马拉出来溜溜便知。
- 环境准备
| 测试机 | DELL PE R710 |
| CPU | E5620 @ 2.40GHz(4 core, 8 threads, L3 Cache 12 MB) * 2 |
| 内存 | 48G(8G * 6) |
| RAID卡 | PERC H700 Integrated, … |