Database
firestone-sh
技术的蜗牛
展开
-
database batching insert
In DB2,e.g if you issue below sql statement 100 times,insert into TableA (id , fields) values (1, 'val1');insert into TableA (id , fields) values (2, 'val2');insert into TableA (id , fields) ...原创 2012-02-05 23:20:58 · 148 阅读 · 0 评论 -
Oracle索引
一,oracle的索引陷阱一个表中有几百万条数据,对某个字段加了索引,但是查询时性能并没有什么提高,这主要可能是oracle的索引限制造成的。 oracle的索引有一些索引限制,在这些索引限制发生的情况下,即使已经加了索引,oracle还是会执行一次全表扫描,查询的性能不会比不加索引有所提高,反而可能由于数据库维护索引的系统开销造成性能更差。 下面是一些常见的索引限制问题。 1、使用不等于...原创 2011-02-25 12:47:02 · 57 阅读 · 0 评论 -
cluster nad non-cluster index
There are clustered and nonclustered indexes. A clustered index is a special type of index that reorders the way records in the table are physically stored. Therefore table can have only one cluster...原创 2011-02-10 15:00:48 · 156 阅读 · 0 评论 -
数据库众生相
1. 关系数据库基于严格的关系数据库理论,但面对现有电子商务,SNS网站业务的挑战,Scalability和Performance不能很好地解决 2. Key-Value数据库No SQL数据库如google的Big Table. 解决了关系数据库的不足,但基于Key取值,并不能如同SQL一般进行查询。因为数据都是非结构化,离散的。 3. 面向文档的数据库如:Mongo...原创 2010-10-08 22:20:23 · 87 阅读 · 0 评论 -
数据库设计
1. Sharding(Shared Nothing), 实现scale out的一种方式。其主要目的是为突破单节点数据库服务器的I/O能力限制,解决数据库扩展性问题。适用用业务逻辑上独立的数据,bloger,digger上单个user的数据。Shard可以根据ID,时间段,表来划分。 如果结果涉及多个shard,可以在应用层抽象出一个数据库操作接口,对从多个shard取回的结果进行mer...原创 2009-09-06 16:30:27 · 64 阅读 · 0 评论 -
Mysql 笔记
1. InnoDB和MyISAM是在使用MySQL最常用的两个表类型,各有优缺点,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持以及外部键等高级数据库功能。...原创 2009-09-02 13:49:38 · 60 阅读 · 0 评论 -
Oracle 笔记
1. oracle Hintsselect /*+ FIRST_ROWS(100) */ field1, field2,... from ... where ...上面是Hints, 用于优化,告诉oracle 尽快返回前100行,适用于OLTP。还有ALL_ROWS,告诉Oracle用最少的资源处理所有行并一次返回。 2. FTS(全表扫描)可以并行,通过设置 DB_F...2010-07-07 17:27:51 · 66 阅读 · 0 评论 -
Hibernate Cache
1. get/load区别如果记录存在,get返回对象(或代理对象);否则返回null。如果记录存在,load返回对象;否则返回 NotObjectFoundException2.hibernate Cache2.1 一级缓存,在当前session内2.2 Query CacheCache queries and results.方法:1. 在hib...原创 2009-02-21 20:33:51 · 70 阅读 · 0 评论 -
SERVICE_NAME, SID和schema区别
1. SID是Oracle实例名,实例名指的是用于响应某个数据库操作的数据库管理系统的名称。实例名是由初始化参数文件的参数instance_name决定的。如果这个参数不被指定(即instance_name没有被指定为任何值),那么实例的名字由该用户的环境变量ORACLE_SID(注意这里是大写)决定。在windows平台下,则是注册表中oracle_sid值决定。SID是Oracle实例的唯...2009-12-28 17:20:29 · 349 阅读 · 0 评论 -
数据库表设计
Q: 如何在开发后期修改表结构对现有程序影响最小1. 表设计是预留一个无任何业务意义的字段,比如userFiled1,userField2,....方便以后与具体业务字段映射。 2. 设计一个特殊的字段存放XML文件,XML文件中存放自定义的结构,方便系统扩充。存取是需要解析XML字符串 3. 通过象Hibernate这种物理表结构和对象逻辑结构的映射。修改发生在物理表结构和...原创 2009-07-08 10:49:33 · 254 阅读 · 0 评论 -
rownum解析
摘自:http://tenn.iteye.com/blog/99339,仅供自学 在Oracle中,要按特定条件查询前N条记录,用个rownum就搞定了。 select * from emp where rownum <= 5 而且书上也告诫,不能对rownum用">",这也就意味着,如果你想用 select * from emp where rownum > 5 则...原创 2011-02-26 08:31:54 · 108 阅读 · 0 评论 -
Oracle 笔记
1. rownum and rowid rownum是在得到结果集的时候产生的,用于标记结果集中结果顺序的一个字段,这个字段被称为“伪数列”,也就是事实上不存在的一个数列。它的特点是按顺序标记,而且是逐次递加的,换句话说就是只有有rownum=1的记录,才可能有rownum=2的记录。 和rownum相似,oracle还提供了另外一个伪数列:rowid。不过rowid和rownum...原创 2011-02-26 08:47:54 · 70 阅读 · 0 评论 -
hibernate session 管理
1. Session per Operation (Anti pattern) 2. Session per Request use "Open Session In View" when rendering layer seperate from servlet, e.g. in JSP 3. Session per Request with detached obje...原创 2012-02-05 18:44:57 · 80 阅读 · 0 评论 -
数据库分库分表规则
from: http://rdc.taobao.com/team/jm/archives/590 一般有几个目标:1. 数据离散性,数据分布到多个库,多个表中mod, round robin, dayofweek,dayofMonth 2. 避免热点数据在一个数据库库表上 3. 扩容时有大的数据迁移 以下的解决方案基于 整表搬迁但不会有表中行级数据迁移 ...原创 2011-07-23 20:46:23 · 251 阅读 · 0 评论 -
数据库 replication and partitioning
partitioning应用在划分正交的业务领域到不同的数据库;replication同loader balance用在一起。有同步和异步两种方式。 1. Synchoronus网速要求比较快,用在业务关键的领域比如金融 不同节点相互备份和partitioning 2. Asynchoronous 异步方式用Queue,Pub/Sub方式。应用场景包括...原创 2011-03-11 13:49:23 · 193 阅读 · 0 评论 -
start with....connect by...
select ... from tablename start with cond1 connect by cond2 where cond3; 简单说来是将一个树状结构存储在一张表里,比如一个表中存在两个字段: id,parentid那么通过表示每一条记录的parent是谁,就可以形成一个树状结构。 用上述语法的查询可以取得这棵树的所有记录。 其中COND1是根结点的限定语句,当然可以放宽限定条...原创 2011-02-26 21:43:46 · 77 阅读 · 0 评论 -
返回奇数行或者偶数行数据库表记录
--方法1用Decode函数for even number of recordsselect*from emp where rowid in(select decode(mod(rownum,2),0,rowid) from emp);for odd number of recordsselect*from emp where rowid in(select decode(mod(rownum...原创 2011-02-26 18:05:38 · 531 阅读 · 0 评论 -
Oracle Decode用法
from: http://www.adp-gmbh.ch/ora/sql/decode.htmldecode (expression, search_1, result_1)decode (expression, search_1, result_1, search_2, result_2)decode (expression, search_1, result_1, sear...原创 2011-02-26 17:58:58 · 66 阅读 · 0 评论 -
如何删除数据库表中相同记录
如何删除表中相同的记录(比如相同的id,假设没有主键)--方法1 DELETE FROM EMP WHERE ROWID NOT IN(SELECT MAX(ROWID) FROM EMP GROUP BY EMPNO)--方法2DELETE FROM emp e WHERE ROWID NOT IN ( SELECT MIN(ROWID) FROM emp aWHERE e.emp...原创 2011-02-26 17:42:46 · 124 阅读 · 0 评论 -
rank() analytic function
As an analytic function, RANK computes the rank of each row returned from a query with respect to the other rows returned by the query, based on the values of the value_exprs in the order_by_clause....原创 2011-02-26 09:38:17 · 89 阅读 · 0 评论 -
不用max函数返回表中最大值或者最小值
返回Test表中字段num的最大值或者最小值(不用Max函数), 近为了好玩。:) --返回最大值select distinct num from Test where num not in( select lesser.num from Test as greater,Test as lesserwhere lesser.num<greater.num) --返...原创 2011-02-26 09:09:41 · 1180 阅读 · 0 评论 -
高性能数据库设计
1. 字段冗余 2. Sharding 水平切分:分库,分表 根据一个标志字段如user id 问题:如何路由? 3. 集群(Cluster),负载均衡(找到集群中的DB) 4. 读写DB分离Master DB(写),Slave DB(读),一般读写比例是10:1 ...原创 2009-06-29 09:28:18 · 134 阅读 · 0 评论 -
Hibernate笔记
1. inverse=true | false 2. cascade 3. lazy-loading 4. session-per-request & open session filter 5. transaction demarcation原创 2009-12-16 08:08:48 · 58 阅读 · 0 评论 -
数据库设计
1. Sharding(Shared Nothing), 实现scale out的一种方式。其主要目的是为突破单节点数据库服务器的I/O能力限制,解决数据库扩展性问题。适用用业务逻辑上独立的数据,bloger,digger上单个user的数据。Shard可以根据ID,时间段,表来划分。 如果结果涉及多个shard,可以在应用层抽象出一个数据库操作接口,对从多个shard取回的结果进行merge,原创 2012-10-08 13:39:43 · 369 阅读 · 0 评论 -
JDBC Driver Type
Type 1: JDBC-ODBCDrawback: client code must be loaded and configured on each client machine. Type 2: A Native-API partly-Java driverJDBC call -> client APIdrawback: require native code on the clientsa原创 2012-10-08 13:38:25 · 275 阅读 · 0 评论 -
persistence solution
1. straight Jdbc trivial app, report app2. Hibernatesession -------- Persistent Managerhibernate.cfg.xml3. iBatis:SqlMap ------- Persistent ManagerSqlMapConfig.xml4. EJB 3 entity bean5. Spring jdbc原创 2012-10-08 13:37:55 · 201 阅读 · 0 评论 -
Hibernate Cache
1. get/load区别如果记录存在,get返回对象(或代理对象);否则返回null。如果记录存在,load返回对象;否则返回 NotObjectFoundException2.hibernate Cache2.1 一级缓存,在当前session内2.2 Query CacheCache queries and results.方法:1. 在hiberante Configuration 文件中原创 2012-10-08 13:37:28 · 339 阅读 · 0 评论 -
SERVICE_NAME, SID和schema区别
1. SID是Oracle实例名,实例名指的是用于响应某个数据库操作的数据库管理系统的名称。实例名是由初始化参数文件的参数instance_name决定的。如果这个参数不被指定(即instance_name没有被指定为任何值),那么实例的名字由该用户的环境变量ORACLE_SID(注意这里是大写)决定。在windows平台下,则是注册表中oracle_sid值决定。SID是Oracle实例的唯一名原创 2012-10-08 13:54:20 · 1149 阅读 · 0 评论 -
数据库表设计
Q: 如何在开发后期修改表结构对现有程序影响最小1. 表设计是预留一个无任何业务意义的字段,比如userFiled1,userField2,....方便以后与具体业务字段映射。 2. 设计一个特殊的字段存放XML文件,XML文件中存放自定义的结构,方便系统扩充。存取是需要解析XML字符串 3. 通过象Hibernate这种物理表结构和对象逻辑结构的映射。修改发生在物理表结构和hibernate原创 2012-10-08 13:39:20 · 471 阅读 · 0 评论 -
高性能数据库设计
1. 字段冗余 2. Sharding 水平切分:分库,分表 根据一个标志字段如user id 问题:如何路由? 3. 集群(Cluster),负载均衡(找到集群中的DB) 4. 读写DB分离Master DB(写),Slave原创 2012-10-08 13:39:13 · 352 阅读 · 0 评论 -
SQL
1. DECODE的语法:DECODE(value,if1,then1,if2,then2,if3,then3,...,else) 2. to_date('2008-04-23 00:00:00' ,'yyyy-mm-dd hh24:mi:ss') SELECT TO_CHAR(CURRENT_DATE, 'YYYY-MM-DD') FROM dual; 3. SUBSTR 从1开始而不原创 2012-10-08 13:38:34 · 243 阅读 · 0 评论 -
Oracle 笔记
1. oracle Hintsselect /*+ FIRST_ROWS(100) */ field1, field2,... from ... where ...上面是Hints, 用于优化,告诉oracle 尽快返回前100行,适用于OLTP。还有ALL_ROWS,告诉Oracle用最少的资源处理所有行并一次返回。 2. FTS(全表扫描)可以并行,通过设置 DB_FILE_MULTIB原创 2012-10-08 13:55:27 · 210 阅读 · 0 评论 -
Hibernate笔记
1. inverse=true | false 2. cascade 3. lazy-loading 4. session-per-request & open session filter 5. transaction原创 2012-10-08 13:54:13 · 268 阅读 · 0 评论 -
数据库众生相
1. 关系数据库基于严格的关系数据库理论,但面对现有电子商务,SNS网站业务的挑战,Scalability和Performance不能很好地解决 2. Key-Value数据库No SQL数据库如google的Big Table. 解决了关系数据库的不足,但基于Key取值,并不能如同SQL一般进行查询。因为数据都是非结构化,离散的。原创 2012-10-08 13:56:29 · 297 阅读 · 0 评论 -
SQL
1. DECODE的语法:DECODE(value,if1,then1,if2,then2,if3,then3,...,else) 2. to_date('2008-04-23 00:00:00' ,'yyyy-mm-dd hh24:mi:ss') SELECT TO_CHAR(CURRENT_DATE, 'YYYY-MM-DD') FROM dual; 3. S...原创 2009-06-09 10:54:18 · 81 阅读 · 0 评论 -
JDBC Driver Type
Type 1: JDBC-ODBCDrawback: client code must be loaded and configured on each client machine. Type 2: A Native-API partly-Java driverJDBC call -> client APIdrawback: require native code on...原创 2009-06-06 08:33:22 · 108 阅读 · 0 评论 -
persistence solution
1. straight Jdbc trivial app, report app2. Hibernatesession -------- Persistent Managerhibernate.cfg.xml3. iBatis:SqlMap ------- Persistent ManagerSqlMapConfig.xml4. EJB 3 enti...原创 2009-05-16 22:19:55 · 52 阅读 · 0 评论 -
synonym及数据库对象权限控制-随想
用Synonym同义词拥有如下好处:节省大量的数据库空间,对不同用户的操作同一张表没有多少差别;扩展的数据库的使用范围,能够在不同的数据库用户之间实现无缝交互;同义词可以创建在不同一个数据库服务器上,通过网络实现连接。原创 2014-09-21 08:40:51 · 584 阅读 · 0 评论 -
Oracle Concept - 读书笔记
1. Transactions are one of the features that sets Oracle Database apart from原创 2014-09-19 11:51:39 · 520 阅读 · 0 评论 -
SQL语句解析过程
The parse process includes the following phases(解析过程包括以下阶段): Checking that the SQL statement is syntactically valid (that is, that the SQL conforms to the rules of the SQL language, and that all keywo转载 2014-09-19 16:43:26 · 470 阅读 · 0 评论