目录
前言
作为一名软件开发者,对数据库无疑是要非常熟悉了。不光要在执行sql语句的时候,明白它在数据库中如何执行,更要掌握诸多的数据库优化技巧,让你的软件系统超级流畅。
基础篇
基础架构:sql语句如何执行?

MySql大致分为两层:server层和存储引擎。
server层:存储过程、触发器、视图。
存储引擎:数据的存储和提取。如InnoDB等
常用操作:
解决长连接大量占用内存问题:mysql_reset_connection
在查询缓存里查询:select SQL_CACHE * from T where ID=10
日志系统:更新语句如何执行?
update adm_log_alarm set c=c+1 where id = 2
1、分析器知道了这是一条更新语句,遂清空查询缓存(我们不提倡使用查询缓存的原因)
2、更新操作涉及到了日志模块:redo log(重做日志)、bin log(归档日志),来实现WAL技术:先写日志,后写磁盘。此技术可使数据库异常重启数据不丢失(crash-safe)
3、redo log是InnoDB特有的日志系统,是物理日志,循环写入;bin log是Mysql的server层实现的,是逻辑日志,追加写入(保证数据库可恢复到之前某时刻的状态)
事物隔离:为什么你改了我还看不见
待完善。。。。