像下面这样的简单 SQL 语句的时间复杂度是多少?
INSERT into table (col1, col2, col3) values ("a", "b", "c")
它如何取决于以下内容:
- 桌子的大小
- col1, col2 的数据类型
- 表中的列数,即。col1、col2、col3 等
这是否取决于我使用的是 MyISAM 还是 InnoDB?
像下面这样的简单 SQL 语句的时间复杂度是多少?
INSERT into table (col1, col2, col3) values ("a", "b", "c")
它如何取决于以下内容:
这是否取决于我使用的是 MyISAM 还是 InnoDB?
MySQL 5.0 文档有一个关于这个主题的不错的页面。
本文提供了插入任务中涉及的每个子任务的大致比例成本。
插入一行所需的时间由以下因素决定,其中数字表示近似比例:
连接:(3)
向服务器发送查询:(2)
解析查询:(2)
插入行:(1×行大小)
插入索引:(1 × 索引数)
结束: (1)
这没有考虑打开表的初始开销,每个并发运行的查询都会执行一次。
假设 B-tree 索引,表的大小会减慢 log N 的索引插入速度。
文章的其余部分提供了加快插入速度的技术,如果插入速度成为应用程序的瓶颈,这很有用。