2017年5月27日
摘要: 简介 PostgreSQL查询优化器执行过程 1. 语法分析:生成查询树 2. 语义检查:对SQL表达的语义进行检查 3. 查询优化 1. 视图重写 2. 逻辑优化:子查询优化,条件化简,等价谓词重写,连接消除,得到逻辑计划 3. 物理优化:基于代价优化,得到物理计划。PostgreSQL主要采用动 阅读全文
posted @ 2017-05-27 15:57 bitError 阅读(4385) 评论(0) 推荐(0) 编辑
摘要: 其实对于一个标准的STL 容器,当vector vec 的真实语句应该是 vetor vec,allocator是一个标准的配置器,其作用就是为各个容器管理内存。这里需要注意的是在SGI STL中,有两个配置器:allocator(标准的)和alloc(默认的配置器) 注意:alloc(带poll) 阅读全文
posted @ 2017-05-27 15:54 bitError 阅读(442) 评论(0) 推荐(0) 编辑
摘要: jemalloc支持SMP系统和并发多线程,多线程的支持是依赖于多个‘arenas’,并且一个线程第一次调用内存mallocer,与其相关联的是一个特殊的arena。 线程分配arena只有三种可能的算法: 1. TLS启用的情况下就是线程ID的哈希值 2. TLS不可用并定义MALLOC_BALA 阅读全文
posted @ 2017-05-27 15:54 bitError 阅读(980) 评论(0) 推荐(0) 编辑
摘要: 内存管理的一般方法 1. C 风格的内存管理程序主要实现 malloc()和 free()函数。 2. 内存池是一种半内存管理方法。Apache 使用了池式内存(pooled memory),将其连接拆分为各个阶段,每个阶段都有自己 的内存池。在结束每个阶段时,会一次释放所有内存。 3. 引用计数 阅读全文
posted @ 2017-05-27 15:53 bitError 阅读(3811) 评论(0) 推荐(0) 编辑
摘要: 逻辑优化 逻辑查询优化主要工作是:找到SQL语句的等价变换方式,使SQL执行更高效。关系代数等价变换对查询优化是有指导意义的 查询重写规则 传统的OLTP使用选择(From),投影(select, project),连接操作(join)相结合,成为SPJ查询 1. 选择操作 通过选择操作下推,目的是 阅读全文
posted @ 2017-05-27 15:52 bitError 阅读(515) 评论(0) 推荐(0) 编辑
摘要: 交换空间 交换技术就是将一页内存复制到预先设定的硬盘上的交换空间,来释放该页占用内存。物理内存和交换空间的和就是可提供的虚拟内存的总量。Linux有两种形式的交换方式,分别是交换分区,交换文件。 优点:可以把空闲的内存页写入磁盘,把空出的内存给进程使用。 缺点:交换发生越多,速度越慢。 交换空间的大 阅读全文
posted @ 2017-05-27 15:50 bitError 阅读(1361) 评论(0) 推荐(0) 编辑