最新要闻
- 速递!笔记本也不行了 将交出10年最差成绩单
- 天天快资讯:官方揭秘中国空间站:13年前秘密启动!至少用10年
- 【新要闻】专利暴露苹果野心!未来苹果全家桶将支持卫星通信
- 世界播报:漫威宇宙归来!两部大片《黑豹2》《蚁人3》国内定档:预告看个爽
- 焦点热讯:2023首批版号出炉!米哈游双端大作《崩坏:星穹铁道》获批
- 讯息:特斯拉股价大跌!马斯克甩锅:未来可能跌得更狠
- 新动态:靠“车震”充电?宝马最新专利整活
- 世界观点:官方回应2000元帐篷房像45元招待所属实:游客称被气晕过去 双方已谅解
- 全球热讯:宏碁推出Nitro XV5 4K显示器:可超频至200Hz高刷
- 环球热点!湖北襄阳五分钟内连发两次地震:无破坏性 官方科普地震如何逃生
- 手机硬件光追 为啥一直是PPT?
- 世界快资讯丨骁龙888站起来了!小米11系列MIUI 14稳定版就绪:流畅度暴增
- 简讯:《三体》电视剧第五集惊现《GTA》地图 网友:梦幻联动、双厨狂喜
- 滴滴回来了!但没有掌声
- 车主注意!今日起 全国严查酒驾醉驾
- 环球新消息丨剧毒蓝环章鱼再现 网友:山姆超市买的、没吃直接给扔了
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
全球速看:MySQL笔记01: MySQL入门_1.1 MySQL概述
1.1 MySQL概述
MySQL是一个关系数据库管理系统(Relational DataBase Management System,RDBMS)。它是一个程序,可以存储大量的种类繁多的数据,并且提供服务以满足任何组织的需要。与MySQL同属于RDBMS的还有著名的Oracle、SQL Server和DB2。
(资料图片仅供参考)
1.1.1 MySQL发展历史
MySQL的历史最早可以追溯到1979年,当时有一个名叫Monty Widenius的程序员在名为TcX的小公司打工,并且使用BASIC设计了一个报表工具,使其可以在4MB主频和16KB内存的计算机上运行。没过多久,Monty又将此工具用C语言进行了重写并移植到了UNIX平台。当时,这只是一个很底层的且仅面向报表的存储引擎,名叫Unireg。
1985年,瑞典几位志同道合的年轻人(以David Axmark为首)成立了一家公司,这就是MySQL AB 的前身。这个公司最初并不是为了开发数据库产品,而是在实现他们想法的过程中,需要一个数据库。他们希望能够使用开源的产品。但在当时并没有一个合适的选择,那就只能自己开发了。
在最初,他们只是自己设计了一个利用索引顺序存取数据的方法,也就是I S A M(Indexed Sequential Access Method)存储引擎核心算法的前身,利用ISAM结合mSQL来实现他们的应用需求。在系统使用过程中,随着数据量越来越大,系统复杂度越来越高,ISAM和mSQL的组合逐渐不堪重负。在分析性能瓶颈之后,他们发现问题出在mSQL上面。不得已,他们抛弃了mSQL,重新开发了一套功能类似的数据存储引擎,这就是ISAM 存储引擎。
1990年,TcX公司的客户中开始有人要求为他的API提供SQL支持。当时有人提议直接使用商用数据库,但是Monty觉得商用数据库的速度难以令人满意。于是,他直接借助于MySQL的代码,将它集成到自己的存储引擎中。令人失望的是,效果并不太令人满意,于是,Monty决心自己重写一个SQL支持。
1996年,MySQL 1.0版本发布,可以在小范围内使用。到了1996年10月,MySQL 3.11.1版本发布,没有2.x版本,最开始只提供了Solaris下的二进制版本。一个月后,Linux版本出现了。这时的MySQL还非常简陋,除了在一个表上做一些INSERT、UPDATE、DELETE和SELECT操作外,没有其他更多的功能。
紧接下来的两年里,MySQL被依次移植到各个平台。它在发布时采用的许可策略有些与众不同:允许免费使用,但是不能将MySQL与自己的产品绑定在一起发布。如果想一起发布,就必须使用特殊许可,这就意味着用户要“付费”。这种特殊许可为MySQL带来了一些收入,从而为它的持续发展提供了物质基础。
MySQL关系型数据库于1998年1月发行第一个版本。它使用系统核心的多线程机制提供完全的多线程运行模式,提供了面向C、C++、Eiffel、Java、Perl、PHP、Python以及Tcl等编程语言的编程接口(API)。支持多种字段类型,并提供了完整的操作符支持。
1999—2000年,MySQL AB公司在瑞典成立。Monty与Sleepycat合作开发出了Berkeley DB(简称为BDB)引擎,由于BDB支持事务处理,所以MySQL从此开始支持事务处理了。
2000年的时候,MySQL公布了自己的源代码,并采用GPL(GNU General Public License)许可协议,正式进入开源世界。2000年4月,MySQL对旧的存储引擎ISAM进行了整理,将其命名为MyISAM。
2001年,Heikiki Tuuri向MySQL提出建议,希望能集成他们的存储引擎InnoDB,这个引擎同样支持事务处理,还支持行级锁。所以在2001年发布的3.23版本的时候,该版本已经支持大多数的基本的SQL操作,而且还集成了MyISAM和InnoDB存储引擎。MySQL与InnoDB的正式结合版本是4.0。
2004年10月,发布了经典的4.1版本。
2005年10月,有发布了里程碑的一个版本,MySQL 5.0 在5.0中加入了游标、存储过程、触发器、视图和事务的支持。在5.0之后的版本里,MySQL明确地表现出迈向高性能数据库的发展步伐。
2008年1月,MySQL AB公司被Sun公司以10亿美金收购,MySQL数据库进入Sun时代。在Sun时代,Sun公司对其进行了大量的推广、优化和Bug修复等工作。
2008年11月,MySQL 5.1发布,它提供了分区、事件管理,以及基于行的复制和基于磁盘的NDB集群系统,同时修复了大量的Bug。
2009年4月,甲骨文以74亿美元收购Sun公司,自此MySQL数据库进入Oracle时代,而其第三方的存储引擎InnoDB早在2005年就被甲骨文收购。
2010年12月,MySQL 5.5发布,其主要新特性包括半同步的复制及对SIGNAL/RESIGNAL的异常处理功能的支持,最重要的是InnoDB存储引擎终于变为当前MySQL的默认存储引擎。MySQL 5.5不是时隔两年后的一次简单的版本更新,而是加强了MySQL各个方面在企业级的特性。甲骨文公司同时也承诺MySQL 5.5和未来版本仍是采用GPL授权的开源产品。
1.1.2 MySQL主要特性
下面列出了MySQL数据库的一些主要特性。
(1)内部构件和可移植性。
(2)使用C和C++编写。
(3)用众多不同的编译器进行了测试。
(4)能够工作在众多不同的平台上。
(5)使用GNU Automake、Autoconf和Libtool进行移植。
(6)提供了用于C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl的API。
(7)采用核心线程的完全多线程,如果有多个CPU,它能方便地使用这些CPU。
(8)提供了事务性和非事务性存储引擎。
(9)使用了极快的“B树”磁盘表(MyISAM)和索引压缩。
(10)添加另一个存储引擎相对简单。如果打算为内部数据库添加一个SQL接口,该特性十分有用。
(11)极快的基于线程的内存分配系统。
(12)通过使用优化的“单扫描多连接”,能实现极快的连接。
(13)存储器中的哈希表用作临时表。
(14)SQL函数是使用高度优化的类库实现的,运行很快。通常,在完成查询初始化后,不存在存储器分配。
(15)服务器可作为单独程序运行在客户/服务器联网环境下。它也可作为库提供,可嵌入(链接)到独立的应用程序中。这类应用程序可单独使用,也能在网络环境下使用。
(16)众多类型:
带符号/无符号整数,1、2、3、4、8字节长,FLOAT,DOUBLE,CHAR,VARCHAR,TEXT,BLOB,DATE,TIME,DATETIME,TIMESTAMP,YEAR,SET,ENUM,以及OpenGIS空间类型。
(17)在SELECT查询的WHERE子句中,提供完整的操作符和函数支持。例如:
mysql> SELECT CONCAT(first_name, " ", last_name)
-> FROM citizen
-> WHERE income/dependents > 10000 AND age > 30;
(18)对SQL GROUP BY和ORDER BY子句的全面支持。支持聚合函数COUNT(),COUNT(),AVG(),STD(),SUM(),MAX()和MIN()等。
(19)支持LEFT OUTER JOIN和RIGHT OUTER JOIN,采用标准的SQL和ODBC语法。
(20)MySQL的SHOW命令可用于检索关于数据库、数据库引擎、表和索引的信息。EXPLAIN命令可用于确定优化器处理查询的方式。
(21)函数名与表名或列名不冲突。例如,ABS是有效的列名。唯一的限制在于,调用函数时,函数名和随后的符号“(”之间不得有空格。
(22)十分灵活和安全的权限和密码系统,允许基于主机的验证。连接到服务器时,所有的密码传输均采用加密形式,从而保证了密码安全。
(23)处理大型数据库:
有用户使用MySQL服务器包含5千万条记录的数据库,有些用户将MySQL用于包含60000个表和约50亿行的数据库。
(24)每个表可支持高达64条索引(在MySQL 4.1.2之前为32条)。每条索引可由1~16个列或列元素组成。最大索引宽度为1000字节(在MySQL 4.1.2之前为500)。索引可使用具备CHAR、VARCHAR、BLOB或TEXT列类型的列前缀。
(25)在任何平台上,客户端可使用TCP/IP协议连接到MySQL服务器。在Windows系统的NT系列中(NT、2000、XP或2003),客户端可使用命名管道进行连接。在UNIX系统中,客户端可使用UNIX域套接字文件建立连接。
(26)对数种不同字符集的全面支持,包括latin1(cp1252)、german、big5、ujis等。例如,在表名和列名中允许使用斯堪的纳维亚字符‘å’、‘ä’和‘ö’。从MySQL 4.1开始,提供了Unicode支持。
(27)所有数据均以所选的字符集保存。正常字符串列的比较不区分大小写。
(28)MySQL服务器提供了对SQL语句的内部支持,可用于检查、优化和修复表。通过mysqlcheck客户端,可在命令行上使用这类语句。MySQL还包括myisamchk,这是一种很快的命令行实用工具,可用于在MyISAM表上执行这类操作。
(29)对于所有MySQL程序,均能通过“--help”或“-?”选项调用,以获取联机帮助信息。
1.1.3 MySQL适用场景
目前,MySQL的使用用户已经达千万级别了,其中不乏企业级用户。可以说是目前最为流行的开源数据库管理系统软件了。任何产品都不可能是万能的,也不可能适用于所有的应用场景。下面列举了MySQL最常用到的4种场景。
1. Web网站系统
Web站点是MySQL最大的客户群,也是MySQL发展史上最为重要的支撑力量。MySQL之所以能成为Web站点开发者们最青睐的数据库管理系统,是因为MySQL数据库的安装和配置都非常简单,使用过程中的维护也不像很多大型商业数据库管理系统那么复杂,而且性能出色。还有一个非常重要的原因就是MySQL是开放源代码的,完全可以免费使用。
2. 日志记录系统
MySQL数据库的插入和查询性能都非常高效,如果设计得较好,在使用MyISAM存储引擎的时候,两者可以做到互不锁定,达到很高的并发性能。所以,对需要大量的插入和查询日志记录的系统来说,MySQL是非常不错的选择。比如处理用户的登录日志、操作日志等,都是非常适合的应用场景。
3. 数据仓库系统
随着现在数据仓库数据量的飞速增长,需要的存储空间越来越大。数据量的不断增长,使数据的统计分析变得越来越低效,也越来越困难。怎么办?这里有几个主要的解决思路,一个是采用昂贵的高性能主机以提高计算性能,用高端存储设备提高I/O性能,效果理想,但是成本非常高;第二个就是通过将数据复制到多台使用大容量硬盘的廉价服务器上,以提高整体计算性能和I/O能力,效果尚可,存储空间有一定限制,成本低廉;第三是通过将数据水平拆分,使用多台廉价的服务器和本地磁盘来存放数据,每台机器上面都只有所有数据的一部分,解决了数据量的问题,所有服务器一起并行计算,也解决了计算能力问题,通过中间代理程序调配各台机器的运算任务,既可以解决计算性能问题又可以解决I/O性能问题,成本也很低廉。
在上面的三个方案中,第二和第三个的实现MySQL都有较大的优势。通过MySQL的简单复制功能,可以很好地将数据从一台主机复制到另外一台,不仅在局域网内可以复制,在广域网同样可以。当然,很多人可能会说,其他的数据库同样也可以做到,不是只有MySQL有这样的功能。确实,很多数据库同样能做到,但是MySQL是免费的,其他数据库大多都是按照主机数量或者CPU数量来收费,当我们使用大量的服务器的时候,授权费用相当惊人。第一个方案,基本上所有数据库系统都能够实现,但是其高昂的成本并不是每一个公司都能够承担的。
4. 嵌入式系统
嵌入式环境对软件系统最大的限制是硬件资源非常有限,在嵌入式环境下运行的软件系统,必须是轻量级低消耗的软件。MySQL在资源使用方面的伸缩性非常大,可以在资源非常充裕的环境下运行,也可以在资源非常少的环境下正常运行。它对于嵌入式环境来说,是一种非常合适的数据库系统,而且MySQL有专门针对于嵌入式环境的版本。
1.1.4 MySQL分支版本
在MySQL的发展中最初由MySQL AB公司开发,之后被Sun公司收购,再被Oracle公司收购。另外,由于MySQL开源代码的原因,市场上出现了很多MySQL的分支版本,其中最有代表性的三个,分别是Percona Server、MariaDB和Drizzle。
1. Percona Server
Percona Server是一个与MySQL向后兼容的替代品,它尽可能不改变SQL语法、客户/服务器协议和硬盘上的文件格式。任何运行在MySQL上的数据库都可以运行在Percona Server上而不需要修改。切换到Percona Server的方法也很简单,只需关闭MySQL和启动Percona Server即可,而不需要导出和重新导入数据,反之切换回去也不麻烦。
Percona Server包括Percona XtraDB存储引擎,即改进版本的InnoDB。这同样是一个向后兼容的替代品。例如,如果要创建一个使用InnoDB存储引擎的表,Percona Server能自动识别并用XtraDB替代之。
2. MariaDB
在Sun收购MySQL之后,MySQL的创建者之一Monty离开Sun公司,随后成立Monty公司创建了MariaDB。MariaDB的目标是社区开发,Bug修改和许多的新特性(特别是与社区开发的特性相集成)。
与Percona Server相比,MariaDB包括更多对服务器的扩展。例如,有许多是对查询优化和复制的改变。它使用Aria存储引擎取代了MyISAM来存储内部临时表。同时也包括很多社区的引擎,如SphinxSE和PBXT。
3. Drizzle
Drizzle是真正的MySQL分支,而非只是一个变种或者增强版本。它并不与MySQL兼容,尽管区分上还并不是太大。在许多场合并不能简单地将MySQL替换为Drizzle,因为后者对SQL语法的修改太大了。
Drizzle创建于2008年,致力于更好地服务MySQL用户。其创建目标是更好地满足网页应用的核心功能。与MySQL相比,它更加简单,选择更少。例如,只能使用utf8作为字符集,并且只有一个类型的BLOB,主要针对64位硬件编译,且支持IPv6网络等。
在代码层,Drizzle构建于一个精简内核和插件的微核心架构之上。服务器的核心比起MySQL已经精简许多。几乎任何东西都是以插件形式使用。Drizzle使用了诸如Boost的标准开源库,并遵从代码、架构和API方面的标准。
目前,Drizzle虽然已经在某些产品环境下部署但还没有广泛应用。Drizzle项目的理念是抛弃向后兼容的束缚,而这意味着相对于迁移一个已有的应用而言,它更适合新的应用开发。
-
全球速看:MySQL笔记01: MySQL入门_1.1 MySQL概述
MySQL是一个关系数据库管理系统(RelationalDataBaseManagementSystem,RDBMS)。它是一个程序,可以存...
来源: 全球速看:MySQL笔记01: MySQL入门_1.1 MySQL概述
速递!笔记本也不行了 将交出10年最差成绩单
天天快资讯:官方揭秘中国空间站:13年前秘密启动!至少用10年
【新要闻】专利暴露苹果野心!未来苹果全家桶将支持卫星通信
世界播报:漫威宇宙归来!两部大片《黑豹2》《蚁人3》国内定档:预告看个爽
全球最新:学习笔记——Spring中的注解;Spring中装配对象的注解;使用注解配置对象中属性
当前头条:node-sass安装问题
焦点热讯:2023首批版号出炉!米哈游双端大作《崩坏:星穹铁道》获批
讯息:特斯拉股价大跌!马斯克甩锅:未来可能跌得更狠
新动态:靠“车震”充电?宝马最新专利整活
世界观点:官方回应2000元帐篷房像45元招待所属实:游客称被气晕过去 双方已谅解
全球热讯:宏碁推出Nitro XV5 4K显示器:可超频至200Hz高刷
今日最新!LeetCode刷题:343. 整数拆分的完全背包写法解析
焦点报道:AcWing. 1073 树的中心
环球热点!湖北襄阳五分钟内连发两次地震:无破坏性 官方科普地震如何逃生
每日资讯:VScode和cmake的组合拳
手机硬件光追 为啥一直是PPT?
世界快资讯丨骁龙888站起来了!小米11系列MIUI 14稳定版就绪:流畅度暴增
简讯:《三体》电视剧第五集惊现《GTA》地图 网友:梦幻联动、双厨狂喜
滴滴回来了!但没有掌声
车主注意!今日起 全国严查酒驾醉驾
【天天报资讯】计算机基础 数据类型 流程控制 字符编码 文件操作
【新视野】ARP欺骗攻击:利用driftnet截获图片数据流
环球新消息丨剧毒蓝环章鱼再现 网友:山姆超市买的、没吃直接给扔了
今晚油价下调!春节出行加满一箱油将少花八元
全球今热点:日系车后期果然省钱!丰田10年维保花费4万元 美国车最低
环球短讯!25年经验资深机长驾驶 3D还原尼泊尔客机坠机过程:让人后怕
当前报道:三星Galaxy Book 3 Pro 360笔记本来了:12核i7 还有3K触摸屏
环球焦点!portswigger 靶场之 XSS 篇(上)
每日快播:JavaWeb开发中在服务器常用命令集锦
今日热文:学习笔记——Spring管理第三方bean;Spring中Bean的作用域;Spring中Bean的生命周期;Spring中bean的后置处理器;Sp
程序员同事每天准点下班,原来是用了这6个开发工具
【NAS使用心得】使用Synology Photos管理照片
【环球新要闻】70多岁大爷开40万极氪001买菜 直言此前开的奔驰真是垃圾
万茜吐槽自己游戏手法不行!网友发现本人玩的是《剑网3》
网易云音乐TV版发福利!150小时电视端会员听歌时长免费领
赵长江:腾势D9时速120km轮胎被磕到、车身稳如泰山
iPhone印度造:要跟我们平分蛋糕!
个人使用 sudo 方法
环球视讯!iOS APP上架流程(详细)
焦点观察:聚焦技术与体验极致提升,阿里云视频云连续5年领跑!
还在用 Excel 和 SQL?火山引擎 VeDI 这款产品帮你更快处理数据
AI偷偷写70多篇新闻:数月后才被人发现
今日报丨与网易延长半年合作失败 内幕曝光:分手一事错怪暴雪了?
贾跃亭下周回国?FF发春节“回家”海报:或暗示将落地中国
【新要闻】不到3年狂揽1.41万亿元?抖音怎么做到的?
【天天热闻】特效太炸!《王者荣耀》李信新皮肤公布 碾压一念神魔
JNPF流程审批加签功能讲解
14年合作结束!暴雪网易彻底谈崩 玩家不满:暴雪甩锅被识破
紧跟特斯拉、问界!小鹏汽车宣布降价:14.89万元起
3000次超长寿命国产闪存 致态512GB SSD到手229元
资讯:印度男子得子后去尼泊尔还愿:不幸遭遇空难
马斯克曾大赞中国工人能工作到凌晨3点 特斯拉德国工人不干了
世界快讯:温州一奔驰越线撞击比亚迪 比亚迪调转180度 车头都快没了
环球速读:魔兽国服1月24日关服!暴雪称已提议延期半年 网易拒绝
图书管理系统
天天最新:Educational Codeforces Round 14
每日速读!“抠书式”还原的剧版《三体》获赞!动画版已扑街:豆瓣跌至4.6分
领券还送牙刷!三金西瓜霜牙膏狂促:6支到手23.7元
129元 小米米家保温壶上架:1.8L大容量、6小时保温75℃
国产良心!《光明记忆:无限》推出第三人称模式:女主新皮肤来了
00后女生熬夜关灯玩手机后眼部囊肿:专家科普
luckysheet踩坑记录
使用管控平台管理redis集群
当前视讯!在WPF程序中,使用Freetype显示字体
追光动画十年集大成之作!电影《长安三万里》预告曝光
AI换脸小视频泛滥网络 日本人出手:用AI检测真伪
全球快资讯丨知名经济学家:特斯拉不可能成为苹果那样的赚钱机器
热点!90后女生开比亚迪环游中国:总花费2.3万元 油费+电费还不到3千
每日消息!《流浪地球2》“人类股骨”预告发布:AI技术修复李雪健老师声音
什么是整理书包?整理书包的心得体会
计算机能力是什么意思?计算机能力一般怎么填写?
大量元素是什么意思?大量元素和微量元素有哪些?
管理报表包括哪些?管理报表和财务报表的区别有哪些?
什么是地理位置图?地理位置图用什么软件?
怎么用烤箱烤饼干?用烤箱烤饼干的做法是什么?
焦点热文:冰蝎V4.0流量分析到攻防检测
剑灵武神塔怎么进?剑灵武神塔20层苏向阳怎么打?
安卓手机相册在哪个文件夹?安卓手机相册怎么加密?
appsync是什么意思?如何安装appsync?
安卓系统怎么升级?安卓系统和鸿蒙系统哪个好?
全球热议:微软智能语音大升级:方言念古诗无压力
每日热门:特斯拉、华为问界大降价!李想:他们都得对比理想L8
环球今头条!俩小孩小区内5次放火引燃SUV 专家:熊孩子闯祸家长需兜底
每日时讯!机械硬盘大溃败:去年出货量近乎腰斩
大众、长安“缝合怪”?换代天籁消费者不买账 跌出B级车前十榜
世界热消息:学习笔记——Spring底层IOC实现;Spring依赖注入数值问题;Spring依赖注入方式
速读:FlinkSQL 时间类型转化使用小结
焦点播报:国产科幻巨制!《流浪地球2》预售票房突破4000万
微速讯:动画扑街、电视剧成神 《三体》电影版最新进展公布
嫦娥五号科研成果!中国科学家精确测定月球年龄:20.3亿年
世界快报:迪士尼联名!美特斯邦威羽绒服大促 原价500多现1百多到手
画面震撼!五菱小汽车排队“坐”火车去墨西哥
天天百事通!LibreOJ L6210 「美团 CodeM 决赛」tree
读编程与类型系统笔记09_泛型数据结构
热头条丨17岁少女晒爸爸500元买的奢侈包包遭群讽 含泪反击 结局暖心
天天热资讯!2023年我国新能源汽车销量可达950万辆:全球第一没跑 电池便宜到发指
“U盘之父”朗科房东不好当:腾讯租的15层大楼突然全退了
今日最新!1%超级富豪拿走全球三分之二新财富:穷人越来越多 专家称应财富重分配
全球消息!曾被网友戏称“候机大棚” 佛山机场花2000万改造完成