Mic*_*hel 6 php mysql optimization performance
仅使用数字在表中创建899行的最快方法是什么.该列不是自动增量.
目前我创建了这样的查询:
$a1=range(100,999);
$a1=implode('),(',$a1);
$a1='INSERT INTO groups (val) VALUES('.$a1.')';
Run Code Online (Sandbox Code Playgroud)
它提供了一个像这样的巨大查询:
INSERT INTO groups (val) VALUES(100),(101),(102),(103),(104),(105),(106),(107),(108),
(109),(110),(111),(112),(113),(114),(115),(116),(117),(118),(119),(120),(121),(122),
(123),(124),(125), etc etc etc....
Run Code Online (Sandbox Code Playgroud)
我想知道是否有更快更好的方法来做到这一点?
我认为你没有更快的方法来做到这一点。查看MySQL文档
\n\n\n\n\n插入一行所需的时间由以下因素决定,其中数字表示大致比例:
\n\n连接:(3)
\n\n向服务器发送查询:(2)
\n\n解析查询:(2)
\n\n插入行:(1 \xc3\x97 行大小)
\n\n插入索引:(1 \xc3\x97 索引数)
\n\n结束:(1)
\n\n这没有考虑打开表的初始开销,该开销为每个并发运行的查询执行一次。
\n\n假设 B 树索引,表的大小会使索引的插入速度减慢 log N。\n
\n\n您可以使用以下方法来加快插入速度:
\n\n如果要同时从同一客户端插入多行,请使用具有多个 VALUES 列表的 INSERT 语句来一次插入多行。这比使用单独的单行 INSERT 语句要快得多(在某些情况下快很多倍)。如果要将数据添加到非空表,则可以调整bulk_insert_buffer_size 变量以使数据插入速度更快。请参阅第 5.1.4 节,\xe2\x80\x9c服务器系统变量\xe2\x80\x9d。
\n
通过一个查询,您可以保存Connecting、Sending query to server、Closing、 以及 MySQL 优化您的查询。
另外,如果您仅插入大约 1000 行且数据很少,则插入速度非常快,因此我不会担心这种情况下的性能。
\n| 归档时间: |
|
| 查看次数: |
107 次 |
| 最近记录: |