数据库内部结构
server层是处理常规操作
引擎层是存储数据和提取数据,常用的引擎有innodb,memory,myisam。
长连接和短连接状态
长连接连接成功,持续等待用户的请求,保持着连接状态。
短连接每次执行几次操作,自动重新建立连接。
(选择哪种连接方式?)
建议使用长连接,但是长连接会导致临时内存占用太大,因此定期断开长连接,执行过一个占用内存大查询后,断开连接重新重连。
分析器
词法分析语句的每串字符代表什么。
语法分析检查语句输入格式是否正确。
优化器
表里有多个索引字段,按照索引字段找。
join关联表决定从哪个表找。
执行器
判断当前用户是否有权限对这个表进行操作。
练习题:我给你留一个问题吧,如果表 T 中没有字段 k,而你执行了这个语句 select \* from T where k=1, 那肯定是会报“不存在这个列”的错误: “Unknown column ‘k’ in ‘where clause’”。你觉得这个错误是在我们上面提到的哪个阶段报出来的呢?
我的答案:分析器,表T是否存在,字段k是否在T表中存在。