人生没有白走的路,每一步都算数
目录
一、数据库
数据库,顾名思义是用来存储数据的仓库。通常把数据库分为:关系型数据库 、 非关系型数据库
二、数据库的分类
- 关系型数据库:关系型数据库通过外键关联来建立表与表之间的关系,即表与表、字段与字段之间存在找关联;
- 非关系型数据库:非关系型数据库通常指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定
三、什么是Mysql?
MySQL是一种关系型数据库,就是一个基于socket编写的C/S架构的软件,其主要通过表结构来存储数据,每一个列称为一个字段,每一行称为一个记录,而每一个列的集合称为数据表,每一个表的集合称为数据库
四、Mysql发展历史
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支持。
MySQL关系型数据库于1998年1月发行第一个版本。它使用系统核心提供的多线程机制提供完全的多线程运行模式,提供了面向C、C++、Eiffel、Java、Perl、PHP、Python以及Tcl等编程语言的编程接口(APIs),支持多种字段类型并且提供了完整的操作符支持查询中的SELECT和WHERE操作。
MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。MySQL因为其速度、可靠性和适应性而备受关注。
1999-2000年,有一家公司在瑞典成立了,叫MySQL AB (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的创始人Monty Widenius已经向Sun提交了辞呈。head都要走了。
据说,被Sun收购的公司多薄命,不知道MySQL今后前途如何,希望一路走好。相信MySQL的生命力还是很长久的。
五、MySQL版本介绍
针对不同的用户,MySQL分为两个不同的版本:
●MySQL Community Server(社区版):该版本完全免费,但是官方不提供技术支持。用户可以自由下载使用。
●MySQL Enterprise Server(企业版服务器):为企业提供数据库应用,支持ACID事务处理,提供完整的提交、回滚、崩溃恢复和行政锁定功能。需要付费使用,官方提供技术支持。
六、MySQL优缺点
优点
(1)运行速度快。性能卓越,服务稳定,很少出现异常宕机
(2)开放源代码无版本制约、自主性及使用成本低
(3)历史悠久,社区和用户非常活跃,遇到问题及时寻求帮助
(4)软件体积小,安装使用简单且易于维护,维护成本低;品牌口碑效应
(5)支持多种OS,提供多种API接口,支持多种开发语言,对流行的PHP,Java很好的支持
(6)可移植性强。(能够运行在多种系统上。Windows、Linux、UNIX等)
(7)使用更多用户
缺点
(1)最大的缺点是其安全系统,主要是复杂而非标准,另外只有到调用mysqladmin来重读用户权限才会发生改变;
(2)缺乏标准的RI(Referential Integrity-RI)机制,RI限制的缺乏(在给定字段域上的一种固定的范围限制)可以通过大量的数据类型来补偿
(3)不支持热备份
七、Mysql开发工具Navicat
Navicat Premium 是一套数据库开发工具,可同时连接 MySQL、MariaDB、MongoDB、SQL Server、Oracle、PostgreSQL 和 SQLite 数据库。它与 Amazon RDS、Amazon Aurora、Amazon Redshift、Microsoft Azure、Oracle Cloud、MongoDB Atlas、阿里云、腾讯云和华为云等云数据库兼容。你可以使用Navicat快速轻松地创建、管理和维护数据库。