睡前小故事之MySQL起源

  • MySQL起源
  • 作者介绍

整理来自网络

MySQL起源

MySQL的海豚标志的名字叫“sakila”,它是由MySQLAB的创始人Monty从用户在“海豚命名”的竞赛中建议的大量的名字表中选出的。获胜的名字是由来自非洲斯威士兰的开源软件开发者AmbroseTwebaze提供。根据Ambrose所说,Sakila来自一种叫SiSwati的斯威士兰方言,也是在Ambrose的家乡乌干达附近的坦桑尼亚的Arusha的一个小镇的名字。

关于MySQL的命名,Monty的前妻生育有女儿米(My),MySQL得名于她,而MariaDB是以其第二任妻子生的女儿玛莉亚(Maria)命名的。

MySQL的历史最早可以追溯到1979年,那时Oracle也才小打小闹,微软的SQL Server影子都没有。有一个人叫Monty
Widenius,
为一个叫TcX的小公司打工,并用BASIC设计了一个报表工具,可以在4M主频和16KB内在的计算机上运行。过了不久,又将此工具,使用C语言重写,移植到Unix平台,当时,它只是一个很底层的面向报表的存储引擎。这个工具叫做Unireg。

可是,这个小公司资源有限,Monty天赋极高,面对资源有限的不利条件,他反而更能发挥潜能,总是力图写出最高效的代码。并因此养成了习惯。与Monty同在一起的还有一些别的同事,很少有人能坚持把那些代码持续写到20年后,而Monty却做到了。
1990年,TcX的customer
中开始有人要求要为它的API提供SQL支持,当时,有人想到了直接使用商用数据库算了,但是Monty觉得商用数据库的速度难令人满意。于是,他直接借助于mSQL的代码,将它集成到自己的存储引擎中。但不巧的是,效果并不太好。于是,
Monty雄心大起,决心自己重写一个SQL支持。

1996年,MySQL 1.0发布,只面向一小拨人,相当于内部发布。到了96年10月,MySQL
3.11.1发布了,呵呵,没有2.x版本。最开始,只提供了Solaris下的二进制版本。一个月后,Linux版本出现了。

紧接下来的两年里,MySQL依次移植到各个平台下。它发布时,采用的许可策略,有些与众不同:允许免费商用,但是不能将MySQL与自己的产品绑定在一起发布。如果想一起发布,就必须使用特殊许可,意味着要花银子。当然,商业支持也是需要花银子的。其它的,随用户怎么用都可以。这种特殊许可为MySQL带来了一些收入,从而为它的持续发展打下了良好的基础。(细想想,PostgreSQL曾经有几年限入低谷,可能与它的完全免费,不受任何限制有关系)。
MySQL3.22应该是一个标志性的版本,提供了基本的SQL支持。

1999-2000年,有一家公司在瑞典成立了,叫MySQLAB,公司名中的“AB”是瑞典语“aktiebolag”或“股份公司”的首字母缩写。可将其翻译为“MySQL有限公司”。事实上,MySQL有限公司和MySQLGmbH均是MySQL
AB子公司的名称。它们分别位于美国和德国。雇了几个人,与Sleepycat合作,开发出了 Berkeley DB引擎,
因为BDB支持事务处理,所以,MySQL从此开始支持事务处理了。

2000年4月,MySQL对旧的存储引擎进行了整理,命名为MyISAM。同时,2001年,Heikiki
Tuuri向MySQL提出建议,希望能集成他们的存储引擎InnoDB,这个引擎同样支持事务处理,还支持行级锁。
如今,遗憾的是,BDB和InnoDB好像都被Oracle收购了,为了消灭竞争对手,哪怕是开源的,都是不择手段。MySQL与InnoDB的正式结合版本是4.0。到了MySQL5.0,2003年12月,开始有View,
存储过程之类的东西,当然,其间, bug也挺多。

在2008年1月16号 MySQL被Sun公司收购。MySQL的创始人Michael “Monty”
Widenius也弄出MariaDB来对抗MySQL。事情过去了几年,现在Oracle还在不断地为MySQL投入人力物力,MySQL也得到了进一步完善。然而与此同时,MySQL的衍生版以及NoSQL数据库技术的发展也在不断提速

作者介绍

Monty 是一个编程天才。19岁的时候就从赫尔辛基理工大学退学并找了份全职工作,因为在学校里已经不能再教他什么了。33岁的时候他发布了
MySQL,世界上最有名的开源数据库,除了一个库之外,他编写了数据库的全部东西。55岁的时候他抛开年龄问题,现在仍是公司的最好的程序员。

Monty 出生于1962年的赫尔辛基,Monty 1978年买了他的第一台个人电脑,为了买这台电脑他用了整个夏天在马路上铺沥青。Monty
很快发现他很擅长写代码——那些对于其他人来说很复杂的事情对他来说却很简单,他很快全身心投入到他的工作上了。“三个小时就像几分钟,很快就过去了。”
Monty
说。“简单的说,这就像是在看一本很好很好的书。或者玩一个游戏。你知道当你开始玩游戏,很快三个小时就过去了。这就是我写代码的感觉。”

当其他人去参加聚会的时候,Monty 在家里写代码。他学会了计算机的输入和输出。他把 BASIC
发挥到了极致。“学校不知道编程不像其他的语言和历史学科,其他学科只需要学习。” Monty
说:“除了在学校学习还不够,顶级黑客,这只有1/1000的概率。他们在所有时间,10个小时,16个小时,每天,年复一年都在用于编码。这不是每个人都想做的事情。大多数的人都偏向于拥有一个人生。”在
Monty 的眼中,好的代码就是写了一次以后永远不会再改动。从性能上来讲,他是最优的,而且总是可以不重写的。

1980年,17岁的 Monty
陷入了编程中,他需要增加他电脑的存储空间,从8KB到16KB。因为芬兰没有商店卖他想要的,后来他就乘船来到了瑞典 Allan Larsson
的一家电脑店铺。那里 Allan, Monty 见到了 David
Axmark,他们三个保持联系了很多年,在项目上经常互相帮助,偶尔还一起合作。1995年他们一起创立了 MySQL AB。Monty
负责编码,David 和 Allan 做剩下的事情。Monty 早在1981年就开始写了部分 MySQL 代码,他为芬兰公司 Tapio
Laakso Oy 工作的同时也为他和 Allan 一起创建的数据仓库公司工作。但是在 Allan 和 David 的极力说服下 Monty
决定在他现在的代码之上加一层 SQL 层。1996年十月,MySQL
终于发布了,得到了广泛的好评。数据库表现很快,很可靠,学起来很简单,很大部分功劳都归功于 Monty
这些年一直在根据真实用户的反馈进行着持续的改进开发。

睡前小故事之MySQL起源相关推荐

  1. 教你用Python 每日定时推送睡前小故事给你__的人

    本文利用了简单的Python爬虫.邮件发送以及定时任务实现了每天 定时发送睡前小故事 的功能,是一篇步骤详尽的文章. 经过测试,该 程序仍能正常运行 . 最近,某可爱要求我忙完之后给她每晚睡前讲讲小故 ...

  2. 睡前小故事之Html

    睡前小故事之Html HTML的英文全称是 Hypertext Marked Language,即超文本标记语言.HTML是由Web的发明者 Tim Berners-Lee和同事 Daniel W. ...

  3. CSDN日报190318:简单爬虫:给女友定时发送睡前小故事

    程序人生 | 简单爬虫:给女友定时发送睡前小故事 作者:librauee 最近,某可爱要求我忙完之后给她每晚睡前讲讲小故事,我想了下,网络上应该有各种资源,小故事也都能搜得到,但是数量比较少,而且格式 ...

  4. 用Python写个爬虫小程序,给女朋友每日定时推送睡前小故事

    导读:这篇文章利用简单的Python爬虫.邮件发送以及定时任务实现了每天定时发送睡前小故事的功能,是一篇步骤详尽的文章. 最近,某可爱要求我忙完之后给她每晚睡前讲讲小故事,我想了下,网络上应该有各种资 ...

  5. 给女朋友推送睡前小故事

    上一篇写了给女朋友推送天气的,但是未免太单调,来个推送睡前小故事 这次用的是这个网站http://www.tom61.com/ertongwenxue/shuiqiangushi/index_2.ht ...

  6. python 提取网页正文_用Python写个爬虫小程序,给女朋友每日定时推送睡前小故事...

    ↑ 关注 + 星标 ,每天学Python新技能后台回复[大礼包]送你Python自学大礼 导读:这篇文章利用简单的Python爬虫.邮件发送以及定时任务实现了每天定时发送睡前小故事的功能,是一篇步骤详 ...

  7. 齁甜齁甜!用代码给女朋友每日定时推送睡前小故事

    作者 | 老肥 来源 | 老肥码码码 这篇文章是去年我在博客上写的一篇基础爬虫,利用了简单的Python爬虫.邮件发送以及定时任务实现了每天定时发送睡前小故事的功能,是一篇步骤详尽的文章.经过测试,该 ...

  8. 每天定时给你的女朋友发送睡前小故事其二

    我们在文章<每天定时给你的女朋友发送睡前小故事其一>中说了如何爬取故事并且发送,并且已经达到目的了,那么我们如何在我们的windows上设置定时任务,每天按时的执行我们的代码呢?接下来听我 ...

  9. 听故事--114个儿童睡前小故事(全文+在线听)

    单击就可听,并有全文.1一只丑小鸭的悲剧2一只小老鼠3一根了不起的木棍4七十二变5两只尾巴打结的老鼠6买鞭炮7会唱歌的秘密8会学猫叫的小老鼠9会打鸣儿的大老虎10会说话的卷心菜11候补队员12公主的猫 ...

最新文章

  1. (数论)51NOD 1135 原根
  2. 博客作业02---线性表
  3. mysqlbinlog工具_带你解析MySQL binlog
  4. docker 覆盖 entrypoint_跟我一起学docker(八)--Dockerfile
  5. bom展开算法 java程序实现_java实现aprior算法
  6. 资源冲突导致启动黑屏问题
  7. 对SQLite数据库操作 操作db文件
  8. 微信公众号运营推广用户主动分享背后的秘密
  9. python模拟支付宝扫码登录_Python接入支付宝进行PC端支付
  10. 2016中国方案商大会在京成功召开
  11. 学习笔记:直面配分函数(待完善)
  12. 我叫mt4服务器维护时间,我叫MT4:4月11日停机维护公告
  13. java实现点歌操作_Java中linked list集合实现KTV点歌台功能
  14. 最新VMware Workstation 9.0 / Player 5.0 / Fusion 5.0/VMware Tools 9.2.0 不同平台正式版下载
  15. 应届生拿到offer之后的流程_应届生求职的一般流程和手续
  16. Android P 按键音分析
  17. Java中使用json时java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher问题解决
  18. html5独立钻石棋,独立钻石跳棋问题的C++实现
  19. MySQL 8.0,MySQL 5.7,MySQL5.6,MySQL 5.5 特性对比
  20. 3000字英文随笔(挽救下语感)

热门文章

  1. Block的引用循环问题 (ARC non-ARC)
  2. JavaScript的this关键字的调用位置和绑定
  3. 用css实现星级评分效果
  4. Linux驱动(1)--关于驱动的概述
  5. 7-1 射击游戏 (20 分)
  6. android sdk版本升级,个推 Android SDK 老版本升级2.9.+
  7. 虚拟服务器声卡,如何使用虚拟声卡?虚拟声卡安装教程!
  8. html语言怎样设置密码类型,html – 在使用contenteditable div时模仿密码类型输入
  9. linux查看程序写文件内容,Linux 文件内容查看命令
  10. java android长连接_基于Java Socket的自定义协议,实现Android与服务器的长连接(一)...