向数据库添加n个条目的复杂性

时间:2009-09-17 21:59:22

标签: sql mysql database

在MySQL中添加m个带有i索引并随后提交的条目的数据库中添加n个条目的大O符号的复杂性是什么?

2 个答案:

答案 0 :(得分:2)

插入没有索引的MyISAM表需要O(n)(线性)时间。

InnoDB表和任何索引中插入log(m) * O(n)(线性时间取决于已存在记录的数量)时间(假设为m >> n),因为InnoDB表和索引是B-Trees

总时间是这些值的总和。

答案 1 :(得分:1)

这取决于您在表中的索引数量以及其他因素。

数据库中的每个单独操作都有不同的复杂性。例如,B树搜索操作的时间复杂度为O(log n),实际搜索的时间取决于是否发生表扫描,即O(n)。

我想你可以建立一个对你所描述的内容非常复杂的等式。您必须单独考虑每个操作,并且我不确定是否可以以确定的方式完成,因为数据库系统倾向于以特殊方式决定如何使用查询计划执行事务等。