我有很多 MySQL 只写进程。他们都去同一个 MySQL 主服务器。我按顺序运行它们以获得基线时间。我基本上将几个 mysql 命令行客户端一个接一个地链接在一起。后来,我同时并行启动了几个mysql客户端以获得实验时间。为什么时间都一样?
更多事实:
- 每个客户端都会命中一个单独的模式。这消除了客户端之间的表或行锁定争用的可能性。
- 我已经在具有几个内核和 4GB RAM 的 Win32 XP 与具有 24 个虚拟内核和 32GB RAM 的 RedHat 5.6 64 位上进行了尝试。基线与实验在两者上是相同的。
- 在 RedHat 上,我尝试了所有 TCP 客户端与所有 SOCKET 客户端。没有区别可能是因为服务器没有负载。
是的,我认为您受 IO 限制,并且您没有并行化写入中涉及的硬盘驱动器。插入性能有很多东西。你可以在这里了解更多。
没有足够的信息。
什么引擎?
是否涉及查询缓存?
key_buffer_size 和 innod_buffer_pool_size 的值是多少?
是否受 I/O 限制?还是 CPU 受限?
你在说多少“时间”?
我们实际上需要查看查询,然后查看架构、表大小等,以便解释您所看到的内容。