2011-04-20 45 views
1

讓我改述一下問題:沒有批量插入數據時,索引是否需要重建?

在使用單獨的INSERT語句插入數據時,對於在下面的SQL文件中的/*! */行是否存在至關重要?

這是文件的內容現在:

LOCK TABLES `adv_links` WRITE; 
/*!40000 ALTER TABLE `adv_links` DISABLE KEYS */; 
INSERT INTO `adv_links` VALUES (13,'photoreal','http://w.otoreal.tk','',14,'something','something, something',64,0,1,1,'',0,'',1277754393,1277754393,0,0,0,'85.72.100.18',0,0,0,''); 
INSERT INTO `adv_links` VALUES (4,'something cirocco', 'ttp://ww.roccoh.t/','',16,'something.','',86,0,1,1,'',0,'achille',1259843781,1259843781,2714,0,0,'91.132.75.249',0,0,0,''); 
INSERT INTO `adv_links` VALUES (5,'somethingasco','htp://w.vsco.b/ge/gtpage.asp?i=0','',16,'somethingsco','sco',113,0,1,1,'',0,'achille',1259843935,1259843935,2714,0,0,'91.132.75.249',0,0,0,''); 
INSERT INTO `adv_links` VALUES (6,'something','http://w.ja.b/Default.aspx','',16,'somethingaga','',62,0,1,1,'',0,'achille',1259848860,1259848860,2714,0,0,'91.132.75.249',0,0,0,''); 
INSERT INTO `adv_links` VALUES (7,'something','htp://w.arkorrier.com.tr/English/AC_urun.asp?ID=ACU36#','',16,'','',90,0,1,1,'',0,'achille',1259848962,1259848962,2714,0,0,'91.132.75.249',0,0,0,''); 
-- omitted 
/*!40000 ALTER TABLE `adv_links` ENABLE KEYS */; 
UNLOCK TABLES; 

我到達/*!40000 ALTER TABLE adv_link ENABLE KEYS */;線的時候問這個,因爲MySQL的推移和維修由排序指標,它不能找到,因爲數據集足夠的空間在排序時足夠大以致在tmpdir中窒息。

回答

1

如果您不禁用並重新啓用密鑰,則密鑰將隨每個INSERT語句動態更新(正如他們通常所做的那樣)。

這不需要寫入tmpdir,但速度更慢。

如果您不能增加MySQL使用的臨時空間,您可能會刪除這些行,儘管它會減慢導入速度。

+0

感謝您的確認懷疑。 – petsagouris 2011-04-20 14:35:52

相關問題