这可能是一个有点菜鸟的问题,但我很好奇:
数据库如何处理多个同时发生的请求,尤其是读取请求?每个请求是否都放在队列中,因此每次只会发生一个请求?或者,使用多核处理器是否真的可以同时处理多个请求?
我想,这个问题的一个明显的延伸就是:多核 CPU 对数据库服务器来说有多重要?
我特别考虑的是 MS SQL Server 2008,但这个问题可能适用于大多数数据库服务器。
答案1
提供数据库服务需要使用多种不同的资源(CPU、磁盘上的记录、内存位置等),只要存在争用,那么需要使用该资源的所有内容都会排队。只要不存在争用(多核系统上的两个线程试图访问表中的不同记录),这些请求就可以并行进行,直到它们再次争用某些资源。