欢迎来到天天文库
浏览记录
ID:9495806
大小:64.00 KB
页数:7页
时间:2018-05-01
《innodb和myisam数据存储特性研究--》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、InnoDB和MyISAM数据存储特性研究>> InnoDB和MyISAM是MySQL最重要的两种数据存储引擎,两者都可用来存储表和索引,InnoDB的索引和表存储在同一个文件中,MyISAM的索引和表存储在不同文件,但即使多个索引,也共存于一个文件。 网络上很多比较都是基于两者的事务性处理和锁处理机制等,似乎InnoDB比MyISAM没有缺点了。但研究发现,MyISAM在数据特别是索引存储方面具有突出的优势,下面就此开展讨论。 1.研究结论 1)InnoDB占用磁盘空间比MyISAM大,MyISAM存储数据可节省空间12
2、%,存储索引可节省95%; 2)InnoDB对空闲存储空间的使用不优。 研究发现,MyISAM可大量节省磁盘空间,特别是对索引的存储上,优势巨大,这对大型Mysql数据库的数据表和索引的物理设计,具有较大的指导意义。 2.研究对象及获得的数据 Mysql版本:5.1.26-rc-munity 研究对象为创建的一个表,mytable3,初始为InnoDB类型。有54万行非重复数据(用随机函数产生),两个索引。共进行两个实验,获得的实验数据如下。表占用_MB索引占用_MBInnoDB文件占用_MBMyISAM文件占用_MB初
3、始类型InnoDB2562409140类型改为MyISAM2228914230类型改回InnoDB25624010340 从实验数据可以看出,表类型alter为MyISAM后,所占磁盘空间仅8MB,为InnoDB的4%。而且随着表类型改回InnoDB,InnoDB表空间被迫扩充120MB,达到1034MB,以支持该表数据的回迁。 3.实验过程 --实验用表:mytable3,InnoDB类型。 表有三个列,52万行数据,后两个列用随机函数产生,重复行很少。都创建了索引。此时该表数据占用空间256MB,索引占用空间240MB
4、,InnoDB表空间914MB。mysql>descmytable3; +-------+-----------+------+-----+---------+-------+
5、Field
6、Type
7、Null
8、Key
9、Default
10、Extra
11、 +-------+-----------+------+-----+---------+-------+
12、id
13、int(11)
14、YES
15、
16、NULL
17、
18、
19、name
20、char(100)
21、YES
22、MUL
23、NULL
24、
25、
26、name2
27、char(120)
28、YES
29、MUL
30、N
31、ULL
32、
33、 +-------+-----------+------+-----+---------+-------+ 3roysql>selectcount(*)frommytable3; +----------+
34、count(*)
35、 +----------+
36、524288
37、 +----------+ 1roysql>selecttable_name,table_schema,data_length,index_lengthfrominformation_schema.tablese='my
38、table3'; +------------+--------------+-------------+--------------+
39、table_name
40、table_schema
41、data_length
42、index_length
43、 +------------+--------------+-------------+--------------+
44、mytable3
45、testbk
46、269271040
47、252706816
48、 +------------+--------------+-------------+
49、--------------+ 1roysqltestlocaldata]$ls-ltr total947188 drysqlmysql4096Aug1909:53test drysqlmysql4096Aug1909:53mysql -rysqlmysql125Aug1910:43mysql-bin.000001 -rysqlmysql125Aug1910:43mysql-bin.000002 -rysqlmysql1086Aug1917:18mysql-bin.000003 -rysqlmysql693Aug1
50、920:51mysql-bin.000004 -rysqlmysql125Aug1920:54mysql-bin.000005 -rysqlmysql125Aug1920:58mysql-bin.000006 -rysqlmysql6Aug1
此文档下载收益归作者所有