《MySQL核心内幕》终于正式发售

MySQ核心内幕在元旦前,终于和大家见面了,目前互动上已经开始出售,相继在当当、卓越也会热卖,还有就是全国各大城市书店也会相继到货,关注很久的朋友此刻该出手时就出手啦^-6,同时在这里也非常感谢大家的支持和鼓励。

在这里我也代表大家,感谢Hiro,给我们提供了一个如此好的机会,去学习去探究这个世界上最流行开源数据库的内幕MySQL的机制,同时也会提升我们对数据库管理系统DBMS相关理论的认识。


SHOW OUR KNOWLEDGE WITH ALL OVER THE WORLD, HERE —-SQL BLOG

InnoDB的”替代品”:Percona XtraDB

关于

XtraDBPercona TeamInnoDB的基础上开发出来的一个更加强大的存储引擎,它百分百的兼容InnoDB,我们可以用XtraDB来替代为MySQL的发展做出历史性贡献的InnoDB,新的XtraDB引擎将具有更加强大的性能优势,以及良好的扩展性和一些新特性。

Percona20081216日正式对外公布Percona XtraDB存储引擎,当时版本为1.0.2-1。在09年有相继发布了release 3/4/5/8,目前最新的版本为Percona-XtraDB 1.0.4-8

安装XtraDB存储引擎

XtraDB的安装有这么几种:一是现成的RPMS包安装,不过这些包仅限于x86_64RedHat/CentOS 4/5系统下,而且MySQL的版本为5.1.30;还有就是通过整体编译MySQL源码包的安装,即将新的XtraDB引擎的代码整合到MySQL的源码中,进行重新编译。前面这两种都需要重新搭建MySQL数据库,例外还有一种,就是动态的将XtraDB加载进正在运行MySQL中,这个看上去很符合生产的要求。
      » 继续阅读 InnoDB的”替代品”:Percona XtraDB

MySQL 并行了吗?

前些日子与一位同行讨论mysql的并行运行能力。为给那些只为获得答案的看众节省时间。提前下个结论,mysql目前暂不具备并行运行某一查询的能力。相信很多人有一个误解,似乎MySQL 5.4对某一查询带来的性能改进是非常巨大的。事实上,这需要针对具体应用来讲,如果追求某个具体查询的响应时间,5.4 将比5.1或之前的版本差。简单的来说,5.4提高的是并发量,而不是减少单条语句的执行时间。

初次看到这个话题的人要注意几个概念,并行和多线程不是同一个概念。“同时进行”的技术分很多类,有查询间的并行查询内的并行操作内的并行。举个生活中的例子,

  • 如果你与其他人合租房子的话,早上起来后,多个人可以同时刷牙,洗脸和做饭,大家各忙各的(虽然女房客可能会给厕所加上mutex而其他人只能在原地spin)。单单这套房子来说,它在较短的时间内解决了好几个人的早上洗漱问题。这就是查询间并发了。
  • 早上诸多行动中,以刷牙、做饭、吃饭这三个动作为例,我们通常的做法是把微波炉转上,然后刷牙,刷牙结束后,早饭也弄好了(至少我是这么做的),这样我们达到了查询内的并行。
          » 继续阅读 MySQL 并行了吗?

新书写作,意见征集

本站正在策划编写一本MySQL内核书籍。此书面向对象是各高级DBA和大学院校计算机数据库方向的研究生。

考虑到国内尚无此类书籍,我们希望听到更多来自于读者的意见和期望值。

下面贴出简单的目录


MySQL前世今生

MySQL历史

年表

Drizzle

存储引擎

MySQL市场


      » 继续阅读 新书写作,意见征集

MySQL Replication中常见的7种复制架构

在实际应用中,可以根据具体的情况灵活地将主/从结构进行变化组合,下面将给大家介绍一些常见的复制架构,万变不离其宗。在进行各种部署之前,我们还需要遵守这么几条规则:

1. 一个从服务器只能有一个主服务器。

2. 一个主服务器可以有多个从服务器。

3. 无论是主服务器还是从服务器,都要确保各自的Server ID唯一。

4. 一个从服务器可以将其从主服务器获得的更新事件,传递给其它的从服务器;同时,这个从服务器也可以成为其他从服务器的主服务器。

(一)Master-MultiSlave

如图1所示。

m-ms

1 Master/Slave架构

其实,这种架构就是最基础的主从结构的水平扩展,所有的Slave之间没有任何联系,它们都各自独立的与唯一的Master进行连接。这种架构适用于读操作频繁写操作相对比较少的应用。
      » 继续阅读 MySQL Replication中常见的7种复制架构

自建云存储

原本这个话题有点偏离我们博客的主题,但想来有些人还是会感兴趣的。给国内一个很大的IDC做的云存储解决方案。第一步只是一个简单的Demo。

这里先给个架构图,然后加以说明:

(此图是实习生林志帮忙画的,在此表示感谢)

cloud-storage


      » 继续阅读 自建云存储

MySQL Cluster 培训

上次给我们客户做了一个Cluster培训。
分享一下

Mysql Cluster


关于我们提供的培训PPT,请关注我们的读书频道

MySQL Cluster vs. Oracle RAC

最初一直幼稚地认为MySQL的Cluster就是一个双机热备功能,一个active了另一个就只能standy在哪里上傻等着,也分担不了什么请求,然后就是不时做一些备份,保持两台机器数据的完整统一性(类似于Replication)。其实,MySQL Cluster没有那么弱的,只是我最初在体验mysql cluster的时候用的是HA的应用模式,他完全也可以提供LVS的。MySQL Cluster的结构俗称为“shared-nothing”,中文意思是“没什么可共享的”?具体来说它是这么一个情况,自己单打独斗,你说助人为乐吧,它也能上帮忙,可以协同作战,但是各用各的家伙,一个人吃饱天下太平,受到什么瓶呀颈的影响不是多多明显。这种模式在web部署上很流行,它的可扩展性非常好。我想Google就很乐此不疲,人家还专门给又弄了个称呼sharding,有点“破片”的意思,人家就是不用设么很好的装备,有点像我们的红军,五发子弹一杆枪,基本保证就够了,你小日本又能把我们怎么着,你架不住我们人多,给你来个分布式,弄崩溃你,别老觉得我小。SN系统可以把数据分布到不同的数据库节点上,然后按照不同的请求去把用户和请求转到相应的机器上;或是每个节点都有一套完整数据文件副本,按照协同原理一起为应用服务提供数据支持。

而我们的贵族呢Oracle RAC,人家就是小日本,就那么嚣张,说句实话哦,我真的觉得ORACLE的确满强大的,人家有统领行业资本。技术有强弱,但是不应该带有个人的感情色彩,尽管我已经开始歧视Windows了,Oracle是值得我们敬佩,实力就是真理。Oracle RAC是我08年才知道的,是Junaid让我自己去尝试部署,因为总部那边的一台内部项目组的dbserver,负载总是过大,cpu经常跑满。他是我在Techlogix的启蒙老师,让我知道的很多开源技术,用可能的免费产品去尽可能实现硬件或是同样商业软件一样的功能,我们叫它—Techlogix Way。


      » 继续阅读 MySQL Cluster vs. Oracle RAC

MySQL数据库的基础架构

慢慢体会到这么一个道理,基础决定你的深度,深度将会反应你未来的方向。学习技术我们应该按照这么一个思路,开始我们尽可能多的对它的原理做一定程度的了解,这样我们在实际应用中会有更多的体会,同时我们操作的目的性也会更加明确,查找问题的时候而不是单凭经验去做,更多的时候我们会根据对它结构原理的理解程度去判断分析从而得到最终的解决。

不要在学一个新东西的时候,还是很“本能”地去试图,通过安装它来开始我们的第一步;磨刀不误砍柴功。言归正传,开始我们MySQL体验。

mysqlarch

噗嗤,这么大一个图暴露在你的面前,很兴奋吧!这就是MySQL数据库的一个详细的基础架构图,它可以分为三层:第一个浅色的模块是应用层,中间四个深色的模块为逻辑层,最下面那个深色模块右侧的圆柱体是它的物理层。接下来让我们更进一步去走进“她”,了解每部分的功能。


      » 继续阅读 MySQL数据库的基础架构