Web站点,是MySQL最大的客户群,也是MySQL发展史上最为重要的支撑力量。mysql
MySQL数据库的安装配置都很是简单,使用过程当中的维护也不像不少大型商业数据库管理系统那么复杂,并且性能出色。 程序员
MySQL数据库的插入和查询性能都很是的高效,,对须要大量的插入和查询日志记录的系统来讲,MySQL是很是不错的选择。好比处理用户的登陆日志,操做日志等,都是很是适合的应用场景。redis
随着如今数据仓库数据量的飞速增加,咱们须要的存储空间愈来愈大。数据量的不断增加,使数据的统计分析变得愈来愈低效,也愈来愈困难。sql
有几个主要的解决思路:mongodb
一、一是采用昂贵的高性能主机以提升计算性能,用高端存储设备提升I/O性能,效果理想,可是成本很是高;数据库
二、二是经过将数据复制到多台使用大容量硬盘的廉价pcserver上,以提升总体计算性能和I/O能力,效果尚可,存储空间有必定限制,成本低廉;编程
三、经过将数据水平拆分,使用多台廉价的pcserver和本地磁盘来存放数据,每台机器上面都只有全部数据的一部分,解决了数据量的问题,全部pcserver一块儿并行计算,也解决了计算能力问题,经过中间代理程序调配各台机器的运算任务,既能够解决计算性能问题又能够解决I/O性能问题,成本也很低廉。windows
在上面的3个方案中,第2和第3个的实现,MySQL都有较大的优点。经过MySQL的简单复制功能,能够很好的将数据从一台主机复制到另一台,不只仅在局域网内能够复制,在广域网一样能够。 浏览器
嵌入式环境对软件系统最大的限制是硬件资源很是有限,在嵌入式环境下运行的软件系统,必须是轻量级低消耗的软件。安全
MySQL在资源的使用方面的伸缩性很是大,能够在资源很是充裕的环境下运行,也能够在资源很是少的环境下正常运行。它对于嵌入式环境来讲,是一种很是合适的数据库系统,并且MySQL有专门针对于嵌入式环境的版本。
对于Oracle和MySQL数据库用户来讲,MySQL使用一系统的受权表来管理和跟踪用户权限。当对用户进行验证、受权、访问控制时,MySQL使用这些受权表。
与Oracle及其余多数数据库经过用户名和密码进行验证的机制不一样,MySQL使用附加的location参数对用户时行验证。这个location参数经查是主机名称、IP地址或者为一个通配字符串。经过这个附加的参数,MySQL能够限制用户访问域中的某些主机。更进一步能够作到经过不一样的主机登录时有不一样的密码和用户权限。也就是说用户名相同,但登录主机的名称不一样时,多是不一样的用户。
MySQL的权限系统是经过继承造成的分层结构。权限授于高层时,其余低层隐式继承被授于的权限,固然低层也可改写这些权限。
按受权范围不一样,MySQL有如下种受权方式:
一、全局;
二、基于每一个主机;
三、基于表;
四、基于表列。
每一级在数据库中都有一个受权表。当进行权限检查时,MySQL从高到低检查每一张表,低范围受权优先于高范围受权。
与Oracle不一样,MySQL没有角色的概念。也就是说,若是对一组用户授于一样的权限,须要对每个用户分别受权。
模式包含表、视图、索引、用户、约束、存储过程、触发器和其余数据库相关的概念。多数关系型数据库都有类似的概念。
本节包含如下内容:
一、模式对象的类似性;
二、模式对象的名称;
三、表设计时的关注点;
四、多数据库整合;
五、MySQL模式整合的关注点。
就模式对象,Oracle和MySQL存储诸多的类似,但也有一些不一样。
表3-1 模式对象
Oracle |
MySQL |
AFTER trigger |
trigger |
BEFORE trigger |
trigger |
Check constraint |
Check constraint |
Column default |
Column default |
Database |
Database |
Foreign key |
Foreign key |
Index |
Index |
Package |
N/A |
PL/SQL function |
Routine |
PL/SQL procedure |
Routine |
Primary key |
Primary key |
Role |
N/A |
Schema |
Schema |
Sequence |
AUTO_INCREMENT for a column |
Snapshot |
N/A |
Synonym |
N/A |
Table |
Table |
Tablespace |
N/A |
Temporary table |
Temporary table |
Trigger for each row |
Trigger for each row |
Unique key |
Unique key |
User |
User |
View |
View |
Oracle是大小写不敏感的,而且模式对象是以在写时行存储。在Oracle的世界中,列、索引、存储过程、触发器以及列别名都是大小写不敏感,而且在全部的平台都是如此。MySQL是大小写敏感的,如数据库相对的存储路径、表对应的文件都是如此。
当把关键字用引号引发来时,Oracle和MySQL都容许把这些关键字用于模式对象。但MySQL对于一些关键字,不加引号也行。
本节主要讨论当把MySQL转为Oracle时须要注意的地方。主要包含如下两点:
一、字符数据的类型;
二、列默认值。
MySQL和Oracle在字符型数据保存和读取上存在一些不一样。MySQL的字符类型,如CHAR和VARCHAR的长度小于65535字节。Oracle支持4种字体类型:CHAR、NCHAR、NVARCHAR2和VARCHAR2。CHAR和NCHAR的最大长度为2000字节,NVARCHAR2和VARCHAR2最大长度为4000字节。
MySQL的CHAR在按必定长度存储时,是用空格填充的右对齐方式,在读取时去掉空格。
MySQL会处理列默认值,不容许他为空,这点和Oracle不一样。在Oracle中若是向表插入数据,须要对有全部不容许为NULL列的值。
若是多个MySQL数据库位于同一个数据库服务上,支持迁移。
MySQL的数据库对应于服务器上数据目录内的了目录,这一数据存储方式与多数据数据库不一样,也包括Oracle。数据库中的表对应一个或者多个数据库目录下的文件,并取表存储时的存储引擎。
一个Oracle数据库包含一个或者多个表空间。表空间对应数据在磁盘上的物理存储。表空间是从一个或者多个数据文件开始构建的。数据文件是文件系统中的文件或者原始存储的一块空间。