暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL数据库引擎选取与索引优化

大鱼与财 2015-11-10
252

在设计数据库时,存储引擎和创建索引是我们首要考虑的问题,不同的应用场景选择不同的引擎会给系统带来既然不同的效率,是否考虑分表,事务机制,读写比例等都是决定引擎选取的因素。索引是帮我们高效获取数据的数据结构,是每个开发人员都应该关注和学习。

1.数据库存储引擎定义

MySQL中的数据用各种不同的技术存储在文件(或者内存)中,这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并最终提供不同的功能和能力,这些不同的技术以及配套的相关功能在MySQL中称为存储引擎(也称为表类型)。

2.MySQL数据库主要存储引擎

存储引擎

功能&特点

MyISAM拥有较高的插入,查询速度,但不支持事务,表级锁
InnoDB5.5版本后Mysql的默认数据库存储引擎,事务型数据库的首选引擎,支持ACID事务,支持行级锁定
Memory所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在Mysql重新启动时丢失,处理非事务表
Archive非常适合存储大量的独立的,作为历史记录的数据。因为它们不经常被读取。Archive拥有高效的插入速度,但其对查询的支持相对较差
CSV逻辑上由逗号分割数据的存储引擎。它会在数据库子目录里为每个数据表创建一个.CSV文件。这是一种普通文本文件,每个数据行占用一个文本行。CSV存储引擎不支持索引
BlackHole黑洞引擎,写入的任何数据都会消失,一般用于记录binlog做复制的中继
MRG_MYISAM将一定数量的MyISAM表联合而成一个整体,在超大规模数据存储时很有用,实现大数据的水平分表(如创建一个MRG_MyISAM引擎作为主表,可以实现读操作,更新,删除操作,在多个MyISAM引擎的子表中插入存储数据)
PERFORMANCE_SCHEMA主要用于收集数据库服务器性能参数。MySQL用户是不能创建存储引擎为PERFORMANCE_SCHEMA的表


更多精彩内容,请点击阅读原文!

http://www.phpthinking.com/archives/1367

文章转载自大鱼与财,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论