mysql优化思路(存储引擎)
2016-09-09 14:51
253 查看
之前写的项目里边为了保证数据安全 不管什么表用的都是innodb。当初也不理解,大家都这么定了。但是当面对大数据查询时候 这个就很要命了。innodb不同于myisam的地方是索引和数据是结合在一起的,导致了每次二叉树分裂,都伴随着数据的迁移。这样数据少的情况下是看不出来的。(mysql 是索引和数据分开,先从找出索引,然后根据索引去找数据文件)。但是数据量庞大的时候。效率就不是一个数量级别的。
例如一个表 有个复合索引。主键和一个普通的字段。当根据主键id或者是根据两个字段共同查询的效率上,myisam是一样快的,但是采用innode只采用主键查询跟采用两个字段查询 效率慢了27倍。
_____________________________
后发先这样说也不是很准确 当数据表中有几个大字段的时候才会导致这样的差异,这几个大字段不一定是建立索引。在单用id查询的时候 需要从碎裂的数据块中跳跃查询,当用复合索引的时候 就避免了这种情况。
但是当没有这几个大字段的时候,两者速度相差不大
这里再剖析下innodb,主键索引和复合索引的区别,主键索引下边是跟数据块的,复合索引就是单独形成的索引。通过复合索引直接定位到数据块 这点跟myisam有点类似
例如一个表 有个复合索引。主键和一个普通的字段。当根据主键id或者是根据两个字段共同查询的效率上,myisam是一样快的,但是采用innode只采用主键查询跟采用两个字段查询 效率慢了27倍。
_____________________________
后发先这样说也不是很准确 当数据表中有几个大字段的时候才会导致这样的差异,这几个大字段不一定是建立索引。在单用id查询的时候 需要从碎裂的数据块中跳跃查询,当用复合索引的时候 就避免了这种情况。
但是当没有这几个大字段的时候,两者速度相差不大
这里再剖析下innodb,主键索引和复合索引的区别,主键索引下边是跟数据块的,复合索引就是单独形成的索引。通过复合索引直接定位到数据块 这点跟myisam有点类似
相关文章推荐
- MySQL存储引擎MyISAM和InnoDB的区别及mysql优化
- 总结下MySQL存储引擎的区别和性能优化的一些方法
- 【mysql】关于InnoDB存储引擎 text blob 大字段的存储和优化
- mysql优化系列02--(存储引擎选择)
- MySQL存储引擎MyISAM和InnoDB的区别及mysql优化
- 在MySQL的InnoDB存储引擎中count(*)函数的优化
- Mysql优化5-选择合适的存储引擎
- mysql性能优化学习笔记-存储引擎
- Mysql5.5 InnoDB存储引擎配置和优化
- MySQL优化之——修改默认存储引擎
- MySQL之存储引擎MyISAM/InnoDB高并发优化经验
- MySQL优化系列(五)--数据库存储引擎(主要分析对比InnoDB和MyISAM以及讲述Mrg_Myisam分表)
- Mysql inndodb 存储引擎的简单总结(组成结构,锁,事务,备份,优化)
- Mysql5.5 InnoDB存储引擎配置和优化
- Mysql innodb存储引擎的性能优化一
- Mysql innodb存储引擎的性能优化二
- MYSQL优化(二):索引优化、存储引擎优化、表结构优化等
- Mysql5.5 InnoDB存储引擎配置和优化
- MYSQL性能优化之Mysql体系结构,存储引擎
- Mysql inndodb 存储引擎的简单总结(组成结构,锁,事务,备份,优化)