2012-09-23 96 views
5

是什么样子的下面简单的SQL语句的时间复杂度?SQL查询时间复杂度

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

它是如何取决于以下因素:

表COL1的
  • 数据类型的
    1. 大小,COL2
    2. 表中的编号即列。 col1,col2,col3等

    这是否取决于我是否使用MyISAM或InnoDB?

  • +0

    + 4上的索引表 – biziclop

    +2

    一两件事,不要用双引号'“'周围的价值观,而是使用单引号''' –

    +0

    + 5的MySQL版本 – Erik

    回答

    6

    的MySQL 5.0中文件对此有topic一个不错的页面。

    本文提供用于每个参与的插入任务的子任务的近似proportial成本。

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

    连接:(3)

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

    解析查询:(2)

    插入行:(1×尺寸行的)

    插入索引:(1×号码索引的)

    闭合:(1)

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

    表的大小减慢索引的对数N, 假设B树索引的插入。

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

    +4

    我增加了相关摘录情况下,链接腐烂。 –