Windows上的CPU使用率PostgreSQL vs MySQL

时间:2012-06-28 02:50:07

标签: mysql postgresql

目前我有这台服务器

processor   : 3
vendor_id   : GenuineIntel
cpu family  : 15
model       : 2
model name  : Intel(R) Xeon(TM) CPU 2.40GHz
stepping    : 9
cpu MHz     : 2392.149
cache size  : 512 KB

我的应用程序导致更多96%的CPU使用到MySQL,每秒200-300个事务。 任何人都可以提供协助,并提供如何链接我

  • 为PostgreSQL做基准测试
  • 您认为PostgreSQL可以提高CPU利用率而不是MySQL
  • 链接,仅提供基准比较的维基

1 个答案:

答案 0 :(得分:8)

数据库用户常见的误解是CPU使用率很高。

不是。

数据库只有一个速度:尽可能快。在管理员设置限制内,它总是会耗尽它可以快速执行查询的所有资源。

大多数查询比其他查询需要更多的特定资源。对于大型数据库上的大多数查询,资源是磁盘I / O,因此数据库将尽可能快地打破您的存储。在等待硬盘驱动器时,它通常无法执行任何其他工作,因此线程/进程将进入休眠状态并停止使用CPU。

较小的数据库或对大型数据库中的小型数据集的查询通常完全适合RAM。操作系统将缓存来自磁盘的数据,并将其置于RAM中,并准备在数据库请求时返回。这意味着数据库不会等待磁盘并被强制进入休眠状态,因此它会全力以赴地处理CPU中的数据,以便快速获得答案。

您可能关心CPU使用的原因有两个:

  • 您在该计算机上运行的其他内容没有足够的CPU时间;或
  • 您认为,如果使用100%的cpu,则无法从数据库中获得足够的性能

首先,不要怪数据库。这是一个管理问题。将操作系统调度程序控制设置为不错的级别,以重新确定工作负载的优先级 - 或者让更大的服务器能够完成您所需的所有工作而不会落后。

对于第二点,您需要查看数据库调优,查询等。这不是“数据库使用100%cpu”问题,它是“我没有获得足够的吞吐量并且似乎是CPU-约束“问题。数据库和查询调优是一个很大的主题,我不会在这里讨论,特别是因为我一般不使用MySQL。