Mysql进化论2
Mysql所支持的引擎目前有以下几种:
MyISAM,InnoDB,MERGE,MEMORY(HEAR),BDB(BerkeleyDB),EXAMPLE,FEDERATED,ARCHIVE,CSV,BLACKHOLE.
为什么要有这么多引擎?主要是Mysql是一款极为强大的数据库,它适应很多不同的运行环境,为了满足各种不同的运行环境与存储方案的需要,这些搜索引擎也就应运而生(不光是为了配合Mysql)。
简单的说,就是一个Mysql数据库,有着很多的存储方案。由于不同的存储引擎的存储方案有不同的优势与不足,通过对不同的搜索引擎的支持,而达到更为强大,更有弹性的数据库。
让我们先从三个体系结构开始:
A-Mysql分层体系结构
其中应用层为所有的用户提供的接口,逻辑层包括了所有核心功能的实现,物理层用来负责将数据存储在硬盘上。图中靠右喜欢的逻辑层的组成,查询处理子系统,事务管理子系统,恢复管理子系统和存储管理子系统共同组成了Mysql的逻辑层。通过存储管理(Storage Management)来管理每个存储引擎(Storage Engine)。
B-详细体系结构
C-Mysql体系
Mysql支持多个存储引擎用来对不同的表的类型的处理器。Mysql存储引擎包括处理事物安全表的引擎和处理非事物安全表的引擎。你可以按找喜好通过配置Mysql来允许或禁止任一引擎。*通过更改STORAGE_ENGINE来配置默认的存储引擎。
1.MyISAM管理非事物表。它提供告诉存储和检索,以及全文搜索能力。MyISAM在所有Mysql配置里被支持,为Mysql默认的存储引擎。它实在Web,数据仓库和其他应用环境下最常使用的存储引擎。
2.MEMORY存储引擎提供“内存中”表,被确定为HEAP引擎.MEMORY将所有数据保存在RAM中,在需要快速查找引用和其他类似数据的环境下,可以提供极快的访问。
3.MERGE存储引擎允许集合将被处理同样的MyISAM表作为一个单独的表。就像MyISAM一样,MEMORY和MERGE存储引擎处理非事物表,与MEMORY引擎默认包含与Mysql中。允许Mysql DBA或开发人员将一系列等同的MyISAM表以逻辑方式组合在一起,并作为1个对象引用它们。对于诸如数据仓库等VLDB环境十分适合。
4.InnoDB和BDB存储引擎提供事物安全表。BDB被包含在为支持它的操作系统发布的Mysql-max二进制分发版中。InnoDB也默认包括在其中。InnoDB多用于事物处理应用程序,具有众多特性,包括ACID事物支持。而BDB可以替代InnoDB的事物引擎,支持COMMIT,ROLLBACK和其他的事物特性。
5.ECAMPLE存储引擎是一个"存根"引擎。通过此引擎创建表,但没有数据被存储于其中或从中检索。这个引擎的目的是
相关文档:
建立一个主外键关系
create table t_dept(
id int(4) not null, name varchar(50) not null,
primary key(id))type=innodb;
create table t_emp (
id int(6) not null,
name char(255) not null,fk_id int(4) not null,
primary key(id),
foreign key (fk_id) references t_dept (id)) type=innodb; ......
首先你要理解,innodb的主键索引都是聚簇索引,它的辅助索引里面都包含有表的主键,而且主键都在辅助索引的最后一列.而myisam的索引,都是普通索引,存储的是列的值,还有列在原表中的地址值---不存储主键值.
好了,下面我们开始:
先创建两个表:一个是innodb引擎的,一个是myisam引擎的
CREATE TABLE `innodb` ( `id` in ......
安裝MySQL-Server
$ sudo apt-get install mysql-server
安裝Apache HTTP Server
$ sudo apt-get install apache2
安裝PHP for Apache HTTP Server
$ sudo apt-get install php5
安裝MySQL for Apache HTTP Server
$ sudo apt-get install libapache2-mod-auth-mysql
$ sudo apt-get ......
卸载Mysql
[root@localhost ~]# rpm -qa | grep mysql
mysql-3.23.58-9
php-mysql-4.3.4-11
mod_auth_mysql-20030510-4.1
mysql-server-3.23.58-9
说明:rpm –qa | grep mysql 命令是为了把mysql相关的包都列出来,卸载都从最下面的一个包开始,直到卸载掉第一个为止。执行rpm -q php,如果返回php版本, ......
1.它可以被分为三类:数字类型日期类和时间类型,字符串类型。
列类型用于描述:
M:指出最大的显示尺寸。最大的合法显示尺寸为255.
D:适用于浮点类型并之初跟随在十进制小数点后的数码的数量。最大的可能值是30,但是不应大于M.
2.方括号("[","]")指出可选的类型修饰符的部分.
*若指定了列类型为ZEROFILL,MYSQL将该 ......