手机网站建设价钱,商标设计logo图案需要注册吗,wordpress 搭建博客,图片制作生成器一、第一节#xff1a;一条sql查询语句是怎样执行的5.5.5版本以后#xff0c;默认使用存储引擎为InnoDB不使用查询缓存#xff0c;MySQL8.0没有查询缓存这个功能总体来说#xff1a;MySQL分为service层和存储引擎层1)service层包括#xff1a;连接器、分析器、优化器、执行…一、第一节一条sql查询语句是怎样执行的5.5.5版本以后默认使用存储引擎为InnoDB不使用查询缓存MySQL8.0没有查询缓存这个功能总体来说MySQL分为service层和存储引擎层1)service层包括连接器、分析器、优化器、执行器它涵盖了MySQL大多数核心服务功能以及所有的内置函数(日期、时间、数学和加密函数)所有跨存储引擎都在这一层实现(触发器、存储过程、视图)2)存储引擎负责数据的存储和提取其架构模式是插件式的包含InnoDB、MyISAM、Memory等5.5.5版本以后默认使用存储引擎为InnoDB选择其他引擎可以在建表时进行选择不同的存储引擎用的是同一个server层mysql select * from T where ID10(1)连接器建立连接、获取权限、维持和管理连接mysql -h$ip -P$port -u$user -p如果通过则开始验证权限否则 access denied for user建立连接之后会保持连接处于空闲的状态使用 show processlist 可以查看如果长时间没动静连接器会自己断开wait_timeout控制默认为8小时长连接是如果连接过后客户端一直有请求则一直使用同一个连接短连接则是每次执行完很少的几次查询之后就断开了下次查询再重新进行连接全使用长连接之后会大量占用内存导致oom解决方案定期断开长连接5.7版本之后执行一个比较大的操作之后使用mysql_reset_connection初始化连接资源(2)查询缓存MySQL接收到查询缓存之后会先到缓存看是否执行过相同语句击中则返回否则继续往下一般都不建议使用缓存8.0之后直接抛弃了这一部分的功能why?:查询缓存实效非常频繁只要对一个表有更新操作该表的缓存就会被清空query_cache_type 设置为DEMAND这样的sql语句都不使用缓存如需使用如下mysql select SQL_CACHE * from T where ID10(3)分析器检查语法分析语句mysql elect * from t where ID1;ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near elect * from t where ID1 at line 1注意near附近的提示查找到错误(4)优化器当表有多个索引的时候决定使用哪个索引或者有多个表关联的时候决定各个表的连接顺序(5)执行器当知道你需要做什么时进入执行阶段开始执行语句mysql elect * from t where ID1;开始执行时还会判断一下登录用户有没有这张表的查询权限 慢数据中会看到rows_examined 表示执行了多少次行扫描