Tro*_*ond 7 mysql cpu-usage sql-insert sql-delete
我目前正在大学学习"性能评估"课程,我们现在正在做一项测试,我们正在测试PHP和MySQL数据库服务器上的CPU使用情况.我们使用httperf来创建自定义流量,使用vmstat来跟踪服务器负载.对于INSERT和DELETE(单独运行),我们正在运行3000个与PHP服务器的连接.
数字显示DELETE操作比INSERT更加占用CPU - 而我只是想知道为什么?
我最初认为INSERT需要更多的CPU使用,因为需要重新创建索引,需要将数据写入磁盘等等.但显然我错了,我想知道是否有人可以告诉我这方面的技术原因.
至少对于InnoDB(我希望他们能帮到你),即使没有外键,你也可以进行更多的操作.插入大致是这样的:
删除执行以下操作:
为此,你有两倍的工作要删除而不是插入.删除需要这两个写入,因为它必须被标记为已删除所有版本,但只有在没有任何事务处理时才能删除它.因为InnoDB只将完整块写入磁盘,所以块的修改代价是不变的.
DELETE 还需要将数据写入磁盘,重新计算索引,此外还需要一组逻辑比较来查找您首先要删除的记录。