MySQL简介

 MySQL是一个广受Linux社区人们喜爱的半商业的数据库。 MySQL是可运行在大多数的Linux平台(i386,Sparc,etc),以及少许非Linux甚至非Unix平台。

1、许可费用 

  MySQL的普及很大程度上源于它的宽松,除了略显不寻常的许可费用。MySQL的价格随平台和安装方式变化。MySQL的Windows版本(NT和9X)在任何情况下都不免费,而任何Unix变种(包括Linux)的MySQL如果由用户自己或系统管理员而不是第三方安装则是免费的,第三方案庄则必须付许可费。

2、价格

平台 安装方式 价格 
Windows NT,9X 任何 200美元 
Unix或Linux 自行安装 免费 
Unix或Linux 第三方安装 200美元 
  需要一个应用组件 200美元 

  可以得到多种支持合同,内容太多不再罗列,最新报价可咨询MySQL站点。

3、安装

  可以在MySQL站点上获得大多数主要的软件包格式(RPM、DBE、TGZ),客户端库和各种语言“包装”(Wrapper)可以分开的RPM格式获得。RPM格式的安装没有多大麻烦,并且无需初始配置。在rc3.d(以RedHat RPM为例)生成一个初始脚本,故MySQL守护进程在多用户模式下重启时被启动运行。MySQL的守护进程(mysqld)消耗很少的内存(在运行RedHat 5.1的奔腾133上,每个守护进程使用500K内存和另外4M共享内存的开销)并在只有在执行真正的查询时才装载到处理器上,这意味着对小型数据库来说,MySQL可以相当轻松地使用而不会对其他系统功能有太大的影响。

4、数据类型

  字段支持大量数据类型是件好事。通常的整数、浮点数、字符串和数字均以多种长度表示,并支持变长的BLOB(Binary Large OBject)类型。对整数字段由自动增量选项,日期时间字段也能很好的表示。

  MySQL与大多数其他数据库系统不同的是提供两个相对不常用的字段类型:ENUM和SET。ENUM是一个枚举类型,非常类适于Pascal语言的枚举类型,它允许程序员看到类似于'red、'green'、'blue'的字段值,而MySQL只将这些值存储为一个字节。SET也是从Pascal借用的,它也是一个枚举类型,但一个单独字段一次可存储多个值,这种存储多个枚举值的能力也许不会给你一些印象(并可能威胁第三范式定义),但正确使用SET和CONTAINS关键字可以省去很多表连接,能获得很好的性能提高。

5、SQL兼容性

  MySQL包含一些与SQL标准不同的转变,他们的大多数被设计成是对SQL语言脚本语言的不足的一种补偿。然而,另一些扩展确实使 MySQL与众不同,例如,LINK子句搜索是自动地忽略大小写的。MySQL 也允许用户自定义的SQL函数,换句话说,一个程序员可以编写一个函数然后集成到MySQL中,并且其表现的与任何基本函数如SUM()或AVG ()没有什么不同。函数必须被编译道一个共享库文件中(.so文件),然后用一个LOAD FUNCTION命令装载。

  它也缺乏一些常用的SQL功能,没有子选择(在查询中的查询)。视图(View)也没了。当然大多数子查询可以用简单的连接(join)子句重写,但有时用两个嵌套的查询思考问题比一个大连接容易。同样,视图仅仅为程序员隐蔽where子句,但这正是程序员们期望的另一种便利。

6、存储过程和触发器

  MySQL没有一种存储过程(Stored Procedure)语言,这是对习惯于企业级数据库的程序员的最大限制。多语句SQL命令必须通过客户方代码来协调,这种情形是借助于相当健全的查询语言和赋予客户端锁定和解锁表的能力,这样才允许的多语句运行。

7、参考完整性(Referential Integrity-RI)

  MySQL的主要的缺陷之一是缺乏标准的RI机制;然而,MySQL的创造者也不是对其用户的愿望置若罔闻,并且提供了一些解决办法。其中之一是支持唯一索引。Rule限制的缺乏(在给钉字段域上的一种固定的范围限制)通过大量的数据类型来补偿。不简单地提供检查约束(一个字段相对于同一行的另一个字段的之值的限制)、外部关键字和经常与RI相关的“级联删除”功能。有趣的是,当不支持这些功能时,SQL分析器容忍这些语句的句法。这样做目的是易于移植数据库到MySQL中。这是一个很好的尝试,并且它确实未来支持该功能留下方便之门;然而,那些没有仔细阅读文档的的人可能误以为这些功能实际上是存在的。

7、安全性

  自始至终我对MySQL最大的抱怨是其安全系统,它唯一的缺点是复杂而非标准,另外只有到调用mysqladmin来重读用户权限时才发生改变。通常的SQL GRANT/REVOKE 语句到最近的版本才被支持,但是至少他们现在有了。 MySQL的编写者广泛地记载了其特定的安全性系统,但是它确实需要一条可能是别无它法的学习过程。

8、备份和恢复、数据导入/导出

  强制参考一致性的缺乏显著地简化备份和恢复,单靠数据导入/导出就可完美复制这一功能。LOAD DATA INFILE命令给了数据导入很大的灵活性。SELECT INTO命令实现了数据导出的相等功能。另外,既然MySQL不使用原始的分区,所有的数据库数据能用一个文件系统备份保存。数据库活动能被记载。与通常的数据库日志不同(存储记录变化或在记录映像之前/之后), MySQL记载实际的SQL语句。这允许数据库被恢复到失败前的那一点,但是不允许提交(commit)和回卷(rollback)操作.

9、连接性
  MySQL客户库是客户/服务器结构的C语言库,它意味着一个客户能查询驻留在另一台机器的一个数据库。然而MySQL真正的强项处于该库中的语言“包装器(wrapper)”, Perl、Pathon和PHP只是一部分。Apache的Web服务器也有许多模块例如目录存取文件等允许各种各样的Apache配置信息(例如目录存取文件)使用MySQL,应用程序接口简单、一致并且相但完整。另外、多平台ODBC驱动程序可自由获得。

10、未来

  MySQL的开发继续以快速进行着。事实上,开发步伐对大多数开放源代码是一种挑战。本文提到的几个抱怨中有很多新功能正在解决,然而,我将不对还没确实存在的特征做评价。开发者们向我表明了在未来的开发中把增加查询功能和提高查询速度作为最高优先级。

11、总结
  Mysql是数据库领域的中间派。它缺乏一个全功能数据库的大多数主要特征,但是又有比类似Xbase记录存储引擎更多的特征。它象企业级RDBMS那样需要一个积极的服务者守护程序,但是不能象他们那样消费资源。查询语言允许复杂的连接(join)查询,但是所有的参考完整必须由程序员强制保证。

  MySQL在Linux世界里找到一个位置-提供简洁和速度,同时仍然提供足够的功能使程序员高兴。数据库程序员将喜欢其查询功能和广泛的客户库,数据库管理员会觉得系统缺乏主要数据库功能,他们会发觉它对简单数据库(在不能保证购买大牌数据库时)是有价值的。

时间: 2024-12-21 22:33:52

MySQL简介的相关文章

《PHP和MySQL Web开发从新手到高手(第5版)》一一第2章 MySQL简介

第2章 MySQL简介 PHP和MySQL Web开发从新手到高手(第5版)在第1章中,我们安装并设置了两个软件:支持PHP的Apache Web服务器以及MySQL数据库服务器.如果你按照我的建议,可能会使用XAMPP或MAMP这样的一体化的软件包来安装它们.但是,不要让这影响到你的成就感. 正如我在第1章中提到的,PHP是一种服务器端脚本编程语言,它允许你将指令插入到Web页面中.而Web服务器软件(大多数情况下,是Apache)将会先执行这些指令,然后再将这些页面发送给请求它们的浏览器.通

《PHP和MySQL Web开发从新手到高手(第5版)》一2章 MySQL简介2.1 数据库简介

第2章 MySQL简介 PHP和MySQL Web开发从新手到高手(第5版)在第1章中,我们安装并设置了两个软件:支持PHP的Apache Web服务器以及MySQL数据库服务器.如果你按照我的建议,可能会使用XAMPP或MAMP这样的一体化的软件包来安装它们.但是,不要让这影响到你的成就感. 正如我在第1章中提到的,PHP是一种服务器端脚本编程语言,它允许你将指令插入到Web页面中.而Web服务器软件(大多数情况下,是Apache)将会先执行这些指令,然后再将这些页面发送给请求它们的浏览器.通

MySQL学习笔记02-数据库概述及MySQL简介

mysql|笔记|数据|数据库 数据库是与日常应用紧密相连的,在没有出现数据库之前,人们通过手工记录处理各种信息.当需要记录处理的信息非常多时,手工处理效率就显得及其低下了.比如病人到医院就医,需要通过挂号.就诊.买药.住院.治疗.康复等一系列程序.挂号就要登记病人姓名.性别.年龄等情况.买药的时候医院依据药单从成千上万种药物中挑出符合要求的药品,需要知道药的品名.具体位置.库存多少.存取多少等等.如果病人很多,医院选药就很复烦了.如果手工处理,工作量大,而且有可能调拿错药.这时如果通过数据库处

Mysql简介及概念

关系型数据库系统:建立在关系模型上的数据库系统. 关系模型:当将日常生活中的实体(学生),和实体的属性(学生的学号,姓名)保存数据中时,该如何处理该实体结构.1.数据结构可以规定,同类结构,结构一致.就是一个二维表格,有行有列.2.数据之间的关系可以设置 关系型数据库的典型概念:数据库:数据的仓库.表:数据是保存在表内的,保存在一个表内的数据,应该具有相同的数据结构.行&列:行:用于记录数据,列:规定数据格式.记录:行内的数据.字段:数据的某个列.SQL:数据库管理系统,用来管理数据的语言.结构

PHP+MYSQL三日通

mysql 一.PHP/MySQL简介 您应该听说过开放源代码软件(OSS),除非最近六到八个月来您一直住在火星上.这场运动有着巨大的冲击力,已引起一些大公司的注意.象Oralce.Informix,还有多家公司都开始把他们的主力数据库产品移植到OSS的产物之一 - Linux操作系统上. 如果您有足够的技术力量,拥有一个复杂庞大的关系数据库系统(RDBMS)则是如虎添翼.但是也许您对数据库还刚刚入门,您刚刚读了Jay的文章,决定自己也来搞一个数据驱动的网站.可是您也许会发现您缺乏必要的资源来运

php & mysql 三日通

mysql 一.PHP/MySQL简介 您应该听说过开放源代码软件(OSS),除非最近六到八个月来您一直住在火星上.这场运动有着巨大的冲击力,已引起一些大公司的注意.象Oralce.Informix,还有多家公司都开始把他们的主力数据库产品移植到OSS的产物之一 - Linux操作系统上. 如果您有足够的技术力量,拥有一个复杂庞大的关系数据库系统(RDBMS)则是如虎添翼.但是也许您对数据库还刚刚入门,您刚刚读了Jay的文章,决定自己也来搞一个数据驱动的网站.可是您也许会发现您缺乏必要的资源来运

php与mysql三日通-第一天

mysql 一.PHP/MySQL简介 您应该听说过开放源代码软件(OSS),除非最近六到八个月来您一直住在火星上.这场运动有着巨大的冲击力,已引起一些大公司的注意.象Oralce.Informix,还有多家公司都开始把他们的主力数据库产品移植到OSS的产物之一 - Linux操作系统上. 如果您有足够的技术力量,拥有一个复杂庞大的关系数据库系统(RDBMS)则是如虎添翼.但是也许您对数据库还刚刚入门,您刚刚读了Jay的文章,决定自己也来搞一个数据驱动的网站.可是您也许会发现您缺乏必要的资源来运

MySQL数据库及其ODBC接口的介绍(1) (转载)

mysql|odbc|数据|数据库 发信人: engineer (剑胆琴心~还是得走,sigh...), 信区: Linux 标  题: MySQL数据库及其ODBC接口的介绍(1) (转载) 发信站: BBS 水木清华站 (Mon Aug  9 18:03:16 1999)   [ 以下文字转载自 Database 讨论区 ] [ 原文由 engineer 所发表 ] MySQL数据库及其ODBC接口的介绍                   engineer                1

MYSQL数据库入门

mysql|数据|数据库 MYSQL数据库入门 MySQL简介 什么是MySQL? MySQL是一个多用户.多线程的SQL数据库,是一个客户机/服务器结构的应用,它由一个服务器守护程序mysqld和很多不同的客户程序和库组成. SQL (Structured Query Language结构化查询语言)是目前使用最广的并且是标准的数据库语言.SQL语言使得存取或更新信息变得十分容易,你可以直接使用SQL从网站上查询信息.MySQL的快速和灵活性足以满足一个网站的信息管理工