SQL查询时间复杂度

时间:2012-09-23 15:47:24

标签: mysql sql database time-complexity

简单SQL语句的时间复杂度如下所示?

INSERT into table (col1, col2, col3) values ("a", "b", "c")

它如何取决于以下内容:

  1. 表的大小
  2. col1,col2
  3. 的数据类型
  4. 表格中的列数。 col1,col2,col3等
  5. 这取决于我使用的是MyISAM还是InnoDB?

1 个答案:

答案 0 :(得分:6)

MySQL 5.0文档在这个topic上有一个很好的页面。

本文提供了插入任务中涉及的每个子任务的近似比例成本。

  

插入行所需的时间由以下因素决定,其中数字表示大致比例:

     

连接:(3)

     

向服务器发送查询:(2)

     

解析查询:(2)

     

插入行:(1×行的大小)

     

插入索引:(1×索引数)

     

结束:(1)

     

这不考虑打开的初始开销   表,每个并发运行的查询都会执行一次。

     

表的大小减慢了log N插入索引的速度,   假设B树索引。

本文的其余部分提供了加速插入的技术,如果插入速度成为应用程序的瓶颈,则非常有用。