MySQL|MySQL自传( 二 )



后来有个叫InnoDB的小伙子主动来帮我 , 我太开心了 , 当很多活过来的时候 , 我慢慢开始推荐InnoDB哥哥处理了 , 他确实不错呀 , 可以几件事情同时开工 , 从不出错 。 我慢慢爱上他了 , 但是我一直放不下MyISAM , 直到2010年 , 我摊牌了 , 正式和InnoDB哥哥在一起 , 开始新的生活 , 和InnoDB磨合一段时间 , 越来越融洽了 。

到2013年 , 我刚满18岁 , 代号升级为V5.6 , InnoDB也更强大 , 效率提升了2倍 , 另外我还把很多运行数据记录在performance_schema了 , 遇到问题可以很快诊断原因 。 现在全世界的程序员都喜欢我 , 还有很多DBA(数据库管理员)把我做事情的方法研究得非常透彻 , 持续给我改进意见 。 我已经不是当年的丑小鸭了 , AWS、Facebook这些土豪们也喜欢和我合作 。
「独门秘籍」从小爸爸教了我一些独门秘籍 , 我感觉自己虽然内功不够 , 但是招式很牛 , 初学者都非常喜欢 , 我给大家介绍几招哈:
一、主备分身术
所谓分身术 , 就是主备可以同时处理事情 , 这可是我的拿手绝活 。

分身
我可以瞬间变出一个分身 , 甚至是多个分身 , 当事情很多的时候 , 这些分身可以一起上 , 那效率杠杠的 。 我的分身术在互联网圈子太实用了 , 可以秒秒钟搭起读写分离架构 , 不要太爽 。

而那些老前辈的分身术比较老套 , 他们通常是一个人单打独斗 , 偶尔也培养个分身 , 在自己扛不住时候换分身顶上 , 平时分身都是在一旁看着 。 后来他们也学习我的分身术 , 但总感觉是照猫画虎 , 哈哈 。

不过Oracle那个老家伙功力深厚 , 有本RAC秘籍 , 说非常牛 , 我一直没有学会 。
二、秀外慧中掌(SHOW)
在我这里 , 可以用SHOW方法查看很多内部资料 , 如分身、库、表、视图、函数、用户、帮助 , 啥都可以SHOW出来 , 一展芳容啊 。 DBA们特别喜欢这些招术 。

  • show slave status; # 查看分身(备库)状态
  • show processlist; #查看当前连接信息 , 可以看到当前谁在访问我 , 还可以看到当前运行的慢SQL了
  • show databases;  #查看数据库列表
  • show tables; #查看表列表
  • show create table t1; #查看表定义
  • show grants for user1; #查看用户有哪些权限
  • show engine innodb status; #查看innodb运行细节 , 什么死锁、内存信息都在这里了
而老前辈们总是把自己那点东西藏着掖着 , 根本没这项技能 。
三、翻页神器
大家搜索信息的时候 , 经常会如下翻页显示
我的翻页神器就是专门干这个事情 , 非常厉害 , 看招:
  • #MySQL使用limit的分页语法 , 查看从第90条开始的10条数据

  • select * from user
  • order by name limit 9010
那些老家伙是下面的打法 , 实在是丢人 , 三招打完 , 感觉还是云里雾里:

  • #Oracle使用rownum分页语法
  • select *
  • from(
  • select rownum as rn
  • a.*
  • from user a
  • order by name
  • where rownum<100
  • )
  • where rn>90
后来SQL标准组织老大爷们搞了个新的分页语法 , 如下是做的样板 , 你看懂了吗 , 反正我看了后感觉要头晕 , 记不住啊 。


新的分页语法
好了 , 我的独门秘籍还有很多很多 , 以后再娓娓道来 , 接下来讲讲我的几次重大变故 。

「嫁入豪门/背井离乡」我家本来在瑞典的MySQL AB , 在美国也有一些伙伴 。 2008年 , 美国硅谷有个叫SUN的土豪盯上我们家 , 说要给我们10亿美金发展 , 家人们没有经得住诱惑 , 于是我们就搬到SUN的地方 。 SUN家大业大 , 他们老大叫SPARC(一种精简指令集CPU架构 , 和Intel是对头) , 老二叫Solaris(一种UNIX操作系统 , 老古董了) , 还有只赚吆喝不赚钱的Java , 虽然家大业大 , 但总感觉是虚胖 , 不是一般的虚胖 。 很快 , 到2009年 , 大土豪Oracle前辈用74亿美金把SUN买了 , 我的天啊 , 我在SUN家人还没认全 , 又要搬家了 。