擅长:python、mysql、java
<p>我假设<code>heartbeat_time</code>字段是日期时间字段。在</p>
<pre><code>import datetime
import MySQLdb
import MySQLdb.cursors
db = MySQLdb.connect(host=server, user=mysql_user, passwd=mysql_pwd, db=mysql_db, connect_timeout=10,
cursorclass=MySQLdb.cursors.DictCursor)
cur = db.cursor()
ago = datetime.datetime.utcnow() - datetime.timedelta(minutes=15)
try:
cur.execute("SELECT heartbeat_time FROM machines")
for row in cur:
if row['heartbeat_time'] <= ago:
print row['heartbeat_time'], 'more than 15 minutes ago'
finally:
cur.close()
db.close()
</code></pre>
<p>如果数据大小不是那么大,那么将它们全部加载到内存是一个很好的做法,这将释放MySQL服务器上的内存缓冲区。而对于DictCursor来说</p>
^{pr2}$
<p>以及</p>
<pre><code>for r in cur:
</code></pre>
<p>它们都将数据加载到客户端。MySQLdb.SSCursorSSDictCursor将根据需要尝试传输数据,而它需要MySQL服务器支持。在</p>