MySQL表类型MyISAM和InnoDB的区别

MySQL表类型MyISAM和InnoDB的区别,第1张

mysql表类型MyISAM和InnoDB区别

MyISAM:这个是默认类型,它是基于传统的ISAM类型,ISAM是Indexed Sequential Access Method (有索引的顺序访问方法) 的缩写,它是存储记录和文件的标准方法.与其他存储引擎比较,MyISAM具有检查和修复表格的大多数工具. MyISAM表格可以被压缩,而且它们支持全文搜索.它们不是事务安全的,而且也不支持外键。如果事物回滚将造成不完全回滚,不具有原子性。如果执行大量的SELECT,MyISAM是更好的选择。

InnoDB:这种类型是事务安全的.它与BDB类型具有相同的特性,它们还支持外键.InnoDB表格速度很快.具有比BDB还丰富的特性,因此如果需要一个事务安全的存储引擎,建议使用它.如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表,

对于支持事物的InnoDB类型的标,影响速度的主要原因是AUTOCOMMIT默认设置是打开的,而且程序没有显式调用BEGIN 开始事务,导致每插入一条都自动Commit,严重影响了速度。可以在执行sql前调用begin,多条sql形成一个事物(即使autocommit打开也可以),将大大提高性能。

mysql 怎么修改表类型数据

下面列出:

1.增加一个字段

alter table user add COLUMN new1 VARCHAR(20) DEFAULT NULL//增加一个字段,默认为空

alter table user add COLUMN new2 VARCHAR(20) NOT NULL //增加一个字段,默认不能为空

2.删除一个字段

alter table user DROP COLUMN new2 //删除一个字段

3.修改一个字段

alter table user MODIFY new1 VARCHAR(10) //修改一个字段的类型

alter table user CHANGE new1 new4 int  //修改一个字段的名称,此时一定要重新

//主键

alter table tabelname add new_field_id int(5) unsigned default 0 not null auto_increment ,add primary key (new_field_id)

//增加一个新列

alter table t2 add d timestamp

alter table infos add ex tinyint not null default ‘0′

//删除列

alter table t2 drop column c

//重命名列

alter table t1 change a b integer

//改变列的类型

alter table t1 change b b bigint not null

alter table infos change list list tinyint not null default ‘0′

//重命名表

alter table t1 rename t2

加索引

mysql>alter table tablename change depno depno int(5) not null

mysql>alter table tablename add index 索引名 (字段名1[,字段名2 …])

mysql>alter table tablename add index emp_name (name)

加主关键字的索引

mysql>alter table tablename add primary key(id)

加唯一限制条件的索引

mysql>alter table tablename add unique emp_name2(cardnumber)

删除某个索引

mysql>alter table tablename drop index emp_name

增加字段:

mysql>ALTER TABLE table_name ADD field_name field_type

修改原字段名称及类型:

mysql>ALTER TABLE table_name CHANGE old_field_name new_field_name field_type

删除字段:

mysql>ALTER TABLE table_name DROP field_name

mysql修改字段长度

alter table 表名 modify column 字段名 类型

例如

数据库中user表 name字段是varchar(30)

可以用

alter table user modify column name varchar(50)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8745083.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-20
下一篇 2023-04-20

发表评论

登录后才能评论

评论列表(0条)

保存