首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么SELECT-INSERT请求这么长?

为什么SELECT-INSERT请求这么长?
EN

Stack Overflow用户
提问于 2012-10-01 12:01:01
回答 4查看 117关注 0票数 3

我有服务器,具有快速存储和大量的内存和处理器的能力。

有两个具有相同结构的表,一个有30.000.000个记录,另一个是空的。我希望将数据从第一个表复制到第二个表,并使用以下请求:

代码语言:javascript
复制
 INSERT INTO table2 SELECT * FROM table1 ;

这个请求需要超过4个小时才能完成。我认为这是不正常的,因为mysqldump of entire database finishes less then hour

SELECT请求有任何限制吗?或者我必须使用其他代码来optimize performance

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-10-01 12:14:08

确保模式与第一个表一样,然后在插入查询中给出值的顺序。*降低了Select 的性能,NoLock提高了数据可用性

喜欢,

代码语言:javascript
复制
Begin Tran
      INSERT INTO (Col1,Col2, Col3,...Coln) table2 
    SELECT (Col1,Col2, Col3,...Coln) FROM table1 with (NoLock)
Commit
票数 1
EN

Stack Overflow用户

发布于 2012-10-01 12:10:03

这可能要归功于诸如索引数据和分配存储空间之类的内务管理任务。

票数 0
EN

Stack Overflow用户

发布于 2012-10-01 12:11:50

3000万是很多。您以位为单位进行查询,就像每次查询中的100 - 1000结果一样。

我建议您在操作区使用phpmyadmin (选择源表1),您将看到复制表。

如果要跨不同位置进行复制,请使用mysqlworkbench在新表中进行导出和导入。希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12672858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档