随笔分类 -  数据库

SQL 语句用法
摘要:1.outer join、inner join、left join、right join的区别 内连接:进行连接的两个表对应的相匹配的字段完全相同的连接。join select s.name,c.name from students s join class c on s.classId=c.id ; 外连接又分为左外连接和右外连接。 左连接即LEFT OUTER JOIN: 两个表进行左连接时会返回左边表中的所有的行和右边表中与之相匹配的列值没有相匹配的用空值代替。 select s.name,c.name from students s left join class c ... 阅读全文

posted @ 2013-12-11 20:10 依蓝jslee 阅读(135) 评论(0) 推荐(0)

死锁
摘要:1.产生条件 死锁的发生必须具备以下四个必要条件。 1)互斥条件:指进程对所分配到的资源进行排它性使用,即在一段时间内某资源只由一个进程占用。如果此时还有其它进程请求资源,则请求者只能等待,直至占有资源的进程用毕释放。 2)请求和保持条件:指进程已经保持至少一个资源,但又提出了新的资源请求,而该资源已被其它进程占有,此时请求进程阻塞,但又对自己已获得的其它资源保持不放。 3)不剥夺条件:指进程已获得的资源,在未使用完之前,不能被剥夺,只能在使用完时由自己释放。 4)环路等待条件:指在发生死锁时,必然存在一个进程——资源的环形链,即进程集合{P0,P1,P2,··· 阅读全文

posted @ 2013-12-11 19:24 依蓝jslee 阅读(1034) 评论(0) 推荐(0)

HDFS(转)
摘要:一、HDFS架构 Rack(机架)指的是一些计算机节点构成的集合,他们也许在一个网络中。数据存储细节NameNode 目录结构Namenode的目录结构: ${dfs.name.dir}/current /VERSION/edits/fsimage/fstime dfs.name.dir是hdfs-site.xml里配置的若干个目录组成的列表。NameNode Namenode上保存着HDFS的名字空间。对于任何对文件系统元数据产生修改的操作,Namenode都会使用一种称为EditLog的事务日志记录下来。例如,在HDFS中创建一个文件,Namenode就会在Editlog中插入一条记录.. 阅读全文

posted @ 2013-12-04 14:10 依蓝jslee 阅读(740) 评论(0) 推荐(0)

orcle id和执行计划(转)
摘要:1.rownum rownum是在得到结果集的时候产生的,用于标记结果集中结果顺序的一个字段,这个字段被称为“伪数列”,也就是事实上不存在的一个数列。是一个总是从1开始的伪列。它的特点是按顺序标记,而且是逐次递加的,换句话说就是只有有rownum=1的记录,才可能有rownum=2的记录。简单的说 rownum 是对符合条件结果的序列号。 对于下面的SQL语句 SQL>select rownum,id,age,name from loaddata where rownum > 2; rownum>2没有记录,因为第一条不满足去掉的话,第二条的rownum 又成了1,依此类推, 阅读全文

posted @ 2013-12-02 09:33 依蓝jslee 阅读(368) 评论(0) 推荐(0)

缓存技术(转)
摘要:EhCache 1.简介 EhCache 是一个纯Java的进程内缓存框架。能直接缓存Java的对象。 ehcache是一个用Java实现的使用简单,高速,实现线程安全的缓存管理类库,ehcache提供了用内存,磁盘文件存储,以及分布式存储方式等多种灵活的cache管理方案。 Ehcache的类层次模型主要为三层,最上层的是CacheManager,他是操作Ehcache的入口。我们可以通过CacheManager.getInstance()获得一个单个的CacheManager,或者通过CacheManager的构造函数创建一个新的CacheManager。每个CacheMana... 阅读全文

posted @ 2013-12-01 21:19 依蓝jslee 阅读(392) 评论(0) 推荐(0)

SQL语句优化(转)
摘要:转自:http://www.cnblogs.com/ATree/archive/2011/02/13/sql_optimize_1.html1、 首先要搞明白什么叫执行计划? 执行计划是数据库根据SQL语句和相关表的统计信息作出的一个查询方案,这个方案是由查询优化器自动分析产生的,比如一条SQL语句如果用来从一个 10万条记录的表中查1条记录,那查询优化器会选择“索引查找”方式,如果该表进行了归档,当前只剩下5000条记录了,那查询优化器就会改变方案,采用 “全表扫描”方式。可见,执行计划并不是固定的,它是“个性化的”。产生一个正确的“执行计划”有两点很重要:(1) SQL语句是否清晰地告诉. 阅读全文

posted @ 2013-11-21 15:49 依蓝jslee 阅读(161) 评论(0) 推荐(0)

聚集索引(转)和MVCC
摘要:1.聚集 聚集索引的区别 聚集索引:物理存储按照索引排序 非聚集索引:物理存储不按照索引排序 优势与缺点 聚集索引:插入数据时速度要慢(时间花费在“物理存储的排序”上,也就是首先要找到位置然后插入),查询数据比非聚集数据的速度快 索引是通过二叉树的数据结构来描述的,我们可以这么理解聚簇索引:索引的叶节点就是数据节点。而非聚簇索引的叶节点仍然是索引节点,只不过有一个指针指向对应的数据块。如下图:非聚集索引聚集索引 索引可以提高检索效率,因为它的二叉树结构以及占用空间小,所以访问速度块。 但是有些时候用索引还不如不用索引快。比如说我们要检索上述表中的所有记录。 假... 阅读全文

posted @ 2013-11-21 09:18 依蓝jslee 阅读(426) 评论(0) 推荐(0)

Mongodb数据库
摘要:1.概述 NoSql,全称是 Not Only Sql,指的是非关系型的数据库。下一代数据库主要解决几个要点:非关系型的、分布式的、开源的、水平可扩展的。原始的目的是为了大规模web应用,这场运动开始于2009年初,通常特性应用如:模式自由、支持简易复制、简单的API、最终的一致性(非ACID)、大容量数据等。NoSQL被我们用得最多的当数key-value存储,当然还有其他的文档型的、列存储、图型数据库、xml数据库等。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,... 阅读全文

posted @ 2013-11-13 14:34 依蓝jslee 阅读(215) 评论(0) 推荐(0)

oracle分区原理
摘要:1.分区概述 1)可用性提高 当一个分区不可用(磁盘出故障等),优化器知道有这个分区机制,会相应的从查询计划中去除这个分区。提高整个表的可用性。 2)减少管理负担 假如需要重建一个100GB的表: *需要在某处存放100GB的空闲存储空间来存储它的副本。 *需要一个临时事务日志表来记录重建索引期间对基表的修改。 *假如在过程中出现故障,一切都付之东流。 但是当分区后就会减小这些负担。 3)改善语句性能 在数据仓库系统中,会执行并行DML,如果分区后,执行一个DELETE时,它会开启多个线程或进程来并行执行。这样效率更高。 在OLTP系统中,效果不明显,因为很少用并行DML... 阅读全文

posted @ 2013-11-13 11:10 依蓝jslee 阅读(567) 评论(0) 推荐(0)

B-树和B+树和B*树和R树
摘要:在大规模数据存储中,实现索引查询这样一个实际背景下,树节点存储的元素数量是有限的(如果元素数量非常多的话,查找就退化成节点内部的线性查找了),这样导致二叉查找树结构由于树的深度过大而造成磁盘I/O读写过于频繁,进而导致查询效率低下,那么如何减少树的深度(当然是不能减少查询的数据量),一个基本的想法就是:采用多叉树结构(由于树节点元素数量是有限的,自然该节点的子树数量也就是有限的)。 为了更有效的减少树的深度,新的查找树结构——多路查找树。根据平衡二叉树的启发,自然就想到平衡多路查找树结构。即B树结构。 磁盘读取数据是以盘块(block)为基本单位的。位于同一盘块中的所有数据都能被一次性... 阅读全文

posted @ 2013-11-13 10:12 依蓝jslee 阅读(856) 评论(0) 推荐(0)

数据库索引
摘要:1.顺序索引 顺序索引的作用主要用于能迅速地按顺序或随机地访问文件中的记录顺序索引的结构是按顺序存储搜索码的值并将搜索码与包含该搜索码的记录关联起来。 如果被索引的字段本身按照一定的顺序排序,那么这种索引叫做聚集索引。否则叫做非聚集索引。 如果被索引的字段的每个值都有一个索引与其对应,那么这种索引叫做稠密索引,否则叫做稀疏索引。 顺序索引分为两类,单级索引(很少使用)和多级索引(通常是B+树,大量使用)。 单级索引就是把所有的索引字段以及对应的文件位置按顺序一个个的排列出来,这种索引查找起来比较慢,因为是顺序存储的,可以使用二分查找法,但是总体来说效率不高,这种索引是最基础的索引,一... 阅读全文

posted @ 2013-11-12 20:22 依蓝jslee 阅读(245) 评论(0) 推荐(0)

数据库三范式
摘要:1.第一范式(确保每列保持原子性) 第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。 第一范式规定关系的每一个分量必须是一个不可分的数据项。 eg:非第一范式的例子如表5-5,可以转换为第一范式如表5-6。表5-5导师专业研究生张三 李四表5-6导师专业研究生1研究生2 张三李四2.第二范式 第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。也就是说在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。 也就是说列... 阅读全文

posted @ 2013-11-12 20:07 依蓝jslee 阅读(183) 评论(0) 推荐(0)

导航