第 9 周 997 日记
数据库架构原理
数据库架构
连接器
数据库连接器会为每个连接请求分配一块专用的内存空间用于会话上下文管理。建立连 接对数据库而言相对比较重,需要花费一定的时间,因此应用程序启动的时候,通常会 初始化建立一些数据库连接放在连接池里,这样当处理外部请求执行 SQL 操作的时候, 就不需要花费时间建立连接了。
语法分析器
语义分析与优化器
语义分析与优化器就是要将各种复杂嵌套的 SQL 进行语义等价转化,得到有限几种关系 代数计算结构,并利用索引等信息进一步进行优化。
执行计划
合理使用索引
不要盲目添加索引,尤其在生产环境中
添加索引的 alter 操作会消耗较长的时间(分钟级)
Alter 操作期间,所有数据库的增删改操作全部阻塞,对应用而言,因为连接不能释放,事实 上,查询也被阻塞
删除不用的索引,避免不必要的增删开销
使用更小的数据类型创建索引
int 4 字节 bigint 8 字节,Timestamp 4 字节 Datetime 8 字节
数据库事务
原子性(Atomicity): 事务要么全部完成,要么全部取消。 如果事务崩溃,状态回到事 务之前(事务回滚)。
隔离性(Isolation): 如果 2 个事务 T1 和 T2 同时运行,事务 T1 和 T2 最终的结果是相同 的,不管 T1 和 T2 谁先结束,隔离性主要依靠锁实现。
持久性(Durability): 一旦事务提交,不管发生什么(崩溃或者出错),数据要保存在数 据库中。
一致性(Consistency): 只有合法的数据(依照关系约束和函数约束)才能写入数据库。
版权声明: 本文为 InfoQ 作者【Pyr0man1ac】的原创文章。
原文链接:【http://xie.infoq.cn/article/913e766fd229d6789e1553c00】。未经作者许可,禁止转载。
评论