Database
iteye_8146
这个作者很懒,什么都没留下…
展开
-
oracle索引基础概念
原理:对表中的某些列进行排序,那么当查找这些列时,就不需要全表查询了,可在排序好的列中进行快速搜索,比如二分法等。应用:在where子句中出现的列往往是需要创建索引的列。总结:1)提高查询的效率2)空间换时间,需要占用表空间tablespace,如果索引文件特别大时,可考虑将索引放在另外的表空间中。3)索引类型有标准索引(B树索引)、位图索引和函数索引。位图索引应用于基数(基数是指某个列可能拥有的...原创 2010-02-08 10:01:55 · 93 阅读 · 0 评论 -
spring事务管理的一个知识盲点
使用spring事务时,事务所作用的方法需要抛出异常,这样transactionManager才能判断该方法是否有问题。所以该方法不要自己捕获了异常,不然transactionManager认为它是成功的。例如:[code="xml"][/code]UserService被事务作用,addUser方法为: [code="java"]public void addUser() {...原创 2010-07-27 19:49:37 · 98 阅读 · 0 评论 -
ibatis缓存的简单使用和源码分析
配置: <cacheModel type="LRU" id="user-cache"> <flushInterval hours="24"/> <flushOnExecute statement="user.addUser"/> <flushOnExecute sta2010-07-21 18:03:29 · 139 阅读 · 0 评论 -
where 1=1是否造成性能影响?
讨论见http://www.iteye.com/topic/710338帖子中说如果使用了where 1=1,则索引查询会失效。通过实验,该结论是错误的:mysql> explain select * from pu_user_message where userid=1\G*************************** 1. row ****************...原创 2010-07-14 09:21:39 · 2370 阅读 · 0 评论 -
mysql反引号的使用
反引号`,数字1左边的符号。保留字不能用于表名,比如desc,此时需要加入反引号来区别,但使用表名时可忽略反引号。create table desc报错create table `desc`成功create table `test`成功drop table test成功 保留字不能用于字段名,比如desc,此时也需要加入反引号,并且insert等使用时也要加上反引号。...原创 2010-07-14 09:19:24 · 144 阅读 · 0 评论 -
数据库索引的优缺点
优点:索引通过对某些列进行排序,可大大提高查询的速度。缺点:1)空间换时间,索引会占用额外的物理存储空间。2)在对表记录进行新增、修改和删除的时候,索引需要进行维护。3)索引使用不当,反而会造成查询减慢或者没有效果。比如组合索引的使用。...原创 2010-06-06 20:17:04 · 129 阅读 · 0 评论 -
hbm.xml插入外部xml文件的配置
hbm.xml可插入外部xml文件替换重复使用的内容。例如我这里对User进行分表,将使用user0、user1、user2之类的表,因此hbm映射文件内容基本都是一样的。可使用ENTITY声明插入外部的xml片段。如dbmap/User.hbm.xml:<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC...2010-04-28 22:39:02 · 186 阅读 · 1 评论 -
select *与select 所有字段的查询效率比较
mysql 5.1.37表记录数41,547,002,即4000w行使用远程客户端取1000条数据,统计时间:[code="sql"]SELECT * FROM `dmsp`.`dmsp_dimension_content` LIMIT 0, 1000;[/code]时间2.218s,网络消耗0.547s[code="sql"]SELECT `id`, `appid`, `ao...2011-07-15 10:38:23 · 1454 阅读 · 0 评论 -
Hibernate二级缓存与查询缓存的组合探究
0.前言 由于对Hibernate的二级缓存和查询缓存的区别不了解,也不知道它们起什么作用。于是动手做了一些实验,对它们的组合使用有了一个表面的认识。1.前提 1) 不使用一级缓存(Session级别)的情况。因为大部分api对session的操作都进行n层封装,用完session就close,一般很少使用到一级缓存。 2) ...2009-07-23 16:03:04 · 81 阅读 · 0 评论 -
Hibernate解析bean时Could not find a getter的异常解决
net.sf.hibernate.PropertyNotFoundException: Could not find a getter for oProduct in class这个异常的原因有多个,其中之一是:get/set是不允许方法名中有连续两个大写字母的。比如这里的oProduct,那么它的getter和setter为: public OProduct getOProduct...2010-03-01 17:50:29 · 140 阅读 · 0 评论 -
createSQLQuery报出“列名无效”错误的解决方法
比如hql为Select po.Id as {productOrder.intId} From o_product_order po,那么productOrder这个映射文件只能有intId这个属性值,如果有另外的属性值,则会出现列名无效的错误。 解决方法为用as {productOrder.intId}之类的语句把productOrder所有的属性值进行转换。比如productOrder...2010-03-01 17:38:58 · 1383 阅读 · 0 评论 -
Hibernate2和3中关于sequence的配置区别
hbm映射文件中的配置: <id name="id" column="id" type="string" length="20" unsaved-value="null" ..2010-03-01 17:34:58 · 76 阅读 · 0 评论 -
jdbc和jta事务管理小结
jdbc事务管理只能限于单个数据源,不能跨多个数据源。事务是默认自动提交的,即一条sql提交一次。这里以两个数据源为例:事务管理DAO数据源transactionManagerdao1ds1 dao2ds2即事务管理作用在ds1上,在ds2不起作用。以下代码说明了事务提交...2010-07-28 11:01:26 · 98 阅读 · 0 评论