|
该帖已经被评为良好帖
|
|
|---|---|
| 作者 | 正文 |
|
时间:2007-01-31 关键字: Java 内存表
当然,首先硬件的升级和合理的程序优化应该是最先考虑的,下面所说都是在这个基础之上的。
再者,性能的表现对用户和开发者而言,可能是不一样的。这点后面再具体讨论。 无论在项目还是产品中,往往面临各种状况: 1)硬件没有升级计划,但是希望性能提升 2)硬件有冗余,但是客观条件限制使用:如规定数据必须集中,就会出现N个应用的DB在一个Server上,往往DB Server就成为了瓶颈 对于上面的情况,我曾经考虑过使用内存表,为什么选择内存表,主要基于: 1)内存对于多数机器是冗余的,CPU的资源成为瓶颈很多,但是内存很少成为瓶颈,即使是普通的PC Server 2G+的内存都很常见,因此往往是CPU占用居高不,内存是使用确很少 2)游说客户增加1~4G内存远远比新购置服务器容易 3)有人说倒占用内存,其实刨除二进制数据,数据占用的内存并不多;以前作C/S应用的使用曾经把接近2千万数据完全缓存到内存中,才几百M而已 大致想法: 现在是:DB<-->应用 准备:DB<-->内存<-->应用 优点: 1)对开发者而言,性能有一定提升 2)对客户而言,性能提升很明显 为什么这么说,用户能看到的“赝”性能,是内存<-->应用的性能,用户看到页面返回的时候数据很可能还在内存里面,并没有实际反映到文件系统(也就是DB)中,只是对于这部分的花销,对用户而言是不可视的 缺点: 1)开发量增加,这个是没有什么疑问的 2)以前使用过C/S的内存表,而且有比较成熟的现成的产品或者控件;但是,到现在我还没有看到什么很成熟的Java内存表方案,Cache到内存容易,但是要完成比较复杂的查询(毕竟更多的操作是select),必须有查询机制,但是现有的Java对象没有很合适的机制,自己去完整实现一个类SQL的查询是否现实? 3)同步机制问题,涉及同步、数据安全等等 上面的一些只是一个很初步的一些想法,对应用而言,最重要的是缺点中的(3),但是对个人而言对头痛的是确定中的(2),不知道大家有什么意见? 欢迎并谢谢大家讨论 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
时间:2007-01-31
我也很关注相关的话题
对于数据量大 但是变化不频繁(半个月或更多才更新一次) 的数据表的查询 该如何合理利用缓存来提升性能 一直是我非常关注的 |
|
| 返回顶楼 | |
|
时间:2007-01-31
找到性能的瓶颈,
在关键的地方弄个缓存,效果会很明显的 |
|
| 返回顶楼 | |
|
时间:2007-01-31
giscat 写道 找到性能的瓶颈,
在关键的地方弄个缓存,效果会很明显的 呵呵,大量历史数据的查询怎么cache? |
|
| 返回顶楼 | |
|
时间:2007-01-31
其实楼主是想寻找一个高性能的,内存关系数据库。你可以看看H2DB。
|
|
| 返回顶楼 | |
|
时间:2007-01-31
终于明白啥叫咨询了........
|
|
| 返回顶楼 | |
|
时间:2007-01-31
什么叫内存表?不就是内存数据库么?
|
|
| 返回顶楼 | |
|
时间:2007-01-31
robbin 写道 其实楼主是想寻找一个高性能的,内存关系数据库。你可以看看H2DB。
robbin所说的 h2db 和 eXtremeDB 哪个更好呢? 网上很少看到相关的评测和介绍:( robbin能不能简单介绍一下? 还有 h2db官网是不是 http://h2database.com ?? eXtremeDB的官网没有找到 |
|
| 返回顶楼 | |
|
时间:2007-01-31
何不参考一下 JdonFramework 呢?
|
|
| 返回顶楼 | |
|
时间:2007-02-01
fins 写道 robbin 写道 其实楼主是想寻找一个高性能的,内存关系数据库。你可以看看H2DB。
robbin所说的 h2db 和 eXtremeDB 哪个更好呢? 网上很少看到相关的评测和介绍:( robbin能不能简单介绍一下? 还有 h2db官网是不是 http://h2database.com ?? eXtremeDB的官网没有找到 :( http://www.mcobject.com/ 虽然没有评测,但估计eXtremeDB更快,因为它不是用JAVA写的,不过要MONEY |
|
| 返回顶楼 | |













