[Checkins] SVN: relstorage/trunk/relstorage/adapters/packundo.py Avoid "select distinct", which can break MySQL's query optimizer, in favor of "insert ignore".

Shane Hathaway shane at hathawaymix.org
Wed Feb 2 05:06:38 EST 2011


Log message for revision 120042:
  Avoid "select distinct", which can break MySQL's query optimizer, in favor of "insert ignore".
  

Changed:
  U   relstorage/trunk/relstorage/adapters/packundo.py

-=-
Modified: relstorage/trunk/relstorage/adapters/packundo.py
===================================================================
--- relstorage/trunk/relstorage/adapters/packundo.py	2011-02-02 09:06:51 UTC (rev 120041)
+++ relstorage/trunk/relstorage/adapters/packundo.py	2011-02-02 10:06:38 UTC (rev 120042)
@@ -770,8 +770,8 @@
     _script_pre_pack_follow_child_refs = """
         %(TRUNCATE)s temp_pack_child;
 
-        INSERT INTO temp_pack_child
-        SELECT DISTINCT to_zoid
+        INSERT IGNORE INTO temp_pack_child
+        SELECT to_zoid
         FROM object_ref
             JOIN temp_pack_visit USING (zoid)
         WHERE object_ref.tid >= temp_pack_visit.keep_tid;
@@ -1173,8 +1173,8 @@
     _script_pre_pack_follow_child_refs = """
         %(TRUNCATE)s temp_pack_child;
 
-        INSERT INTO temp_pack_child
-        SELECT DISTINCT to_zoid
+        INSERT IGNORE INTO temp_pack_child
+        SELECT to_zoid
         FROM object_ref
             JOIN temp_pack_visit USING (zoid);
 



More information about the checkins mailing list