2012-06-25 3 views
0

У меня есть два сценария SQLite: , протестированные прямым вводом в SQLite.Python: бесконечный цикл при выполнении SQLite-оператора

def getOutgoingLinks(self, hostname): 
    t = (hostname,) 
    result = self.__cursor.execute("SELECT url.id, hostname.name, url.path, linking_to.keyword, siteId.id " + 
            "FROM url, hostname, linking_to, " + 
            "(SELECT url.id FROM url, hostname " + 
            "WHERE hostname.name = (?) " + 
            "AND hostname.id = url.hostname_id " + 
            ") AS siteId " + 
            "WHERE linking_to.from_id = siteId.id " + 
            "AND linking_to.to_id = url.id " + 
            "AND url.hostname_id = hostname.id", t)   
    result = result.fetchall() 
    return result 

def getIncommingLinks(self, hostname): 
    t = (hostname,) 
    result = self.__cursor.execute("SELECT url.id, hostname.name, url.path, linking_to.keyword, siteId.id " + 
            "FROM url, hostname, linking_to, " + 
            "(SELECT url.id FROM url, hostname " + 
            "WHERE hostname.name = (?) " + 
            "AND hostname.id = url.hostname_id " + 
            ") AS siteId " + 
            "WHERE linking_to.to_id = siteId.id " + 
            "AND linking_to.from_id = url.id " + 
            "AND url.hostname_id = hostname.id", t) 
    result = result.fetchall() 
    return result 

getIncommingLinks() Methond работает очень хорошо, но getOutgoingLinks() вызывает бесконечный цикл, когда питон Trys выполнить оператор SQL. Любые идеи, что пошло не так?

ответ

0

Запишите свои утверждения Select без выбора ... (Выберите ...) - это очень плохой стиль. Результат может решить вашу проблему.

0

Если по бесконечному циклу вы подразумеваете, что функция никогда не вернется, чтобы вернуть значение, у меня была та же проблема.

Найдено результатов: Why python+sqlite3 is extremely slow?. С большими таблицами это становится проблемой производительности с версией, поставляемой с python 2.7. Я решил это, обновив sqlite3, как указано здесь: https://stackoverflow.com/a/3341117/3894804