最近研究mysql 的相關(guān)知識,有幾點不是很清楚,請指教:
1,mysql5.6前,myisam 查詢性能比 innodb 好,原因是,做 select 查詢時,myisam 把索引加載到了內(nèi)存中,查詢語句搜索時候,從 內(nèi)存中把索引找出來,然后去 data 查找數(shù)據(jù),優(yōu)于,innodb 的二次搜索查詢(走主鍵,理論 innodb 是快于 myisam的)。
以上理解有錯嗎?
2,Mysql5.6以后,說 innode 的 select 性能不輸 myisam 了,為什么 ?
InnoDB表(innodb_file_per_table=1):
感覺樓主不必糾結(jié)這個問題,InnoDB是MySQL官方指定的默認(rèn)引擎,維護(hù)力度都下在InnoDB身上了,SELECT性能更好也并不出奇.第三方的Percona Server也是選擇基于InnoDB改進(jìn)推出XtraDB.所以還是盡量使用InnoDB吧.
InnoDB使用獨立表空間(innodb_file_per_table=1)后每個數(shù)據(jù)庫的每個表都會生成一個數(shù)據(jù)空間(.ibd文件).show variables like innodb_file_per_table
可見Percona Server 5.6是默認(rèn)開啟"獨立表空間"的.獨立表空間優(yōu)點:1.每個表都有自已獨立的表空間.2.每個表的數(shù)據(jù)和索引都會存在自已的表空間中.3.可以實現(xiàn)單表在不同的數(shù)據(jù)庫中移動.4.空間可以回收.
對比MyISAM表: