如何提高sqlite数据库的请求和速度

时间:2014-05-03 02:58:11

标签: python-2.7 sqlite

我发现我在每次请求时打开数据库。有没有办法简化和改进此代码以提高sqlite速度?

        name3 = ' '.join(name2)
        import sqlite3
        id = 0
        location = ""
        conn = sqlite3.connect("keywords.db")
        c = conn.cursor()
        c.execute('select * from kmedicals')
        records = c.fetchall()
        for record in records:
            id = record[0]
            location = record[15]
            if id == name3:
                print name3.capitalize(),':' '\n',location
                break
                sys.exit()

1 个答案:

答案 0 :(得分:0)

  1. 请勿在程序中间使用import
  2. 在程序开始时打开数据库一次。
  3. 仅选择您实际需要的记录。
  4. 仅选择您实际需要的列。
  5. 不要使用fetchall;只读你真正需要的记录。
  6. 如果可以直接使用光标,请不要获取临时变量。
  7. import sqlite3
    
    # at startup
    conn = sqlite3.connect("keywords.db")
    
    def search_location(name2):
        name3 = ' '.join(name2)
        c = conn.cursor()
        c.execute('SELECT location FROM kmedicals WHERE id = ?', (name3,))
        for (location,) in c:
            print name3.capitalize(),':' '\n',location
            break
        else:
            pass  # not found