4

私はこのpython '2.6.4'スクリプトを持っています:

#!/usr/bin/python
import MySQLdb
import csv
import pprint

db = MySQLdb.connect(host="localhost", # The Host
                     user="username", # username
                      passwd="password", # password
                      db="dbname") # name of the data base

cursor = db.cursor() 

cursor.execute("SELECT name, id, city, storeid FROM Products;")

StudentsData = cursor.fetchall()
pprint.pprint(StudentsData)

このクエリは数百万行を返し、実行に時間がかかり3 minutes、1 日に 20 回実行され、すべてのユーザーが出力をフェッチするのに 3 分間待たなければなりません。

私はそれについて考えてcachingいましたが、Pythonでそれを行う方法がわかりません.それは良い考えでしょうか.

これを行うためのより良い方法があれば、私を助けてください。

4

2 に答える 2

2

In Python 3, and for a very simple case, you could look at functools.lru_cache: http://docs.python.org/3.2/library/functools.html#functools.lru_cache

For more sophisticated caching, Beaker is probably the way to go: http://beaker.readthedocs.org/en/latest/caching.html

于 2013-04-01T19:01:45.110 に答える