mysql查漏补缺

1. 客户端与服务器连接的过程

  • TCP/IP:最常见的方式
  • 命名管道和共享内存: 可在windows平台上使用。使用共享内存的方式进行通信的前提是:服务器进程和客户端进程必须在同一台Windows主机中。
  • Unix域套接字文件:前提是服务器进程和客户端进程都运行在同一台操作系统为类Unix的机器上。

后两种很罕见,以至于之前都不知道。仔细看来,后两种也是因为其局限性而没有得到通用。

2. 连接管理

Mysql本身就会缓存连接,从而减少创建和销毁线程的开销。为了使其更易用,一般会使用更上层的连接池。

3. 查询缓存

两个查询请求在任何字符上的完全相同(例如:空格、注释、大小写),才能导致缓存命中。

对系统表的查询不会被缓存。

MySQL的缓存系统会监测涉及到的每张表,只要该表的结构或者数据被修改,那么相关缓存将被删除。

由于维护缓存需要一定开销,从MySQL 5.7.20开始,不推荐使用查询缓存,并在MySQL 8.0中删除。

4. 查询优化

很多时候我们写的sql语句执行起来效率并不是很高。mysql将自动进行一些优化,生成一个执行计划。可以使用EXPLAIN语句来查看某个语句的执行计划。

5. 存储引擎特性对照

image.png

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

你可能感兴趣的:(mysql查漏补缺)