为什么我测试出来的h2性能比mysql要差
从h2官网的数据看,h2的性能要比mysql的高,但是我在本机上测试结果却是mysql的性能是h2的10倍,是不是测试方法或者配置有问题,请问有什么方法可以优化h2的性能?
测试类的代码
public class H2Test {
static JdbcTemplate template;
public static void main(String[] args) {
ApplicationContext ac = new FileSystemXmlApplicationContext("beans_h2.xml");
template=(JdbcTemplate) ac.getBean("jdbcTemplate");
template.update("drop table if exists person");
template.update("create table person (id int,name varchar(10))");
int count=100;
long start=System.currentTimeMillis();
for (int i = 0; i < count; i++) {
System.out.println(i);
template.update("insert into person (id,name) values("+i+",'"+i+"')");
}
long end=System.currentTimeMillis();
System.out.println("平均插入用时:"+(end-start)/count+"ms");
start=end;
for (int i = 0; i < count; i++) {
Map map=template.queryForMap("select * from person where id="+i);
System.out.println(map);
}
end=System.currentTimeMillis();
System.out.println("平均查询用时:"+(end-start)/count+"ms");
}
}
配置文件
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" >
<!--
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
-->
<property name="driverClassName" value="org.h2.Driver"/>
<property name="url" value="jdbc:h2:testtest"/>
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"></property>
</bean>
h2的平均插入及查询用时在100ms左右,mysql在10ms左右
h2版本h2-1.3.169
mysql版本5.5.20
操作系统:win7
cpu:2.4Ghz
内存:4g
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
spring boot jpa
10000条数据, H2 575ms
我测试也一样,插入1000条数据要5秒左右。spring boot框架,jpa测试。说快的人能拿出测式样例吗。还是就没测过。
又见到一个没有主键的表。
id上面建索引再看看吧。
数据量太小了,再大些,多测几次,就显出了
更可笑的是用100条数据来测数据库性能!