Mysql5.6以后,说 innode 的 select 性能不输 myisam 了,为什么 ?

查看:97
本文介绍了Mysql5.6以后,说 innode 的 select 性能不输 myisam 了,为什么 ?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

最近研究mysql 的相关知识,有几点不是很清楚,请指教:

1,mysql5.6前,myisam 查询性能比 innodb 好,原因是,做 select 查询时,myisam 把索引加载到了内存中,查询语句搜索时候,从 内存中把索引找出来,然后去 data 查找数据,优于,innodb 的二次搜索查询(走主键,理论 innodb 是快于 myisam的)。
以上理解有错吗?
2,Mysql5.6以后,说 innode 的 select 性能不输 myisam 了,为什么 ?

这个问题已被关闭,原因:问题已解决 - 问题已解决,且对他人无借鉴意义

解决方案

感觉楼主不必纠结这个问题,InnoDB是MySQL官方指定的默认引擎,维护力度都下在InnoDB身上了,SELECT性能更好也并不出奇.第三方的Percona Server也是选择基于InnoDB改进推出XtraDB.所以还是尽量使用InnoDB吧.

InnoDB使用独立表空间(innodb_file_per_table=1)后每个数据库的每个表都会生成一个数据空间(.ibd文件).
show variables like 'innodb_file_per_table'
可见Percona Server 5.6是默认开启"独立表空间"的.
独立表空间优点:
1.每个表都有自已独立的表空间.
2.每个表的数据和索引都会存在自已的表空间中.
3.可以实现单表在不同的数据库中移动.
4.空间可以回收.

InnoDB表(innodb_file_per_table=1):

/png/percona/5.6/data/wordpress/wp_users.frm 表结构
/png/percona/5.6/data/wordpress/wp_users.ibd 数据和索引

对比MyISAM表:

/png/percona/5.6/data/mysql/users.frm 表结构
/png/percona/5.6/data/mysql/users.MYD 数据
/png/percona/5.6/data/mysql/users.MYI 索引

这篇关于Mysql5.6以后,说 innode 的 select 性能不输 myisam 了,为什么 ?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆