
何玉洁 岳清 张良 梁琦
本书从数据库基础理论、数据库实践、数据库设计、国产数据库等方面全面阐述了数据库技术的应用体系。全书理论阐述求精求易,理论与实践环环相扣,重点介绍国产数据库。 本书选用MySQL作为实践平台,附录中的上机实验可作为数据库课程的实验内容,便于读者学以致用。本书可作为普通高等院校计算机科学与技术及相关专业本科生数据库课程的教材,也可作为数据库初学者的入门读物。
MySQL发展史(4大阶段,附带关键版本通俗解读) 一、起源诞生(1979–1995:为啥要做MySQL) 1. 创始人&名字由来 核心开发者叫Monty(迈克尔·维德纽斯),芬兰程序员,早年在瑞典一家小数据公司TcX干活,写了一套底层数据存储工具叫 Unireg 。 后来市面上有个收费轻量数据库mSQL,但速度慢、限制多,他想做一套兼容mSQL接口、更快、免费的数据库。 “My”取自他大女儿的名字,SQL是结构化查询语言,合起来叫MySQL;吉祥物海豚叫Sakila。 2. 诞生背景(1994–1995) 当年小网站、小企业买不起Oracle、DB2这种昂贵商业数据库,市场缺一款轻量、跑在普通服务器、免费能用的数据库。 1995年5月,第一版MySQL内部发布;1996年对外公开1.0版本,先支持Solaris系统,同年推出Linux版本,刚好赶上Web互联网爆发期。 二、野蛮生长开源时代(1996–2008:MySQL AB公司阶段) 1. 公司成立(1999) Monty和合伙人创立MySQL AB公司,采用双许可证模式: - GPL开源免费:个人、中小企业随便用,改代码也要开源; - 商业付费授权:大企业不想开源代码,花钱买商业许可,同时拿官方技术支持。 这套模式让它快速成为LAMP(Linux+Apache+MySQL+PHP)网站标配,全球小网站全在用。 2. 关键里程碑版本(人话翻译) 1. MySQL 3.23(1999) 早期爆款版本,支持简单复制、全文检索;一开始只有MyISAM引擎,速度快但不支持事务、崩溃容易丢数据,适合纯展示类网站(静态资讯站)。 2. MySQL 4.0(2002) 正式集成InnoDB存储引擎(第三方插件),从此MySQL拥有事务ACID、行锁、外键,能做电商、工单、工控业务这类不能丢数据的系统;新增查询缓存、SSL加密连接,多表联查语法完善。 3. MySQL 4.1(2004) 支持UTF8字符集、子查询、预编译SQL,解决中文乱码、复杂报表查询问题。 4. MySQL 5.0(2005,企业级分水岭) 终于补上商业数据库必备功能:存储过程、触发器、视图,和教材《数据库原理》里讲的企业特性完全对齐; 同年Oracle收购InnoDB引擎开发商Innobase,埋下后续收购伏笔 。 5. MySQL 5.1(2008) 分区表、事件调度器、插件化存储引擎架构,支持定时任务、海量数据分块存储,大型网站开始大规模落地。 三、两次收购风波&分支诞生(2008–2010:行业大转折) 1. 2008年:Sun公司10亿美金收购MySQL AB Sun当时手里有Java、Solaris服务器,想补齐开源数据库板块,承诺继续保持MySQL开源、独立开发。 但Sun自身经营持续亏损,撑不住两年就被巨头盯上。 2. 2009–2010:Oracle收购Sun,MySQL归入竞品大厂 Oracle本身卖高价商业Oracle数据库,突然拿下直接竞争对手MySQL,整个开源社区恐慌:怕Oracle故意弱化MySQL、逼大家买自家收费库。 欧盟反垄断调查后,Oracle承诺维持开源协议、开放源码,但创始人Monty彻底失去信心,从公司离职。 3. MariaDB诞生(2009) Monty拉走一大批MySQL原核心开发,fork(复制分支)出MariaDB,用小女儿Maria命名,100%兼容MySQL,完全独立开源,防止单一公司垄断数据库底层。现在很多Linux发行版、云厂商默认替换MySQL为MariaDB。 四、Oracle运营迭代(2010至今:现代MySQL主流版本) Oracle接手后没有废掉MySQL,反而持续投入开发,推出至今企业最常用的三大稳定版本: 1. MySQL 5.5(2010) 重大改动:默认存储引擎改为InnoDB(之前要手动切换),优化InnoDB锁、缓冲池、并发性能,生产环境彻底淘汰MyISAM做主库。 2. MySQL 5.6(2013,曾经互联网标配) - 在线DDL:新增索引、改字段不用锁整张表,网站不用半夜停机改库; - GTID主从复制、多线程复制,大幅降低主从同步延迟; - 优化器升级,复杂联表、子查询速度大幅提升; 早年电商、工控数据平台最普及版本。 3. MySQL 5.7(2015,当下工业/互联网主流) - 原生JSON数据类型,适配物联网传感器半结构化数据; - 组复制、InnoDB集群,原生支持高可用集群(对标工控双机热备); - 安全强化:默认无匿名账号、密码加密、表空间加密; - sys系统库,一键查看数据库性能瓶颈,方便顶层架构调优。 4. MySQL 8.0(2018,最新长期支持版,教材MySQL版核心) 1. 字符集默认 utf8mb4 ,完整支持中文、emoji,彻底解决乱码; 2. 新增窗口函数、CTE公共表达式,复杂统计报表不用写多层子查询; 3. 角色权限管理,批量给操作工、工程师分配数据权限; 4. 原子DDL,建表/删表中途崩溃不会出现半拉子残缺表; 5. 数据字典重构,系统表查询性能大幅提升; 教材《数据库原理与应用(MySQL版)》全部基于8.0讲解。 五、一句话总结MySQL完整发展逻辑 1. 起点:为解决小型业务低成本数据存储而生,对标工控早期本地文本/Excel存采集数据; 2. 成长:补齐事务、锁、视图、存储过程,变成能承载工业产线、电商交易的企业级数据中枢; 3. 转折:两次收购引发开源分叉,诞生MariaDB作为备选; 4. 现在:Oracle持续迭代8.0版本,成为数字化、物联网、自动化系统最通用底层数据库,学的MySQL教材全部基于这套成熟企业级能力。