查询解析 解析会生成一个查询的内部展示.格式检查包含在解析过程中. 每次解析一个SELECT,步骤如下:1. 从FROM里找到表名,转换成schema.tablename.这一步需要调用目录管理器catalog manager检查表是否在系统目录里,并将表的内部查询结构这类元数据缓存起来.2. 根据上一步缓存起来的信息,校验属性引用.在这一步中,属性类型用来确定函数.比较运算.常量表达式,举例说明,(EMP.salary * 1,15)<7500 这里乘法和比较符号对应的1.15和7500默认是…
<Anatomy of a Database System>这篇发表于87年.一共48页的论文据说是DBA入门必看,但是找了全网没有找到中文翻译.这篇文章对关系型数据库确实有提纲挈领的作用,看完能带来融会贯通的感觉,值得抄写一遍,如有任何抄写不当的地方请诸位看官留言. 1. 文章结构   文章把数据库划分为4块,chap2.4.5.6都对应上图每一块:chap3浅显的讲了磁盘存储的设计.     2. Process Manager 这一章讲数据库的并发模型,稍微翻下chap2的图片就能明白,…
公共模块 1. 使用基于上下文的内存分配器进行内存分配 除了教材里常提到的buffer pool,数据库还会为其他任务分配大量内存,例如,Selinger-style查询优化需要动态的规划查询:hashjoin和排序需要分配大量私有空间.正确管理内存给编程和性能带来挑战,商业数据库系统一般使用context-based基于上下文的内存分配器. context上下文是指一个包含了连续虚拟内存区域链表的内存数据结构:每个region区域包含一个头信息,头信息通过标签或指针指向上下文头信息. Cont…
这一章看起来是讲存储引擎的.作者抱怨数据库被黑为“monolithic”.不可拆分为可复用的组件:但是实际上除了事务存储引擎管理模块,其他模块入解析器.重写引擎.优化器.执行器.访问方式都是代码相对独立的,他们提供窄接口(宽接口功能强大如Socket,窄接口单一职责入TcpListener)给其他模块调用.存储引擎一般有以下四个深深纠缠的组件:1. A lock manager,并发控制2. A log manager,恢复3. A buffer pool,数据库I/O分段处理4. Access…
使用裸设备,还是使用文件系统?   描述 pros cons 裸设备 顺序读磁盘快比随机要快10-100倍,DB比OS更懂磁盘负载,因此很多DB是直接管理数据块如何存放的. DB对裸设备的管理,比文件系统成熟得早,加上性能高,以及可忽略文件系统之间的差异,写裸设备也是推荐的. 要求DBA给DB划分整个磁盘: 同时裸设备接口随OS不同而不同,因此阻碍了商业化DB使用此方式: 最后裸设备不支持raid.san.nas.随着时间迁移,裸设备的优势已经不明显了. 文件系统 创建一个大文件,通过文件偏移量…
原文地址 MongoDB学习笔记(查询) 基本查询: 构造查询数据. > db.test.findOne() { "_id" : ObjectId("4fd58ecbb9ac507e96276f1a"), "name" : "stephen", "age" : 35, "genda" : "male", "email" : "ste…
       终于要迎来postgresql的<A Tour of PostgreSQL Internals>系列的最后一篇了.学习是不能拖延的事儿,越拖延事情越多.不废话,一起来看看吧~ View 3 Postgresql的查询处理        还是先上图吧.下面这张图从整体上概括了Postgresql的查询处理的步骤以及牵涉到的各个模块.        其中最重要的关键的两个数据结构是查询分析树(parse tree),和查询计划树(plan tree).        对上图所标示的四…
MongoDB中使用find或findOne函数执行查询 find函数 db.c.find()--查询集合c所有 db.c.find({“name”:”zhangsan”}) 注意:查询条件的值必须是常量,也就是说不能用变量 db.c.find({“name”:this.name})//这样是行不通的 查询条件 “$lt”对应< “$lte”对应<= “$gt”对应> “$gte”对应>= “$ne”对应!= 用法: db.users.find({“age”:{“$gte”:18,…
1.进入Solr管理界面http://localhost:8983/solr/ 可以看到Query中有若干的参数,其意义如下(参考:http://www.jianshu.com/p/3c4cae5dee8d) Solr的查询语法: Solr默认有三种查询解析器(Query Parser): Standard Query Parser DisMax Query Parser Extended DisMax Query Parser (eDisMax) 第一种是标准的Parser,最后一种是最强大的…
Struts2学习笔记一结合Hibernate完成查询商品类别简单案例(工具IDEA) 1.jar包准备 Hibernate+Struts2 jar包 struts的jar比较多,可以从Struts官方提供的demo中拿到必要的jar就行. 在apps/struts2-blank项目下 2.数据库准备 /* Navicat MySQL Data Transfer Source Server : GaGa Source Server Version : 50549 Source Host : lo…