您的位置:首页 > 数据库 > MySQL

MySQL存储引擎和数据类型

2016-10-18 18:38 447 查看

MySQL存储引擎和数据类型

花点时间适当地设计项目的表结构是成功的关键。对于这个我深有体会,上个项目,在设计数据库时没有经过讨论,最后设计出来的数据库虽然有关联关系的表有外键约束关系,但是两个字段居然不一样,在使用中各种困难,估计只要设计数据库的人才能明白,所以设计好数据库时很关键的。

存储引擎

1、MyISAM MySQL默认存储引擎

MyISAM 表无法处理事务,这意味着应当对所有非事务需求使用此类型。
使用情况:1、选择密集的表。在筛选大量数据是非常迅速
2、插入密集的表。MyISAM 的并发插入特性允许同事选择和插入数据


MyISAM静态格式

所有列的字段类型都是固定长度,就是没有varchar或者text等变长的类型出现,这种类型的表性能非常高,这种表用空间换时间的方法。若所有的数据类型都是静态的则MyISAM使用静态格式。


MyISAM动态

如果列表类型使用动态格式,则MyISAM 为动态格式。


MyISAM 压缩

有时会创建在整个应用程序生命周期中都只读的表,如果是这种情况,就可以使用myisampack工具将其转换为MyISAM 压缩表来减少所占空间,


2、InnoDB 是一个健壮的事务型存储引擎

1、更新密集的表。适合处理多重并发的更新请求。
2、事务。支持事务的标准
3、自动灾难恢复。能够自动从灾难中恢复。


3、MEMORY 内存数据库(这是未来的趋势),响应时间最快,因为存储在内存中

1、可以忽略。目标数据相对较小,而且被非常频繁的访问。
2、暂时。目标数据只是临时需要,在生命周期中必须立即使用
3、相对无关。存储在MEMORY表中的数据如果突然丢失,不会对应用服务产生实质的负面影响。
4、支持散列索引和B树索引。INDEX USING HASH(username);对username列声明一个散列索引


数据类型和属性

1、数据类型

日期和时间数据类型

1、DATE:负责存储日期信息。
2、DATATIME:存储日期和时间信息的组合
3、TIME:时间存储
4、TIMESTAMP:执行了影响TIMESTAMP数据的INSERTO(插入)或UPDATE(删除)操作之后,MySQL会自动将其更新为当前的日期和时间。
5、YEAR:存储年份特定的信息


数值数据类型

1、bool和boolean:bool是TINYINT(1)的别名,用于赋值0或1
2、BIGINT:MYSQL最大整数范围,有符号数范围是-9223372036854775808~9223372036854775807
3、INT :第二大整数范围,有符号数范围是-2147483648~2147483647
3、MEDIUMINT:第三大整数范围,有符号数范围是-8388608~8388607
4、SMALLINT:第四大整数范围,支持有符号数范围是,支持的有符号数范围是-32768~32767
5、TINYINT:数据类型是最小的整数范围,支持的有符号数范围是-128~127
6、DECIMAL:存储为字符串的浮点数
7、DOUBLE:双精度浮点数
8、float:单精度浮点数


字符串数据类型

1、CHAR数据类型为MYSQL提供了固定长度的字符串,支持最大255个字符
2、varchar是可变字长的表示形式
3、LONGBLOB数据类型是MySQL最大的二进制字符串表示形式,支持4294967295个字符,差不多有一个G了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql