自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

M‘s IT Blog

虚心求学,务实探索……

  • 博客(34)
  • 资源 (8)
  • 收藏
  • 关注

转载 Jenkins+Maven+SVN快速搭建持续集成环境

一、安装Jenkins二、配置Jenkins三、自动编译四、自动测试五、自动部署  一、安装Jenkins地址http://mirrors.jenkins-ci.org/下载适合的Jenkins版本。Windows最新稳定版的Jenkins地址为:http://mirrors.jenkins-ci.org/windows-st

2012-07-18 17:25:10 4140

转载 Java编程中“为了性能”尽量要做的几点

最近的机器内存又爆满了,除了新增机器内存外,还应该好好review一下我们的代码,有很多代码编写过于随意化,这些不好的习惯或对程序语言的不了解是应该好好打压打压了。下面是参考网络资源总结的一些在Java编程中尽可能要做到的一些地方。1. 尽量在合适的场合使用单例使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于

2012-04-03 20:28:34 418

转载 理解MySQL——并行数据库与分区(Partition)

1、并行数据库 1.1、并行数据库的体系结构并行机的出现,催生了并行数据库的出现,不对,应该是关系运算本来就是高度可并行的。对数据库系统性能的度量主要有两种方式:(1)吞吐量(Throughput),在给定的时间段里所能完成的任务数量;(2)响应时间(Response time),单个任务从提交到完成所需要的时间。对于处理大量小事务的系统,通过并行地处理许多事务可以提高它的吞吐量。

2011-11-17 16:06:38 493

转载 理解MySQL——复制(Replication)

1、复制概述1.1、复制解决的问题数据复制技术有以下一些特点:(1)    数据分布(2)    负载平衡(load balancing)(3)    备份(4)    高可用性(high availability)和容错1.2、复制如何工作从高层来看,复制分成三步:(1)    master将改变记录到二进制日志(binary log)中(这些记录叫做

2011-11-17 16:05:34 391

转载 理解MySQL——索引与优化

写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点。考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录。如果没有索引,查询将对整个表进行扫描,最坏的情况下,如果所有数据页都不在内存,需要读取10^4个页面,如果这10^4个页面在磁盘上随机分布,需要进行10^4次I/O,假设磁盘每次I/O时间为10ms(忽略数据传输时间),

2011-11-17 16:04:46 347

转载 理解MySQL——架构与概念

写在前面:最早接触的MySQL是在三年前,那时候MySQL还是4.x版本,很多功能都不支持,比如,存储过程,视图,触发器,更别说分布式事务等复杂特性了。但从5.0(2005年10月)开始,MySQL渐渐步入企业级数据库的行列了;复制、集群、分区、分布式事务,这些企业级的特性,使得现在的MySQL,完全可以应用于企业级应用环境(很多互联网公司都用其作为数据库服务器,尽管节约成本是一个因素,但是没有强

2011-11-17 16:03:59 424

转载 浅谈SQLite——查询处理及优化

查询处理及优化是关系数据库得以流行的根本原因,也是关系数据库系统最核心的技术之一。SQLite的查询处理模块非常的精致,而且很容易移植到不支持SQL的存储引擎,Berkeley DB最新的版本已经将其完整的移植过来。本文将简要的讨论一下SQLite的查询处理及优化。     查询处理一般来说,包括词法分析、语法分析、语义分析、生成执行计划以及计划的执行几个部分。SQLite的词法分析器是手工写

2011-11-17 16:00:59 970

转载 浅谈SQLite——浅析Lemon

1、概述  Lemon是一个LALR(1)文法分析器生成工具。虽然它是SQLite作者针对SQLite写的一个分析器生成工具,但是它与bison和yacc类似,是一个可以独立于SQLite使用的开源的分析器生成工具。而且它使用与yacc(bison)不同的语法规则,可以减少编程时出现错误的机会。Lemon比yacc和bison更精致、更快,而且是可重入的,也是线程安全的——这对于支持多线程的程

2011-11-17 15:59:14 630

转载 浅谈SQLite——实现与应用

1、前言有一些日子没有仔细关注SQLite了,今天打开其主页,发现其最新的版本已经是3.6.22了,更让我惊喜的是它的用户越来越多,而且邮件列表的关注者也越来越多,突然觉得自己已经太old了。惊喜的同时,不得不聊上几句了。首先,来看看都有哪些人在使用SQLite,主页上列举一长串NB的用户,其中不乏像Adobe,Apple,Firefox,甚至连google,Microsoft,S

2011-11-17 15:57:34 489

转载 SQLite入门与分析(九)---VACUUM命令分析

VACUUM命令是SQLite的一个扩展功能,模仿PostgreSQL中的相同命令而来。若调用VACUUM带一个表名或索引名, 则将整理该表或索引。在SQLite 1.0中,VACUUM命令调用 gdbm_reorganize()整理后端数据库文件。SQLITE 2.0.0中去掉了GDBM后端,VACUUM无效。在2.8.1版中,VACUUM被重新实现。现在索引名或表名被忽略。当数

2011-11-17 15:55:34 649

转载 SQLite入门与分析(八)---存储模型(3)

写在前面:接上一节,本节主要讨论索引页面格式,以及索引与查询优化的关系。(1)索引页面格式sqlite> select * from sqlite_master;table|episodes|episodes|2|CREATE TABLE episodes( id integer primary key,name text, cid int)index|name_index

2011-11-17 15:54:46 403

转载 SQLite入门与分析(八)---存储模型(2)

3、页面结构(page structure)数据库文件分成固定大小的页面。SQLite通过B+tree模型来管理所有的页面。页面(page)分三种类型:要么是tree page,或者是overflow page,或者是free page。 3.1、Tree page structure每个tree page分成许多单元(cell),一个单元包含一个(或部分)pa

2011-11-17 15:53:51 480

转载 SQLite入门与分析(八)---存储模型(1)

写在前面:SQLite作为嵌入式数据库,通常针对的应用的数据量相对于通常DBMS的数据量是较小的。所以它的存储模型设计得非常简单,总的来说,SQLite把一个数据文件分成若干大小相等的页面,然后以B树的形式来组织这些页面。而对于大型的数据库管理系统,比如Oracle,或者DM ,存储模型要复杂得多。就拿Oracle来说吧,它对数据文件不仅从物理进行分块,而且从逻辑上进行分段,盘区和页的一个层次划分

2011-11-17 15:52:58 501

转载 c++中的const与指针

在c/c++中,指针本身就是一个难点,再加与const的结合,常会产生许多让人费解的地方,在这里做个小结。 1.定义const对象const int buffsize=512;因为常量定义后就不能修改,所以定义时必须初始化.const i,j=0; //error,i没有初始化2.const对象默认为文件的局部变量//file1.ccextern const i

2011-11-17 15:49:03 315

转载 SQLite入门与分析(七)---浅谈SQLite的虚拟机

写在前面:虚拟机技术在现在是一个非常热的技术,它的历史也很悠久。最早的虚拟机可追溯到IBM的VM/370,到上个世纪90年代,在计算机程序设计语言领域又出现一件革命性的事情——Java语言的出现,它与c++最大的不同在于它必须在Java虚拟机上运行。Java虚拟机掀起了虚拟机技术的热潮,随后,Microsoft也不甘落后,雄心勃勃的推出了.Net平台。由于在这里主要讨论SQLite的虚拟机,不打算

2011-11-17 15:46:45 1400

转载 SQLite入门与分析(六)---再谈SQLite的锁

写在前面:SQLite封锁机制的实现需要底层文件系统的支持,不管是Linux,还是Windows,都提供了文件锁的机制,而这为SQLite提供了强大的支持。本节就来谈谈SQLite使用到的文件锁——主要基于Linux和Windows平台。 Linux的文件锁Linux 支持的文件锁技术主要包括建议锁(advisory lock)和强制锁(mandatory lock

2011-11-17 15:44:33 553

转载 SQLite入门与分析(五)---Page Cache之并发控制

写在前面:本节主要谈谈SQLite的锁机制,SQLite是基于锁来实现并发控制的,所以本节的内容实际上是属于事务处理的,但是SQLite的锁机制实现非常的简单而巧妙,所以在这里单独讨论一下。如果真正理解了它,对整个事务的实现也就理解了。而要真正理解SQLite的锁机制,最好方法就是阅读SQLite的源码,所以在阅读本文时,最好能结合源码。SQLite的锁机制很巧妙,尽管在本节中的源码中,我写了很多

2011-11-17 15:12:55 369

转载 SQLite Version3.3.6源代码文件结构

Version 3.3.6源代码文件结构                                            文件名称大小byte备注API部分main.c35414SQLite Library的大部分接口

2011-11-17 15:11:18 429

转载 大容量存储结构

一、要点*磁盘结构Disk Structure*磁盘调度Disk Scheduling*磁盘管理Disk Management*交换空间管理Swap-Space Management*磁盘可靠

2011-11-17 13:00:48 759

转载 SQLite入门与分析(四)---Page Cache之事务处理(3)

写在前面:由于内容较多,所以断续没有写完的内容。11、删除日志文件(Deleting The Rollback Journal)一旦更改写入设备,日志文件将会被删除,这是事务真正提交的时刻。如果在这之前系统发生崩溃,就会进行恢复处理,使得数据库和没发生改变一样;如果在这之后系统发生崩溃,表明所有的更改都已经写入磁盘。SQLite就是根据日志存在情况决定是否对数据库进行恢复处理。

2011-11-15 17:26:42 492

转载 SQLite入门与分析(四)---Page Cache之事务处理(2)

写在前面:个人认为pager层是SQLite实现最为核心的模块,它具有四大功能:I/O,页面缓存,并发控制和日志恢复。而这些功能不仅是上层Btree的基础,而且对系统的性能和健壮性有关至关重要的影响。其中并发控制和日志恢复是事务处理实现的基础。SQLite并发控制的机制非常简单——封锁机制;别外,它的查询优化机制也非常简单——基于索引。这一切使得整个SQLite的实现变得简单,SQLite变得很小

2011-11-15 17:24:14 367

转载 SQLite入门与分析(四)---Page Cache之事务处理(1)

写在前面:从本章开始,将对SQLite的每个模块进行讨论。讨论的顺序按照我阅读SQLite的顺序来进行,由于项目的需要,以及时间关系,不能给出一个完整的计划,但是我会先讨论我认为比较重要的内容。本节讨论SQLite的事务处理技术,事务处理是DBMS中最关键的技术,对SQLite也一样,它涉及到并发控制,以及故障恢复,由于内容较多,分为两节。好了,下面进入正题。 本节通过一个具体的例子来分析

2011-11-15 17:18:39 389

转载 BTree,B-Tree,B+Tree,B*Tree

B树      即二叉搜索树:       1.所有非叶子结点至多拥有两个儿子(Left和Right);       2.所有结点存储一个关键字;       3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;      如:              B树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,如果查询

2011-11-15 17:04:36 295

转载 SQLite入门与分析(三)---内核概述(2)

写在前面:本节是前一节内容的后续部分,这两节都是从全局的角度SQLite内核各个模块的设计和功能。只有从全局上把握SQLite,才会更容易的理解SQLite的实现。SQLite采用了层次化,模块化的设计,而这些使得它的可扩展性和可移植性非常强。而且SQLite的架构与通用DBMS的结构差别不是很大,所以它对于理解通用DBMS具有重要意义。好了,下面我们开始讨论SQLite剩余的两部分:Back-e

2011-11-15 15:58:17 337

转载 SQLite入门与分析(三)---内核概述(1)

写在前面:从本章开始,我们开始进入SQLite的内核。为了能更好的理解SQLite,我先从总的结构上讨论一下内核,从全局把握SQLite很重要。SQLite的内核实现不是很难,但是也不是很简单。总的来说分为三个部分,本章主要讨论虚拟机(Virtual Machine),但是这里只是从原理上概述,不会太多的涉及实际代码。但是概述完内核之后会仔细讨论源代码的。好了,下面我们来讨论虚拟机(VM)。

2011-11-15 15:19:48 391

转载 SQLite入门与分析(二)---设计与概念(2)

写在前面:本节讨论事务,事务是DBMS最核心的技术之一.在计算机科学史上,有三位科学家因在数据库领域的成就而获ACM图灵奖,而其中之一Jim Gray(曾任职微软)就是因为在事务处理方面的成就而获得这一殊荣,正是因为他,才使得OLTP系统在随后直到今天大行其道.关于事务处理技术,涉及到很多,随便就能写一本书.在这里我只讨论SQLite事务实现的一些原理,SQLite的事务实现与大型通用的DBMS相

2011-11-15 15:03:15 340

转载 SQLite入门与分析(二)---设计与概念(1)

写在前面:谢谢各位的关注,没想到会有这么多人关注。高兴的同时,也感到压力,因为我接触SQLite也就几天,也没在实际开发中用过,只是最近项目的需求才来研究它,所以我很担心自己的文章是否会有错误,误导别人。但是我很想把自己的学习成果与大家分享,所以如果大家觉得我有不对的地方,望不吝赐教。我原打算直接从VDBE入手的,因为它起着承上启下的作用,是整个SQLite的核心,并分析源码,但考虑到这是一个

2011-11-15 15:02:22 393

转载 SQLite入门与分析(一)---简介

写在前面:出于项目的需要,最近打算对SQLite的内核进行一个完整的剖析,在此希望和对SQLite有兴趣的一起交流。我知道,这是一个漫长的过程,就像曾经去读Linux内核一样,这个过程也将是辛苦的,但我相信结果一定是美好的... ...接下来是第一章。1、SQLite介绍自几十年前出现的商业应用程序以来,数据库就成为软件应用程序的主要组成部分。正与数据库管理系统非常关键一样,它

2011-11-15 15:01:12 371

转载 SQLite的事务和锁

事务事务定义了一组SQL命令的边界,这组命令或者作为一个整体被全部执行,或者都不执行。事务的典型实例是转帐。事务的范围 事务由3个命令控制:BEGIN、COMMIT和ROLLBACK。BEGIN开始一个事务,之后的所有操作都可以取消。COMMIT使BEGIN后的所有命令得到确认;而ROLLBACK还原BEGIN之后的所有操作。如: sqlite> BEGIN;

2011-11-15 14:16:53 340

转载 为什么5%的技术人员开发效率是其他95%的20倍?

5%神话 Bruce Eckel(Thinking in Java/C++作者) 在他的 5%的神话 (Mythical 5%) 中提到:5%的程序员开发效率是其他95%程序员的20倍 (5% of programmers are 20x more productive than the other 95%)按照80-20法则,80%的程序员几乎不看书,不读Blog,不

2011-11-15 10:41:12 316

转载 DELETE、TRUNCATE、DROP区别分析

DELETE :属于DML语句,删除数据库中指定条件的数据。语法:DELETE TABLE WHERE A = B; 执行该语句后,需要使用commit进行提交才能反映到数据库中 TRUNCATE:属于DDL语句,快速的删除指定表的所有数据。语法:TRUNCATE TABLETABLE_NAMETRUNCATE在各种表上无论是大的还是小的都非常快,同其它DDL语

2011-10-27 00:09:04 448

转载 Apache Commons Configuration 使用

项目开发过程中不免有许多在运行过程中需要经常改动的参数,比如说数据库的连接参数等。把这些需要经常改动的参数保存在配置文件中,让用户可以修改,这样既增强了项目的适应能力,也减少了我们的维护成本。这种做法不失为一个很好选择。不过,这并不是一个很新的技巧,在很早的Windows

2011-08-19 16:00:19 3331

转载 Struts2 拦截器

其实,拦截器并不难,也不是十分难懂的东西。 打开帮助文档(struts-2.0.6\\docs\\docs\\interceptors.html)的拦截器部分。   能读懂英文技术文档是程序员必备的基本素质之一,慢慢来吧,只要静下心来逐字逐句的推敲,没有什么理解不

2011-08-19 15:16:42 388

转载 Struts2通过session暂存登录信息

在互联网发展的初期阶段,网站都是由静态页面组成,主要是文字,图片等内容,用户只能下载查看网页信息,不能和网站服务器交互。所以HTTP协议被设计成了一种无状态协议,也就是说,服务器不保存页面的状态,后访问的页面不知道前面访问的页面的信息。   随着互联网的发展,电子商务,电

2011-08-19 11:15:40 2137

遗传算法在求解最小生成树中的运用

遗传算法在求解最小生成树中的运用 遗传算法在求解最小生成树中的运用 遗传算法在求解最小生成树中的运用

2011-08-21

周期模型及其数据拟合

周期模型区别于其他模型之处在于其变化规律的重复性,通过切实地了解完对象的各种信息、数据和特征,以及明确了建模的目的之后,属于周期性的问题将很容易被察觉,如潮汐、地球公转和自转、电信号、时钟、人体内循环等一些规律性变化。

2011-08-21

离散模型数学建模实例

离散模型数学建模实例,离散模型主要是应用于预测经济发展的趋势、人口增长的走势、银行存贷款的额度、生物繁衍、疾病传播等模型的问题。

2011-08-21

研究生招生信息管理系统 (基于Java前台的数据库课程设计)

基于Java前台的Oracle数据库课程设计,含全部代码,并附实验报告和目录!

2010-06-22

管道最短路径实施方案(C/C++)

(包含源码、实验报告、文档说明)需要在某个城市的n个小区铺设管道,则在这n个小区之间铺设n-1条管道即可,假设任意两个居民区之间都可以架设管道,但由于地理环境的不同,所需经费不同,选择最优的施工方案使总投资尽可能的少。

2010-04-18

数据库应用系统的初步开发(实验报告)

通过本实验,综合运用前面掌握的内容并进行综合应用。选定一种开发工具(VC)设计实现一个简单的数据库应用系统, 做到界面友好、使用方便。

2010-04-18

基于WEB的学籍管理系统(.net)

实体、模块、权限、概念模型设计、物理模型设计. 包含代码、目录、摘要、实验设计报告全部详细内容!

2010-04-18

LINUX管道通信实验报告

LINUX 管道通信 实验报告(完整版)

2009-05-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除