01 2016 档案
摘要:优化服务器设置 1. MySQL有大量可以修改的参数--但不应该随便去修改。通常只需要把基本的项配置正确(大部分情况下只有很少一些参数时真正重要的),应将更多时间花在schema的优化、索引,以及查询设计上。 在正确配置了MySQL的基本配置项之后,再花力气去修改其他配置项的收益通常就比较小。 从另
阅读全文
摘要:MySQL高级特性 1. 分区表:分区表是一种粗粒度的、简易的索引策略,适用于大数据量的过滤场景。最适合的场景是,在没有合适的索引时,对几个分区进行全表扫描,或者是只有一个分区和索引是热点,而且这个分区和索引 能够在内存中;限制单表分区数不要超过150个,并且注意某些导致无法分区过滤的细节,分区表对
阅读全文
摘要:查询性能优化 1. 为什么查询速度会慢? 1). 如果把查询看作是一个任务,那么它由一系列子任务组成,每个子任务都会消耗一定的时间。如果要优化查询,实际上要优化其子任务,要么消除其中一些子任务,要么减少子任务的执行次数,要么让子任务运行的更快。 2). 通常来说,查询的生命周期大致可以按照顺序来看:
阅读全文
摘要:1. MVC的概念: 1). MVC是Model-View-Controller的简称,即模型-视图-控制器。 2). MVC是一种设计模式,它把应用程序分成三个核心模块:模型、视图、控制器,它们各自处理自己的任务。 2. MVC结构图: 3. MVC处理过程: 1). 首先控制器接收用户的请求,并
阅读全文
摘要:创建高性能的索引 1. 索引(在MySQL中也叫做"键(key)")是存储引擎用于快速找到记录的一种数据结构。 2. 索引可以包含一个或多个列的值。如果索引包含多个列,那么列的顺序也十分重要,因为MySQL只能高效低使用索引的最左前缀列。 3. B-Tree索引:当人们谈论索引的时候,如果没有特别执
阅读全文
摘要:MySQL架构与历史 1. MySQL架构推荐参考:http://www.cnblogs.com/baochuan/archive/2012/03/15/2397536.html 2. MySQL会解析查询,并创建内部数据结构(解析树),然后对其进行各种优化,包括重写查询、决定表的读取顺序,以及选择
阅读全文
摘要:本文转自:http://blog.csdn.net/djun100/article/details/24237371 这是关于FastJson的一个使用Demo,在Java环境下验证的 [java] view plain copy class User{ private int id; privat
阅读全文
摘要:1. 集合: http://www.cnblogs.com/Jtianlin/p/4175710.html 2. 多线程 http://www.cnblogs.com/Jtianlin/p/4190142.html http://www.cnblogs.com/Jtianlin/p/5190910.
阅读全文
摘要:永无止境:网站的伸缩性架构 1. 所谓网站的伸缩性是指不需要改变网站的软硬件设计,仅仅通过改变部署的服务器数量就可以扩大或者缩小网站的服务能力。 2. 网站架构的伸缩性设计: 1). 不同功能进行物理分离实现伸缩性:通过增加服务器提高网站处理能力,新增服务器总是从现有服务器中分离出部分功能和服务 纵
阅读全文
摘要:大型网站核心架构要素 1. 性能 2. 可用性 3. 伸缩性 4. 扩展性 5. 安全性 瞬时响应:网站的高性能架构 1. 网站性能测试: 1). 不同视角下的网站性能 a. 用户视角的网站性能:用户计算机,网站服务器通信时间,网站服务器处理时间,用户浏览器解析时间等。 b. 开发人员视角的网站性能
阅读全文
摘要:1. 记笔记,方便复习,每天上午复习前一天的笔记2. 标注重点3. 惊喜的或者第一次听说又有用的内容,记录到书后面,抽时间了解4. 需要课下了解的知识,记录到书后面5. 是什么,为什么用这个系统,优势在哪6. 根据脉络了解整个系统内容7. 关注怎么优化一个系统,系统的瓶颈在哪里8. 系统的可用性和扩...
阅读全文
摘要:备份 1. 只有在有信心能在紧急情况下完成迅速部署的情况下,备份才是有用的。所以,无论选择了哪种备份技术,一定要对备份及恢复备份的操作进行练习,知道了然于心。 2. 通常情况下,应对副本集的非主节点(与主节点相对)进行备份。 3. 对服务器进行备份 1). 文件系统快照:使用快照备份需要开启日记系统
阅读全文
摘要:了解应用的动态1. 了解正在进行的操作:db.currentOp() , 可以加过滤条件,从而只显示符合条件的结果。 1). 寻找有问题的操作:db.currentOp() 最常见的操作就是用来寻找速度较慢的操作 2). 终止操作的执行:将该操作的opid作为参数,执行db.killOp()来终...
阅读全文
摘要:分片1. 分片(sharding)是指将数据拆分,将其分散存放在不同的机器上的过程。有时也用分区(partitioning)来表示这个概念。将数据分散到不同的机器上,不需要功能强大的大型计算机就可以 存储更多的数据,处理更大的负载。2. MongoDB支持自动分片(autosharding),可以...
阅读全文
摘要:大型网站架构演化 1. 大型网站软件系统的特点: 1). 高并发,大流量 (集群) 2). 高可用:7*24 (集群) 3). 海量数据 (集群,分布式) 4). 用户分布广泛,网络情况复杂 (缓存) 5). 安全环境恶劣 (安全) 6). 需求快速变更,发布频繁 (可扩展) 7). 渐进式发展 (
阅读全文
摘要:发布与订阅 1. 服务器状态在pubsub_channels字典保存了所有频道的订阅关系:SUBSCRIBE命令负责将客户端和被订阅的频道关联到这个字典里面,而UNSUBSCRIBE命令则负责 解除客户端和被退订频道之间的关联。 2. 服务器状态在pubsub_patterns链表保存了所有模式的订
阅读全文
摘要:副本集的组成1. 同步:MongoDB的复制功能是使用操作日志oplog实现的,操作日志包含了主节点的每一次写操作。oplog是主节点的local数据库中的一个固定集合。备份节点通过查询整个集合就可以知道要进行 复制的操作了。每个备份节点都维护者自己的oplog,记录每一次从主节点复制数据的操作。...
阅读全文
摘要:创建副本集1. 副本集:副本集时一组服务器,其中有一个主服务器(primary),用于处理客户端请求;还有多个备份服务器(secondary),用于保存主服务器的数据副本。如果主服务器崩溃了,备份服务器会 自动将齐中一个成员升级为新的主服务器。2. 几个关键概念: 1). 客户端在单个服务器上可...
阅读全文
摘要:特殊索引和集合1. 固定集合:固定集合需要事先创建好看,而且它的大小是固定的。当固定集合被占满时,如果再插入新文档,固定集合会自动将最老的文档从集合中删除。2. 创建固定集合:db.createCollection("my_collection",{"capped":true,"size":1000...
阅读全文
摘要:Sentinel 1. Sentinel只是一个运行在特殊模式下的Redis服务器,它使用了和普通模式不同的命令表,所以Sentinel模式能够使用的命令和普通的Redis服务器能够使用的命令不同。 2. Sentinel会读入用户指定的配置文件,为每个要被监控的主服务器创建相应的实例结构,并创建连
阅读全文
摘要:查询 1. MongoDB使用find来进行查询。find的第一个参数决定了要返回哪些文档,这个参数是一个文档,用于指定查询条件。空的查询会匹配集合的全部内容。要是不指定查询,默认是{}。 2. 可以通过find的第二个参数来指定想要的键。这样即会节省传输的数量,又能节省客户端解码文档的时间和内存消
阅读全文
摘要:服务器 1. 一个命令请求从发送到完成主要包括以下步骤: 1). 客户端将命令请求发送给服务器 2). 服务器读取命令请求,并分析出命令参数 3). 命令执行器根据参数查找命令的实现函数,然后执行实现函数并得出命令回复 4). 服务器将命令回复返回给客户端 2. serverCron函数默认每隔10
阅读全文
摘要:RDB 持久化 1. RDB文件用于保存和还原Redis服务器所有数据库中的所有键值对数据。 2. SAVE命令由服务器进程直接执行保存操作,所以该命令会阻塞服务器。 3. BGSAVE由子进程执行保存操作,所以该命令不会阻塞服务器。(BG:background) 4. 服务器状态中会保存所有用sa
阅读全文
摘要:对象 Redis并没有使用之前介绍的数据结构来实现键值对数据库,而是基于那些数据结构创建了一个对象系统,这个系统包含字符串对象、列表对象、哈希对象、集合对象和有序集合对象这五种类型对象, 每种对象都用到了至少一种我们前面所介绍的数据结构。 1. Redis数据库中的每个键值对的键和值都是一个对象。
阅读全文
摘要:注解: 1. 注解是Java 5的一个新特性。注解是插入你代码中的一种注释或者说是一种元数据(meta data)。这些注解信息可以在编译期使用预编译工具进行处理(pre-compiler tools),也可以 在运行期使用Java反射机制进行处理。下面是一个类注解的例子: @MyAnnotatio
阅读全文
摘要:Java反射: 1. Java反射机制可以让我们在编译期(Compile Time)之外的运行期(Runtime)检查类,接口,变量以及方法的信息。反射还可以让我们在运行期实例化对象,调用方法,通过调用get/set方法 获取变量的值。 2. 下面是一个Java反射的简单例子: Method[] m
阅读全文
摘要:文中内容摘自《redis设计与实现》 简单动态字符串 1. Redis只会使用C字符串作为字面量,在大多数情况下,Redis使用SDS(Simple Dynamic String,简单动态字符串)作为字符串表示。 2. SDS包含以下三个属性: 1). free : 记录buf数组中未使用字节的数量
阅读全文
摘要:1. 一对一查询: 1). 实体类: 2). 定义resultMap 3). mapper.xml 4). mapper.java
阅读全文
摘要:本文内容转自传智播客笔记 1. 问题总结 1). 数据库连接,使用时就创建,不使用立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响 数据库性能。 设想:使用数据库连接池管理数据库连接。 2). 将sql语句硬编码到java代码中,如果sql 语句修改,需要重新编译java代码,不利
阅读全文

浙公网安备 33010602011771号