每5秒我要插入大约10k行到表中。表是未规范化的,没有主键或任何索引。我注意到insert的性能非常慢--20秒内10k行,这对我来说是不可接受的。
在我看来,索引只能提高搜索性能,而不能提高insert。是真的吗?你有什么建议可以提高性能吗?
发布于 2014-03-03 17:54:07
您是对的,索引无助于提高插入性能(如果有的话,可能会因为额外的开销而损害它)。
如果插入速度较慢,则可能是由于外部因素(例如运行Server实例的硬件的IO性能),也可能是由于其他查询导致数据库或表级别的争用。您需要让性能分析器运行以确定原因。
如果您是按顺序执行插入,则可能需要考虑执行具有更好性能特征的批量插入操作。
最后,值得思考的是,如果您每5秒插入10K,您可能需要考虑批量存储的NoSQL数据库,因为对于这种类型的应用程序来说,它们往往具有更好的性能特性,在这种应用程序中,您的写入量很大且频繁。
https://stackoverflow.com/questions/22153751
复制相似问题