gpt4 book ai didi

python - MySql: 20000行记录中只显示5行,为什么?

转载 作者:太空宇宙 更新时间:2023-11-03 12:31:25 25 4
gpt4 key购买 nike

我想测试我的 MySQL 数据库以及它如何处理我 future 的数据。它只是一个有两列的表,其中一列只有一个单词,另一列有 30.000 个字符。所以我复制并插入同一个表 20.000 次,显示大小为 2.0 GB。现在我想通过 phpMyAdmin 浏览它们,它什么都不显示,并且每个都销毁了该表以显示任何内容。我通过 python 输出它只显示在此副本之前插入的 5 行。我使用脚本从 5000 - 10.000 之间的 ID 中删除行。这意味着数据存在但不出来。有什么解释吗?

    import MySQLdb as mdb        
con = mdb.connect('127.0.0.1', 'root','password', 'database')
title = []
entry = []
y = 0
with con:
conn = con.cursor()

conn.execute("SELECT * FROM mydatabase WHERE id='2' AND myword = 'jungleboy'")
rows = conn.fetchall()
for i in rows:
title.append(i[1])
entry.append(i[2])

for x in range(20000):
cur.execute("INSERT INTO mydatabase(myword,explanation) VALUES (%s,%s)",(str(title[0]),str(entry[0])))
if x > y+50:
print str(x)
y = x

最佳答案

我不确定我是否理解你的问题,但这里有一些关于你粘贴的代码的提示。

在任何 INSERT 或其他添加、删除或更改表中数据的查询之后,您需要使用 con.commit() 提交事务。

使用 fetchall() 可以获取多少条记录是有限制的。您可以通过打印游标的 arraysize 属性来查看和调整此限制:

print 'I can only fetch {0.arraysize} rows at a time.'.format(cur)

为保证您获取每一行,循环遍历结果,如下所示:

q = "SELECT .... " # some query that returns a lot of results
conn.execute(q)
rows = con.fetchone() # or fetchall()

while rows:
print rows
rows = con.fetchone() # again, or fetchall()

关于python - MySql: 20000行记录中只显示5行,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15182414/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com