- 浏览: 54461 次
- 性别:
- 来自: 上海
最新评论
-
sdwe9091:
看到这个受益匪浅,谢谢
spring3.0使用annotation完全代替XML(三) -
掌心童话:
不错嘛~!跟我有一样的喜好~。
spring3.0使用annotation完全代替XML(三) -
黑色柳丁110:
<div class="quote_title ...
hibernate二级缓存实战 -
黑色柳丁110:
<div class="quote_title ...
hibernate二级缓存实战 -
黑色柳丁110:
<div class="quote_title ...
hibernate二级缓存实战
文章列表
mount iso :
sudo mount -o loop /your_path/image.iso /dir
broadcom STA wireless driver in ubuntu9.10 :
ubuntu9.10.iso/pool/restricted/b/bcmwl/bcmwl-kernel-source_5.10.91.9+bdcom-0ubuntu4_i386.deb
mount ntfs partition :
sudo mount -t ntfs /dev/sda5 /dir/
virtual box mount share fold :
sudo mount -t ...
本章探讨表中数据不同的存储方式,以及特殊的物理实现对性能的影响
尽管数据库的物理结构和SQL没有直接的关系,但如何使用SQL却受到这些底层结构的影响
在优化数据的物理布局常碰到两个冲突的目标,一个目标是尽量以紧凑的方式存储数据,这有助于查询尽快找到所有数据。另一个目标是尽量将数据分散存储,以便多个线程可以并发写入,不会造成资源争用而互相妨碍
索引
数据的物理布局与数据的特征及预期用途密切相关,所以表和索引的物理设计,需要数据库管理员和开发者合作,根据业务需求,结合既有DBMS的特性,使物理设计尽可能最佳
当待查的键值指向大量记录时,通常效率较高的做法是从头到尾扫描并忽略索引,当一个字段 ...
这章深入探讨SQL的双重特性,SQL与数据库引擎的关系以及对优化器的影响
关系数据库的出现,要归功于E.F. Codd的关系理论开创性研究成果。Codd的研究成果为数据库学科提供了坚实的数学基础,简单地讲,关系理论论证了可以通过一组关系运算符来查找满足某些条件的数据,这些关系运算符支持任何基本查询。需要注意的是,关系理论只关心如何根据查询条件取得正确的数据集,不包括排序,统计等功能,关系理论研究的是集合,但不涉及为这些集合排序
SQL与数据库
数据库的主要作用是存储数据,并且提供可靠的基础设施允许多个用户访问这些数据,同时能够处理资源竞争保持数据一致性
SQL是一种声明性的语言,SQL查 ...
最近在应用中第一次接触到JUL(java.util.logging),顺便对自己使用过的日志框架做个简单的总结
Java里的日志框架很多,open-open上面就记载了一大堆,比较常用的有Log4j, Jakarta Commons Logging (JCL), JUL, SLF4J, Logback等,主要可以分为两大类
一、完整的日志实现,比如Log4j, JUL, Logback
Log4j: JAVA里面出现最早,1999年由Ceki Glc创建。Log4j凭借强大的功能,简单的配置,丰富齐全的appender,灵活的自定义layout,成为使用最为广泛的日志框架。虽然面临Logb ...
这章讲解为关键数据提供最高效访问路径的基本策略:建立索引
打破索引的神话
数据库表的访问突然变慢了?加索引吧。我们听过太多类似的索引能提高访问速度的话了,索引当然不是包治百病的灵丹妙药,先来看看索引带来的问题吧
1.索引是一种尽快访问特定数据的技术,但无法对所有数据实现快速存取
索引是一种以原子粒度访问数据的手段,而不是为了检索大量数据的。程序的输入值,定义的数据子集的大小是建立索引的基础。如果索引策略与数据检索需求严重不符,反而会降低查询性能
2.索引开销相当大
包括磁盘空间与处理开销,有时索引的数据量远远超过数据表本身的大小,维护一个索引的开销,可能会比维护一个表的开销还要大。而 ...
这一章描述了高效访问数据库的基本原则,在战略大局上把握高性能的关键因素
查询识别
程序设计上应该考虑查询识别,即根据SQL讯速定位到调用该SQL的应用程序代码,有助于定位性能问题
减少于数据库交互的次数
使用连接池,避免反复建立数据库连接。连接建立后,尽量批量提交SQL,减少于数据库交互的次数
大局上跳出业务逻辑的限制
把握大局,跳出业务逻辑的限制。SQL是声明性语言,所以设法使你的代码超越业务过程的规格说明,尽量用一条SQL完成所需的操作,减少对表的重复访问,避免建立临时表,中间结果等。尽量避免借助cursor进行循环操作。
保持schema稳定
尽量不要在应用程序中使用DDL ...
第一章强调良好的模型和合理的数据库设计的重要性
sql的背后有着关系模型的数学理论做为基础,以前一直以为关系模型指的是一个表通过外键与其它表关联起来,实际却不是这样。关系模型不是因为不同表之间建立了关系,而是因为表内不同字段之间存在关系。几个值就处于表的同一行,它们之间就存在关系。关系理论的关键原理是:关系不包含重复数据,且记录之间没有顺序
规范化是关系理论很重要的一部分,它的原理是按照严格的逻辑要求,将松散的数据组织在一起,形成结构化的信息,这种严格性是通过不同级别的范式来界定的。最具代表性的是1NF,2NF,3NF,通常符合3NF的数据库也符合BCNF和5NF
1NF:原子性,确定主键 ...
Hibernate Session中有一系列的持久化方法比如:save, update, saveOrUpdate, persist, merge, replicate等等,经常有人问起它们之间的细微差别,而Hibernate的官方文档并没有进行详细的说明,因此以几个测试用例验证它们的不同之外。文中所使用的持久化类以及配置请参考之前写的hibernate二级缓存
一、save, update, saveOrUpdate
这三个方法使用最为频繁,区别较直观,简单说一下
save:持久化对象,并根据ID生成策略分配ID
update(detachedInstance):根据detachedI ...
IT行业发展的过程中,新技术层出不穷,今天数据处理依然是系统的核心。与以往不同的是,需要处理的数据量程指数级别增长,甚至超过的硬件的增长速度,所以仅仅做到正确处理还不够,必须足够的快。
对于数据库的性能问题,开发人员的一惯做法是先写出正确的程序,一旦出现问题,再由DBA来解决,这种做法未能从源头上解决性能问题。首先关注性能问题的应该是开发者,但开发者不一定非常熟悉硬件、DBMS以及各种数据库产品的特性,这些是DBA的专长。但对SQL,不仅仅要知道,还必须深刻理解SQL及关系理论。
这一系列的文章是对The Art of SQL这本书的读书笔记与开发中的一些感悟。暂时不关注具体的数据库产品,仅 ...
http://www.infoq.com/interviews/rod_johnson_spring30
In this interview, Rod Johnson talks to infoq about spring3.0, the new release of spring framework
The role of spring is to reduce the complexity of application development. Spring takes the complexity that otherwise would complicate your busines ...
像日志的这样的小细节,在开发过程中常常被忽略。除了区分级别外,日志的输出内容通常处理地很随意。而实际上日志在监控系统行为,排错,性能优化,安全审计等方面扮演着重要的角色。
总体上说一份良好的日志应该符合一个特性:greppable。grep是unix/linux系统上一个很强大的工具,它能够从文件中找出匹配某个正则表达式的所有行。也就是说良好的日志文件应该能够让日志分析工具在庞大的日志数据里很容易很精准地定位到所需要的信息。
至于如何才算greppable,还得看具体的分析需求,总结一下考虑的因素大概有以下几个方面:
一、what to log? 需要纪录哪些信息
错误信息,核心性能数据 ...
通过这篇文章纪录hibernate二级缓存的一些使用经历,利用几个test case,从代码角度说明二级缓存在使用过程中一些需要注意的问题
使用到的Model类有两个,Author, Book, 两者之间为一对多的关系
@Entity
@Cache(usage = CacheConcurrencyStrategy.R ...