关闭

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

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

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

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

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

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

理解MySQL——复制(Replication)

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

理解MySQL——索引与优化

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

理解MySQL——架构与概念

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

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

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

浅谈SQLite——浅析Lemon

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

浅谈SQLite——实现与应用

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

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

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

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

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

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

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

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

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

c++中的const与指针

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

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

写在前面:虚拟机技术在现在是一个非常热的技术,它的历史也很悠久。最早的虚拟机可追溯到IBM的VM/370,到上个世纪90年代,在计算机程序设计语言领域又出现一件革命性的事情——Java语言的出现,它与c++最大的不同在于它必须在Java虚拟机上运行。Java虚拟机掀起了虚拟机技术的热潮,随后,Microsoft也不甘落后,雄心勃勃的推出了.Net平台。由于在这里主要讨论SQLite的虚拟机,不打算...
阅读(957) 评论(0)
34条 共3页1 2 3 下一页 尾页
    个人资料
    • 访问:24550次
    • 积分:303
    • 等级:
    • 排名:千里之外
    • 原创:0篇
    • 转载:34篇
    • 译文:0篇
    • 评论:0条