<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		xmlns:xhtml="http://www.w3.org/1999/xhtml"
	>
<channel>
	<title>Python-MySQL(MySQLdb)のメモリリーク対策 へのコメント</title>
	<atom:link href="http://blog.8maki.jp/2009/10/python-mysql-memory-leak.html/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.8maki.jp/2009/10/python-mysql-memory-leak.html</link>
	<description>俺と周りの変態リタラシーを埋める</description>
	<lastBuildDate>Wed, 23 Nov 2011 10:23:38 +0900</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>8maki より</title>
		<link>http://blog.8maki.jp/2009/10/python-mysql-memory-leak.html/comment-page-1#comment-6027</link>
		<dc:creator>8maki</dc:creator>
		<pubDate>Sat, 12 Dec 2009 03:09:49 +0000</pubDate>
		<guid isPermaLink="false">http://blog.8maki.jp/?p=535#comment-6027</guid>
		<description>すみません、レスが遅れてしまいました。

ご丁寧なアドバイスありがとうございます！

配列に入れない方法だとメモリを食わなそうですね。
来週試してみたいと思います。</description>
		<content:encoded><![CDATA[<p>すみません、レスが遅れてしまいました。</p>
<p>ご丁寧なアドバイスありがとうございます！</p>
<p>配列に入れない方法だとメモリを食わなそうですね。<br />
来週試してみたいと思います。</p>
]]></content:encoded>
	</item>
	<item>
		<title>uemura より</title>
		<link>http://blog.8maki.jp/2009/10/python-mysql-memory-leak.html/comment-page-1#comment-6024</link>
		<dc:creator>uemura</dc:creator>
		<pubDate>Mon, 16 Nov 2009 01:34:16 +0000</pubDate>
		<guid isPermaLink="false">http://blog.8maki.jp/?p=535#comment-6024</guid>
		<description>こんにちは

結果を全て配列に入れると、どんな方法をとってもメモリを食うので
メモリが気になるくらいのデータが戻ってくるなら

con= MySQLdb.connect(db = db, host = host, user = user, passwd = passwd)
cur = con.cursor()
cur.execute(sql, params)
for row in cur:
    # 列に対する処理
　　# 例えば
    print &quot;row0: %s row1: %s &quot; % (row[0], row[1])

のようにします。

下の例でも配列に入れないで generatorで使うようにしています。
(下のコードでちゃんと動くか試してません！すみません！でも、こんな感じです）

def hoge(sql, db=db, host=host, user=user, passwd=passwd):
    con = MySQLdb.connect(db = db, host = host, user = user, passwd = passwd)
    con.query(sql)
    r = con.use_result()
    while(True):
        row = r.fetch_row()
　　    if not row: 
            raise StopIteration
        yield row[0]
    con.close()

def main():
    result = hoge(&quot;SELECT * FROM hoge&quot;)
    for row in result:
        #rowに対する処理
	#例えば
	print &quot;row0: %s row1: %s &quot; % (row[0], row[1])</description>
		<content:encoded><![CDATA[<p>こんにちは</p>
<p>結果を全て配列に入れると、どんな方法をとってもメモリを食うので<br />
メモリが気になるくらいのデータが戻ってくるなら</p>
<p>con= MySQLdb.connect(db = db, host = host, user = user, passwd = passwd)<br />
cur = con.cursor()<br />
cur.execute(sql, params)<br />
for row in cur:<br />
    # 列に対する処理<br />
　　# 例えば<br />
    print &#8220;row0: %s row1: %s &#8221; % (row[0], row[1])</p>
<p>のようにします。</p>
<p>下の例でも配列に入れないで generatorで使うようにしています。<br />
(下のコードでちゃんと動くか試してません！すみません！でも、こんな感じです）</p>
<p>def hoge(sql, db=db, host=host, user=user, passwd=passwd):<br />
    con = MySQLdb.connect(db = db, host = host, user = user, passwd = passwd)<br />
    con.query(sql)<br />
    r = con.use_result()<br />
    while(True):<br />
        row = r.fetch_row()<br />
　　    if not row:<br />
            raise StopIteration<br />
        yield row[0]<br />
    con.close()</p>
<p>def main():<br />
    result = hoge(&#8221;SELECT * FROM hoge&#8221;)<br />
    for row in result:<br />
        #rowに対する処理<br />
	#例えば<br />
	print &#8220;row0: %s row1: %s &#8221; % (row[0], row[1])</p>
]]></content:encoded>
	</item>
</channel>
</rss>

