当前位置:首页 » MySQL » MySQL学习笔记(4):表存储引擎和数据类型的选择 » 正文


MySQL学习笔记(4):表存储引擎和数据类型的选择

发布日期:2014-09-24 00:00   来源:谭海波   本文永久链接
摘要:和大多数数据库系统不同,MySQL拥有一个独特的特征,那就是有一个插件式存储引擎,用户可以根据应用的需要选择如何存储和索引数据、是否使用事务等等。 MySQL支持多种存储引擎,常见的有MyISAM和InnoDB。 如何定义表引擎:create table tbname(colnam……

和大多数数据库系统不同,MySQL拥有一个独特的特征,那就是有一个插件式存储引擎,用户可以根据应用的需要选择如何存储和索引数据、是否使用事务等等。

MySQL支持多种存储引擎,常见的有MyISAM和InnoDB。

如何定义表引擎:create table tbname(colname coltype)engine=InnoDB default charset utf8;。

修改已有表的引擎:alter table tbname engine=InnoDB;。

MyISAM是MySQL默认的存储引擎,它的优点在于访问速度快,对于只要求插查数据的数据库来说很合适,它的缺点在于不支持索引和事务。相反的,InnoDB支持索引和事务,缺点就是访问速度没有MyISAM快。

显示当前表引擎:show variables like ‘%table_type’;。

InnoDB引擎支持主键和外键功能,自增长必须含有一个主键,自增长是:auto_incrment,如果需要修改自增长的起始值:alter table tbname auto_increment=n;;查询最后一次插入的ID:select last_insert_id();。

除了MyISAM和InnoDB两种常用的引擎,MySQL还有Memory、、Merge等引擎。查看所有的引擎,可用“show engines”命令。

声明表格时创建外键:constraint fkname foreign key (column) references foreign_table(foreign_column) on delete restrict on update cascade;。

修改表格时新增外键:alter table tbname add constraint fkname foreign key (column) references foreign_table(foreign_column) on delete restrict on update cascade;。

删除外键:alter table tbname drop foreign key fkname;。

如何正确的选择存储引擎:MyISAM满足一般只有读写需数据求的应用。InnoDB适用于更高级的应用。

对于字符类型,要根据存储引擎来进行相应的选择。

对精度要求较高的应用中,建议使用定点数来存储数据,以保证结果的准确性。

对含有TEXT和BLOB字段的表,如果经常做删除和修改记录的操作哟啊定时回字形OPTIMIZE TABLE功能对表进行碎片处理。

日期类型要根据实际需要选择能够满足应用的最小存储的日期类型。



关注谭海波博客官方微信公众平台
文章分类MySQL
本文暂无标签,您可以去全部文章的栏目页面看看可能感兴趣的文章。现在去看看
本文永久链接:http://tanhaibo.net/2014/09/mysql-engine.html
转载提示:除非注明,谭海波博客的文章均为原创,转载请以链接形式注明作者和出处。谢谢合作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注