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

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容