0

我在注册期间使用 mySql 数据库将用户详细信息存储在表User中。

用户表具有列 ID 自动增量主键

我知道如果两个用户同时注册,两个请求会在数据库中排队。插入时在桌子上放一把锁。

15000个用户同时注册如何处理?所有这些请求都在数据库中排队吗?如果是,它会降低网页性能,对吗?我该如何扩展它?

4

1 回答 1

1

关键是要理解“同时”是什么意思。

即使有 15,000 人在同一分钟内使用他们的浏览器进行注册,其中超过少数人同时在 MySQL 中执行 INSERT 的可能性也非常低。

我在公司管理一些相当大且繁忙的 MySQL 实例。我查看了进程列表,但我很少看到有更多的 20 个线程同时执行。即使在每小时处理数百万个事务的生产数据库上也是如此。

大多数时候,MySQL 中的线程处于空闲状态,等待连接到数据库的应用程序在 SQL 查询之间运行代码。通常会在进程列表中看到数百行显示“Sleep”,而实际上有 6-12 个线程正在执行 SQL 查询。

鉴于此,MySQL 不难按要求分配自增值。

于 2019-04-24T19:16:31.207 回答