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

2016-11-05 15:22发布

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

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

付费偷看设置
发送
4条回答
曾经最美1 - 这个人很懒,什么都没留下
1楼 · 2016-11-05 15:33.采纳回答

对比MyISAM表:

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

InnoDB表(innodb_file_per_table=1):

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