sql server与mysql差异收集

来源:互联网 发布:免费建站 知乎 编辑:程序博客网 时间:2024/06/07 01:15
之后会陆续收集,先写一点:
1、sql server中的IDENTITY在mysql中的表现形式。
mysql中没有identity()函数,要设置自动编号的话应当是用
AUTO_INCREMENT
例如:
create table TBL_TOPIC
(
topicId int not null AUTO_INCREMENT primary key,
title varchar(50) not null,
content text not null,
publishTime timestamp not null,
modifyTime timestamp not null,
uId smallint not null,
borardId smallint not null
)
2、sql server中会用到的一个语句CLUSTERED,如
ALTER TABLE [DAPrinter] ADD CONSTRAINT [PK_DAPrinter] PRIMARY KEY  CLUSTERED ( [PrinterName],[ServerName]);
在mysql中是没有CLUSTERED这个语句的,聚合索引是体现在表的ENGINE中的。
在MySQL中,InnoDB引擎表是(聚集)索引组织表(clustered index organize table),而MyISAM引擎表则是堆组织表(heap organize table)。

也有人把聚集索引称为聚簇索引。
聚集索引是一种索引组织形式,索引的键值逻辑顺序决定了表数据行的物理存储顺序,而非聚集索引则就是普通索引了,仅仅只是对数据列创建相应的索引,不影响整个表的物理存储顺序。
每张InnoDB表只能创建一个聚集索引,聚集索引可以由一列或多列组成。

上面说过,InnoDB是聚集索引组织表,它的聚集索引选择规则是这样的:

首先选择显式定义的主键索引做为聚集索引;

如果没有,则选择第一个不允许NULL的唯一索引;

还是没有的话,就采用InnoDB引擎内置的ROWID作为聚集索引;
细节参考《Mysql High performance》,没时间看。
原创粉丝点击