mysql常用三种表类型
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
mysql常用三种表类型
mysql拥有多种表类型,而比较常见的有这么3种类型:MyIsam,Heap,Inndb;
MyIsam:其最大的特点就是:成熟,稳定,易用;
MyIsam又细分为下列几种:
静态MyIsam:该表里的数据列的长度都是确定(定长的),该表具有极高的访问速度,即使在操作相当的数据表也是如此,但其最大的缺点就是占用空间较大;
动态MyIsam:该表的数据列具有varchar,xxxtext,xxxblob,等类型的字段时,该表是动态的,其优点是它存数据时,采用的是数据的实际长度,能节省不少空间,但也是由于这点,当数据要做更新时,长度发生变更时,就不会存在原来的位置,而存在别的位置,造成原来的位置形成一空洞,并且关联的数据并不是存放在相邻的块中,而且产生大量的碎片,要定期进行碎片整理;
压缩表类型:是用该类型的数据表,空间占用相当小,只有原大小的一半,而且读取数据时,还会对数据进行加压缩,并且注意该类型的表是只读表,不能进行修改;
Inndb:被看做是MyIsam的替代者,它具有众多有点:
支持事务:Innodb支持sql92里定义的四大事务类型,所谓事务,其实就是一系列有逻辑关系的数据库操作,当其中一操作失败,其他操作全不起作用像没发生过任何事一样,大大提高了数据库的安全性;
行级锁定机制:innodb采用自己的驱动里的行级锁定机制,允许执行事务操作时,只针对进行事务的记录行进行锁定,并不锁定整个表,不会对别的用户的相关操作,大大提高了灵活性;
外键约束:支持外键约束,能确保在执行delete,update等语句后,外键的约束,不会产生通过这个表取另一个表时产生空数据;
但innodb也具有一些明显的缺点:
存储:起采用特殊的表空间进行存储;
不支持全文索引:
不支持gis数据;
空间占用较大,有时甚至是Myisam的两倍;
mysql表不能转换为innodb;
count()函数的执行效率较低;
到底选择这两种类型的哪一种,我们要根据实际的情况去做出衡量;
heap:(类似于临时表,但又有所不同)
其存在与内存中,不存在于硬盘中,当服务器断电,其数据就会全部丢失,其就是临时表,但它又与用sql语句创建的临时表,mysql存储中间结果的临时表不一样,它对与其他数据库连接是可见的,其具有相当多的约束,不能使用除了'=','<=>'其他的符号构造搜索,不支持
auto_increment属性等众多的约束;
与heap对比:临时数据表,用sql语句构建的,或者是存放中间结果的数据表,它们在不同的链接间是不可见的,因此,相同的表明不会有什么影响,并且服务断电数据也不会丢失;
先介绍到这里,水平有限,敬请原谅;