`

H2数据库——我真的用到所谓生产环境了——请让我慢慢相信你。

阅读更多

项目不大不小——放到一般企业肯定没那么多钱,放在政府里,几十“米”也不算多——都说Java比PHP运行快多了,但真正互联网项目我是不打算用Java的,而这个项目也就百十个用户使用,配个IBM 3650也对得起它了,用groovy不会有性能瓶颈吧?。

 

Well,回到正题——5506的Intel至强CPU, 4G的内存,146G1.5w HD,除了Tomcat6.x Apache2.2 H2.1.3x三个应用层的服务器,几乎没其他什么应用了。用cron每周重启三个服务一次。

 

在开发环境(T2370笔记本)中性能不错,解析Excel并批量插入2000条数据(50列左右)也就2、3秒,ab下分页查询(1-2w记录的表),勉强达到20 requests/second,等过段时间在服务器中-n几百万次试试,别短时间高负荷的数据库操作挂了。

 

因为业务需求不太复杂,只是用到数据库,少量表组合查询(试图),基本索引,批处理等功能,H2 tcp mode + c3p0连接池——不过查了半天,没看到h2有设置最大链接数的参数,那我只要加大其内存开销了,1.5G。

 

关注H2数据库的童鞋敬请等待偶慢慢加数据和维护日志摘要——其实俺也备用了Mysql(需要修改少许程序),不过请让我慢慢相信你。。。

分享到:
评论
30 楼 key232323 2010-11-01  
后来把c3p0换成 bonecp,2个partition * 20 each,
一直稳定,性能有所提高。
29 楼 aws 2010-10-15  
huangtiancheng 写道
elmar 写道
[quote="yidwo"]
[quote="key232323"]
——都说Java比PHP运行快多了,但真正互联网项目我是不打算用Java的,而这个项目也就百十个用户使用,配个IBM 3650也对得起它了,用groovy不会有性能瓶颈吧?。



java比PHP运行快多了??????



PHP这个连connection pool都没有的玩意,谁比php还慢那是乌龟。

这个东西不能一概而论,虽然说从语言层面上java是比php快,但是实际在做网站的时候就不这样了.java比php对系统资源的消耗更大,如果硬件环境一般的话,java有时候反倒更慢。如果说还用了一堆hibernate,spring的框架,那就更慢了。没有连接池要是mysql的话影响不大,php在和mysql建立连接的时候速度是很快的,这和两门语言设计的初衷有关,不能说没有连接池就如何如何。


PHP基本是比java慢1-2个数量级以上
28 楼 myreligion 2010-10-14  
key232323 写道
myreligion 写道
H2用来缓存数据,放临时表还行,如果数据需要持久化,还是Mysql吧?程序出点问题,OOM一下,数据可就全没了。


TCP mode下,不是这样子的吧,我再仔细看看文档。

In addition to that, running out of memory should be avoided. In older versions, OutOfMemory errors while using the database could corrupt a databases.

H2单独一个进程,Web Server单独一个进程 web server 的 oom 不会影响 H2的。。。

要是这样的话,你图H2的什么那?

类似H2的,像Timesten,建议都是在应用端部署,直接小cache一把到主库的负载。如果单飞,H2就没什么优势了吧?
27 楼 key232323 2010-10-13  
zzsczz 写道
这个楼啊  不知道歪哪里去了。

运行效率,涉及到预编译 、缓存 、 优化等 技术 ,开发效率就更复杂了   必须考虑开发时间和成本(小项目php,大的jee),还有部署成本

php的特点就是一个请求执行完毕释放所有资源,比较不容易内存爆掉,运行效率不是优势 (安全第一,适合做web服务器端程序),人工便宜 ,满足一般需要,如果需要事务监视器 等服务 ,就要专业人士了,成本就海了;jee平台包括的内容多些,免费的也不少,但优化需要经验。

前端都是css  html  xml 还有脚本之类的string,  比较速度?  比谁的字符处理能力强么 ? php也可以跑在jvm上,这个怎么算?



这个,这个……

我只是狭隘地比较么——就是不太负载的web应用在pc server上部署后,用户负荷和一些数据库操作的耗时(单个或并发)——换句话说,就是一样的功能,用户使用起来哪个感觉速度快。

每个人遇到项目和使用涉及到的技术都不同,就我自己,我觉得nginx+php cgi+mysql更快些。。比nginx proxy + tomcat
26 楼 zzsczz 2010-10-12  
这个楼啊  不知道歪哪里去了。

运行效率,涉及到预编译 、缓存 、 优化等 技术 ,开发效率就更复杂了   必须考虑开发时间和成本(小项目php,大的jee),还有部署成本

php的特点就是一个请求执行完毕释放所有资源,比较不容易内存爆掉,运行效率不是优势 (安全第一,适合做web服务器端程序),人工便宜 ,满足一般需要,如果需要事务监视器 等服务 ,就要专业人士了,成本就海了;jee平台包括的内容多些,免费的也不少,但优化需要经验。

前端都是css  html  xml 还有脚本之类的string,  比较速度?  比谁的字符处理能力强么 ? php也可以跑在jvm上,这个怎么算?
25 楼 key232323 2010-10-12  
再来几个
jetty 比较 apache , servlet 比较 groovy template servlet的
参数-c 100 -n 1000

windows下查询一个少列的表,分组写入json文件

查询数据库
Jetty6.1 -> Insert record(id,name) select in page  100 counts (TCP H2)
Requests per second: 11.49 [#/sec]

请求一个json文件
Apache Proxy -> Json by Servlet(Java)
Requests per second:    355.56 [#/sec] (mean)

Apache -> Json by PHP
Requests per second:    336.84 [#/sec] (mean)

Jetty6.1 -> DSL generate Json by Groovy
Requests per second:    40.46 [#/sec] (mean)
24 楼 key232323 2010-10-12  
DOCDOC 写道
都是说话不严谨满嘴跑火车的主儿。倒是给大家看看你的Report啊?


汗。。莫非是说我??

先给一个PHP mysql的



This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/

Benchmarking 138jc.com (be patient)


Server Software:        Apache/2.2.3
Server Hostname:        XXXX
Server Port:            80

Document Path:          /
Document Length:        10011 bytes

Concurrency Level:      100
Time taken for tests:   2.529269 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Non-2xx responses:      1000
Total transferred:      10384000 bytes
HTML transferred:       10011000 bytes
Requests per second:    395.37 [#/sec] (mean)
Time per request:       252.927 [ms] (mean)
Time per request:       2.529 [ms] (mean, across all concurrent requests)
Transfer rate:          4009.06 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   1.5      0       8
Processing:    27  240  95.1    240    2072
Waiting:       26  239  94.8    240    2071
Total:         28  240  94.9    241    2072

Percentage of the requests served within a certain time (ms)
  50%    241
  66%    247
  75%    251
  80%    253
  90%    260
  95%    269
  98%    297
  99%    537
100%   2072 (longest request)
23 楼 DOCDOC 2010-10-12  
都是说话不严谨满嘴跑火车的主儿。倒是给大家看看你的Report啊?
22 楼 key232323 2010-10-12  
huangtiancheng 写道
elmar 写道
[quote=&quot;yidwo&quot;]
[quote=&quot;key232323&quot;]
——都说Java比PHP运行快多了,但真正互联网项目我是不打算用Java的,而这个项目也就百十个用户使用,配个IBM 3650也对得起它了,用groovy不会有性能瓶颈吧?。



java比PHP运行快多了??????



PHP这个连connection pool都没有的玩意,谁比php还慢那是乌龟。

这个东西不能一概而论,虽然说从语言层面上java是比php快,但是实际在做网站的时候就不这样了.java比php对系统资源的消耗更大,如果硬件环境一般的话,java有时候反倒更慢。如果说还用了一堆hibernate,spring的框架,那就更慢了。没有连接池要是mysql的话影响不大,php在和mysql建立连接的时候速度是很快的,这和两门语言设计的初衷有关,不能说没有连接池就如何如何。


说的很对。

在select 次数10左右的php程序,在一个4核机器上 ab -c 100到100都是可以的
java ??嘿嘿惨不忍睹,web层面上一个web container就比apache mod_php差别就大得很了,别说nginx + fastcgi了,
在连接mysql socket方面,jdbc效率不觉得比c写的php extension快

就是php的语法觉得没有新兴的这些脚本语言酷

这两天做一些系统调优,另写一blog与大家分享。
21 楼 huangtiancheng 2010-10-12  
elmar 写道
[quote=&quot;yidwo&quot;]
[quote=&quot;key232323&quot;]
——都说Java比PHP运行快多了,但真正互联网项目我是不打算用Java的,而这个项目也就百十个用户使用,配个IBM 3650也对得起它了,用groovy不会有性能瓶颈吧?。



java比PHP运行快多了??????



PHP这个连connection pool都没有的玩意,谁比php还慢那是乌龟。

这个东西不能一概而论,虽然说从语言层面上java是比php快,但是实际在做网站的时候就不这样了.java比php对系统资源的消耗更大,如果硬件环境一般的话,java有时候反倒更慢。如果说还用了一堆hibernate,spring的框架,那就更慢了。没有连接池要是mysql的话影响不大,php在和mysql建立连接的时候速度是很快的,这和两门语言设计的初衷有关,不能说没有连接池就如何如何。
20 楼 elmar 2010-10-08  
[quote=&quot;yidwo&quot;]
[quote=&quot;key232323&quot;]
——都说Java比PHP运行快多了,但真正互联网项目我是不打算用Java的,而这个项目也就百十个用户使用,配个IBM 3650也对得起它了,用groovy不会有性能瓶颈吧?。



java比PHP运行快多了??????



PHP这个连connection pool都没有的玩意,谁比php还慢那是乌龟。
19 楼 Xorcerer 2010-10-07  
linkerlin 写道
H2?
啥东西的缩写?


就叫H2。

http://www.h2database.com/html/main.html
18 楼 zzsczz 2010-09-29  
如果是商业应用,demo版本还是可以用h2的 ,   开发和测试都很方便,维护的功能和性能调优需要额外的代价,毕竟维护工作以及商业数据库也不是免费的。

如果要从h2升级到其他数据库 ,关于数据的导入和导出 ,h2自己带工具(导出到csv )   ,  或者使用etl工具  。如果使用ORM作为访问工具,ORM自带数据迁移工具就更好了。
17 楼 key232323 2010-09-29  
myreligion 写道
H2用来缓存数据,放临时表还行,如果数据需要持久化,还是Mysql吧?程序出点问题,OOM一下,数据可就全没了。


TCP mode下,不是这样子的吧,我再仔细看看文档。

In addition to that, running out of memory should be avoided. In older versions, OutOfMemory errors while using the database could corrupt a databases.

H2单独一个进程,Web Server单独一个进程 web server 的 oom 不会影响 H2的。。。
16 楼 myreligion 2010-09-28  
H2用来缓存数据,放临时表还行,如果数据需要持久化,还是Mysql吧?程序出点问题,OOM一下,数据可就全没了。
15 楼 jitabc 2010-09-28  
H2的全文检索还是很强滴。。。
14 楼 key232323 2010-09-28  
借此地问一个问题

H2查询出来的列名都是默认大写的,有没有参数设置成小写???

莫非偶要自己再编译下source...

修改下
org.h2.jdbc.JdbcResultSetMetaData

getColumnName/Label方法,ant下就可以了。。。
13 楼 whking2003 2010-09-26  
难道是hsql 2.0?
12 楼 key232323 2010-09-26  
jiage17 写道
用H2数据库时,如果第一次是在Administator下应用的,当转换到其他域名下却不可以了
不知道为什么,楼主能分析下吗


请将你的具体情况描述一下呵

论坛里的朋友应该都可以帮下忙滴
11 楼 windlike 2010-09-26  
其实我早都用到生产环境上了

相关推荐

    毕业设计: JAVA/数据库 课程设计、毕业设计 仓库管理系统 使用 MySQL和Java

    【标题】中的“JAVA/数据库 课程设计、毕业设计 仓库管理系统 使用 MySQL和Java”表明这是一个基于Java编程语言和MySQL数据库技术的毕业设计项目,主要目标是构建一个仓库管理系统。这个系统将涵盖仓库管理的基本...

    Web实验_expect6h2_Web;聊天室_web实验室名称_web聊天_web_

    MySQL、PostgreSQL或MongoDB等关系型或非关系型数据库可能会被用到。开发者需要设计合适的数据库架构,确保数据的一致性和安全性。 前端界面通常由HTML、CSS和JavaScript组成,可能使用了诸如React、Vue.js或...

    PHP语言教程与案例附资源链接

    项目中会用到MySQL数据库,可以通过以下命令在Linux环境下安装: ```bash sudo apt install mysql-server ``` #### 二、PHP基础教程 ##### 1. PHP语法 - **基本语法** ```php echo "Hello, World!"; ?&gt; ``` ...

    B911152-Calendar-app

    或者,考虑到轻量级和可移植性,开发者可能选择使用文件系统或嵌入式数据库如H2来存储数据。 事件提醒功能可能涉及到定时任务,Java中的`java.util.Timer`和`java.util.concurrent.ScheduledExecutorService`可以...

    源码PHP版

    12. **RESTful API**:如果涉及到Web服务,可能会用到REST(Representational State Transfer)架构风格,用于构建可伸缩的分布式系统。 13. **AJAX**:异步JavaScript和XML,用于创建动态和交互性强的Web页面,常...

Global site tag (gtag.js) - Google Analytics