二、MySQL功能简介
由于MySQL是非常流行的免费数据库管理系统,介绍它的资料也非常多,这里不准备罗列MySQL的功能,仅介绍和我们测试有关的几项功能。
1.创建数据库
MySQL的数据库实际上对应磁盘上一个目录,该目录下的.frm文件保存所有表的定义,而数据存储则随存储引擎的不同而不同,myisam的数据文件保存在同一个目录下,一个非分区表一个.myd数据文件,索引则存储在.myi后缀的文件中,如果是每个表独立存储的innodb引擎,每个表的数据和索引保存在一个与表同名的.ibd文件中,如果是共享存储的innodb引擎,所有数据库的innodb表和索引保存在一个.ibd数据文件中。
2.数据引擎
MySQL一个区别于其他数据库的特色功能就是可插拔式存储引擎。前面介绍了2种主要的存储引擎,myisam和innodb,前一个是mysql自有的,它不支持事务,因此也没有提交和回滚操作,不太能满足数据库的ACID的要求,一般只用于对数据库完整性要求不太高的场合和mysql系统表。Innodb原本是第3方的Innodb公司开发的,一度因版权原因退出MySQL的发行包,转而以插件形式提供,在经历多次并购以后,现在卷土重来成为了MySQL的默认存储引擎,它支持事务和外键约束,更符合ACID的要求,可以满足大部分业务需求。还有其他数据引擎,比如memory和csv,它们的使用都不如上述2种广泛,具体使用方法参考文档。数据库引擎和表一一对应,同一个数据库允许不同的表采用不同的引擎,但这些表之间的互访问性有所不同,比如:假如2个表存在外键引用关系,则2表必须都是innodb引擎。为了得到较好的执行计划,尽量在一个查询中涉及的表采用同一种引擎。
三、TPCH测试
和前几次测试一样,主要测试数据加载和查询性能,也对数据压缩进行测试。
1.准备工作
mysql是MySQL提供的命令行工具,它包括单行命令方式和交互方式。
mysql常用的命令行参数选项如下:
mysql -u 用户名 -p 口令 数据库名
构造测试环境,首先建立一个名为tpch的数据库,并设置它为当前数据库。然后执行创建表的脚本。需要注意将脚本中的表名统一为小写字符,因为tpc-h生成的查询语句中的表名都是小写,并检查一下表的存储引擎是否如所预期的,若不是,需要制定默认存储引擎。






























