1. 客户端与服务器连接的过程
- TCP/IP:最常见的方式
- 命名管道和共享内存: 可在windows平台上使用。使用共享内存的方式进行通信的前提是:服务器进程和客户端进程必须在同一台Windows主机中。
- Unix域套接字文件:前提是服务器进程和客户端进程都运行在同一台操作系统为类Unix的机器上。
后两种很罕见,以至于之前都不知道。仔细看来,后两种也是因为其局限性而没有得到通用。
2. 连接管理
Mysql本身就会缓存连接,从而减少创建和销毁线程的开销。为了使其更易用,一般会使用更上层的连接池。
3. 查询缓存
两个查询请求在任何字符上的完全相同(例如:空格、注释、大小写),才能导致缓存命中。
对系统表的查询不会被缓存。
MySQL的缓存系统会监测涉及到的每张表,只要该表的结构或者数据被修改,那么相关缓存将被删除。
由于维护缓存需要一定开销,从MySQL 5.7.20开始,不推荐使用查询缓存,并在MySQL 8.0中删除。
4. 查询优化
很多时候我们写的sql语句执行起来效率并不是很高。mysql将自动进行一些优化,生成一个执行计划。可以使用EXPLAIN语句来查看某个语句的执行计划。
5. 存储引擎特性对照

我们可以为不同的表设置不同的存储引擎,同一个库里,不同的表可以有不同的物理存储方式。
网友评论