Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 有没有加快数据库事务处理速度的方法?_Python_Sql_Database_Sqlite - Fatal编程技术网

Python 有没有加快数据库事务处理速度的方法?

Python 有没有加快数据库事务处理速度的方法?,python,sql,database,sqlite,Python,Sql,Database,Sqlite,对不起,这个模糊的问题,让我解释一下 我在一个数据库中有一个单词和计数的列表,毫无疑问,它已经达到了一个巨大的数量~80mb数据库,每个条目为两列(字、整数) 现在,当我试图添加一个单词时,我会检查它是否已经像这样存在于数据库中…python sqlite3类方法 self.c.execute('SELECT * FROM {tn} WHERE {cn} = """{wn}"""'.format(tn=self.table1, cn=self.column1, wn=word_name)) ex

对不起,这个模糊的问题,让我解释一下

我在一个数据库中有一个单词和计数的列表,毫无疑问,它已经达到了一个巨大的数量~80mb数据库,每个条目为两列(字、整数)

现在,当我试图添加一个单词时,我会检查它是否已经像这样存在于数据库中…python sqlite3类方法

self.c.execute('SELECT * FROM {tn} WHERE {cn} = """{wn}"""'.format(tn=self.table1, cn=self.column1, wn=word_name))
exist = self.c.fetchall()
if exist:
    do something

我可以想象,在SQL中使用
COUNT
会更快:

self.c.execute('SELECT COUNT(*) FROM {tn} WHERE {cn} = """{wn}"""'.format(tn=self.table1, cn=self.column1, wn=word_name))
num = self.c.fetchone()[0]
if num:
    #do something
虽然我还没有测试过


有关类似的问题,请参阅。

我认为在SQL中使用
COUNT
会更快:

self.c.execute('SELECT COUNT(*) FROM {tn} WHERE {cn} = """{wn}"""'.format(tn=self.table1, cn=self.column1, wn=word_name))
num = self.c.fetchone()[0]
if num:
    #do something
虽然我还没有测试过


类似的问题,请参见。

那么您是在检查一个非常大的单词表中是否存在一个单词?我认为对你的问题的简短而简单的回答是为你的单词栏创建一个索引

下一步是设置一个真正的数据库(例如Postgres),而不是sqlite。Sqlite没有生产数据库的优化功能,切换后可能会看到性能提高


即使对于一个有数百万行的表,如果表被正确索引,这也不应该是一个超时间密集型查询。如果您已经有了索引,但仍然面临性能问题,那么您的数据库设置/环境可能有问题,或者Python代码或DB适配器中可能存在瓶颈。没有更多的信息很难说

那么你是在一个很大的单词表中检查单词的存在?我认为对你的问题的简短而简单的回答是为你的单词栏创建一个索引

下一步是设置一个真正的数据库(例如Postgres),而不是sqlite。Sqlite没有生产数据库的优化功能,切换后可能会看到性能提高


即使对于一个有数百万行的表,如果表被正确索引,这也不应该是一个超时间密集型查询。如果您已经有了索引,但仍然面临性能问题,那么您的数据库设置/环境可能有问题,或者Python代码或DB适配器中可能存在瓶颈。没有更多的信息很难说

您的表有索引吗?有时索引占用的空间比实际索引多table@idjaw没有,我现在正在读关于它的书…处理数据库的新手你的问题是什么,这与交易有什么关系?抱歉,如果标题使用了错误的词,但问题文本应该解释它,我的问题到底有什么不清楚?我在一个大的表上使用select语句时遇到了很长的等待时间。您的表是否有索引?有时索引占用的空间比实际索引占用的空间大table@idjaw不是,,我现在正在阅读有关它的内容…处理数据库的新手你的问题是什么,这与事务有什么关系?抱歉,如果标题使用了错误的单词,但问题文本应该解释它,我的问题到底有什么不清楚的地方?我在一个大表上使用select语句时遇到了很长的等待时间。谢谢您的输入。问题是,如果行存在,我将不得不选择它。你还认为如果我两者都要做的话会更快吗?嗯,谢谢你的意见。问题是,如果行存在,我将不得不选择它。如果我必须同时做这两件事,你还认为它会更快吗?我没有索引,我相信这就是我需要的。我是DB的新手,所以我以前不知道这一点。谢谢,我没有索引,我相信这就是我需要的。我是DB的新手,所以我以前不知道这一点。谢谢