摘要: 原文链接:http://dongxicheng.org/mapreduce/writing-hadoop-programes/1. 概述1970年,IBM的研究员E.F.Codd博士在刊物《Communication of the ACM》上发表了一篇名为“A Relational Model of Data for Large Shared Data Banks”的论文,提出了关系模型的概念,标志着关系数据库的诞生,随后几十年,关系数据库及其结构化查询语言SQL成为程序员必须掌握的基本技能之一。2005年4月,Jeffrey Dean和Sanjay Ghemawat在国际会议OSDI上发表“ 阅读全文
posted @ 2012-02-23 09:38 bigfish__ 阅读(786) 评论(0) 推荐(0)
摘要: 原文地址:http://os.51cto.com/art/201111/304610.htm本篇博文主要介绍利用开源的解决方案,来为企业搭建web高并发服务器架构,笔者从各个应用开始配置,最后在完全整合起来,以实现效果。主要软件包括lvs+heartbeat+varnish+nginx+eAccelerator+memcached。AD:本来想起个比较风趣点的标题,可想来思去,还是走常规路线,做一系列的手把手吧。这样一来,便于我的老朋友们识别,也让我对这篇文章的粒度把我有个定位。本篇博文主要介绍利用开源的解决方案,来为企业搭建web高并发服务器架构花了一个多小时,画了张图片,希望能先帮你理解整 阅读全文
posted @ 2012-02-22 23:06 bigfish__ 阅读(1175) 评论(0) 推荐(0)
摘要: 什么是索引?索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存。如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。表里面的记录数量越多,这个操作的代价就越高。如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置。如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录快100倍。假设我们创建了一个名为people的表:CREATE TABLE people ( peopleid SMALLINT NOT NULL, name CHAR(50) NOT NULL );然后, 阅读全文
posted @ 2012-02-18 13:13 bigfish__ 阅读(207) 评论(0) 推荐(0)
摘要: statement: 一个SQL语句。session: 一个由ORACLE用户产生的连接,一个用户可以产生多个SESSION ,但相互之间是独立的。transaction:所有的改变都可以划分到transaction里,一个transaction包含一个或多个SQL。当一个SESSION建立的时候就是一个TRANSACTION开始的时刻,此后transaction的开始和结束由DCL控制,也就是每个COMMIT/ROLLBACK都标示着一个transaction的结束。consistency:是对于statement级别而不是transaction级别来说的。sql statement 得到的 阅读全文
posted @ 2012-02-18 12:47 bigfish__ 阅读(788) 评论(0) 推荐(0)
摘要: 因为之前用过oracle,知道利用select * for update 可以锁表。所以很自然就想到在mysql中能不能适应for update来锁表呢。学习参考如下由于InnoDB预设是Row-Level Lock,所以只有「明确」的指定主键,MySQL才会执行Row lock (只锁住被选取的资料例) ,否则MySQL将会执行Table Lock (将整个资料表单给锁住)。 举个例子: 假设有个表单products ,里面有id跟name二个栏位,id是主键。 例1: (明确指定主键,并且有此笔资料,row lock) SELECT * FROM products WHERE id=&am 阅读全文
posted @ 2012-02-18 11:42 bigfish__ 阅读(36929) 评论(0) 推荐(1)
摘要: 原文链接:http://www.phpiask.com/?p=304曾经偷偷的面试了两个单位,都提到了Mysql的优化问题,所以以后要多多学习数据库的优化知识了。建设数据库的优化大概主要就是索引的优化了吧,因为我们不可能修改数据结构的情况下,提高数据库的查询效率似乎也只能用索引了。当然这也是建立在你sql语句写的比较科学的情况下,如果你的sql语句本身就写的比较垃圾,神仙也救不了你!下边是在网上找到的一些资料,保留下来备用吧1,创建索引对于查询占主要的应用来说,索引显得尤为重要。很多时候性能问题很简单的就是因为我们忘了添加索引而造成的,或者说没有添加更为有效的索引导致。如果不加索引的话,那么查 阅读全文
posted @ 2012-02-18 08:35 bigfish__ 阅读(298) 评论(0) 推荐(1)
摘要: 原文链接:http://www.itokit.com/2011/1207/72718.html我们收到了很多关于索引的问题。这一部分解答了其中的一小部分。有几点要记住。第一,MongoDB索引和MySQL索引非常相似并且对于MySQL的索引优化有很多也适用于MongoDB。第二,更重要的是,这些索引的建议对你的应用提高也是有限的。对于应用的最佳索引策略应该基于很多的重要因素。包含了你期望查询的类型,数据读取与写入的比率,甚至于你服务器的空闲内存。意思就是,需要对线上的产品做很多的测试剖析工作,才能调整出最佳的索引策略。没有什么好的方法可以替代实际经验的。注意: 如果你是个新手,建议阅读 rea 阅读全文
posted @ 2012-02-15 11:41 bigfish__ 阅读(1335) 评论(0) 推荐(0)
摘要: 注:此文首发于 《程序员》杂志 2008 年 7 月刊。从 Shard 到 Sharding"Shard" 这个词英文的意思是"碎片",而作为数据库相关的技术用语,似乎最早见于大型多人在线角色扮演游戏(MMORPG)中。"Sharding" 姑且称之为"分片"。Sharding 不是一门新技术,而是一个相对简朴的软件理念。如您所知,MySQL 5 之后才有了数据表分区功能,那么在此之前,很多 MySQL 的潜在用户都对 MySQL 的扩展性有所顾虑,而是否具备分区功能就成了衡量一个数据库可扩展性与否的一个关键指标( 阅读全文
posted @ 2012-02-12 23:06 bigfish__ 阅读(371) 评论(1) 推荐(0)
摘要: 原文地址:http://cnn237111.blog.51cto.com/2359144/749047正则表达式的先行断言和后行断言一共有4种形式: (?=pattern) 零宽正向先行断言(zero-width positive lookahead assertion) (?!pattern) 零宽负向先行断言(zero-width negative lookahead assertion) (?<=pattern) 零宽正向后行断言(zero-width positive lookbehind assertion) (?<!pattern) 零宽负向后行断言(z 阅读全文
posted @ 2012-02-12 10:37 bigfish__ 阅读(380) 评论(0) 推荐(0)
摘要: 继承机制的实现要用 ECMAScript 实现继承机制,您可以从要继承的基类入手。所有开发者定义的类都可作为基类。出于安全原因,本地类和宿主类不能作为基类,这样可以防止公用访问编译过的浏览器级的代码,因为这些代码可以被用于恶意攻击。选定基类后,就可以创建它的子类了。是否使用基类完全由你决定。有时,你可能想创建一个不能直接使用的基类,它只是用于给子类提供通用的函数。在这种情况下,基类被看作抽象类。尽管 ECMAScript 并没有像其他语言那样严格地定义抽象类,但有时它的确会创建一些不允许使用的类。通常,我们称这种类为抽象类。创建的子类将继承超类的所有属性和方法,包括构造函数及方法的实现。记住, 阅读全文
posted @ 2012-02-10 19:46 bigfish__ 阅读(150) 评论(0) 推荐(0)