MySQL中的实例、数据库关系简介

严格来说,MySQL实例是一个服务进程,数据库是它管理的数据的集合。
三者之间的关系就像服务器、仓库、货架。

要开发它,示例是核心。
去年我们跑的一个3 000级别的项目中,在1 0个CPU核的机器上跑8 个实例绝对没有压力。
但如果一个实例的负载超过5 0QPS,响应时间就会继续跳至1 秒以上。
用行话来说,这称为雪崩效应。
事实上,前面的一小部分延迟会导致后面的大量延迟。
另一件事是数据库是一个逻辑概念。
在去年的测试中,我们发现该实例安装了三个不同的业务库。
只要用户权限正确,就可以进行跨数据库操作,例如使用SELECT FROM db1 .a JOIN db2 .b。
然而后来发现这是错误的。
高并发下的跨库查询会严重影响性能,必须谨慎使用。
还有另一个重要的细节,例如连接和会话的数量。
去年,客户端代码未能及时关闭连接,导致会话数堆积到2 000+,实例直接挂掉。
请记住设置 max_connections 限制。
1 5 1 默认太混乱了。

一开始我以为实例和数据库是一对一的关系,后来发现InnoDB集群中一台物理服务器运行8 个实例,共享一个数据目录,但每个实例可以独立管理不同的逻辑数据库。
这个设计是一种耻辱。

请记住,实例是资源池,数据库是容器,会话是通道。
这三者必须适当比例,并且不要将所有业务都放在一个实例中。

mysql怎么看实例名

直接查询MySQL实例名称:使用SELECT@@hostname或SELECT@@servername。

连接到 MySQL,运行查询并查看结果。

MySQL 没有实例名称,请使用主机名。

权限一定要足够,否则找不到。