数据库在日常的Web开发中基本是必需品,我们开发人员除了会基本的SQL操作语言外,还是需要对数据库的基本原理有所了解的,我想结合这篇文章做个自己的总结:
主要记录我对数据库一般架构、索引、查询优化的理解。
从开发人员的角度看,数据库一般由如下的架构:
客户端访问数据库服务端时,一个查询主要会经过Client Manager, Query Manager, Data Manager。我理解的数据库最核心的地方应该是Query Manager中的查询优化算法以及Data Manager中的数据存储结构。
现代的数据库都在采用基于成本的优化算法来优化查询,数据库大多数时候瓶颈在于磁盘I/O。