Python 具有大量条目的SQL查询性能?

Python 具有大量条目的SQL查询性能?,python,sql,flask,Python,Sql,Flask,因此,我试图提供一些文件,并在页面上显示与下载链接有关的信息。信息存储在sqlite数据库中,我正在使用Flask和SQLalchemy。我的文件模型如下所示: class storedfile(db.Model): id = db.Column(db.Integer, primary_key = True) path = db.Column(db.Text, unique = True) name = db.Column(db.Text) age = db.C

因此,我试图提供一些文件,并在页面上显示与下载链接有关的信息。信息存储在sqlite数据库中,我正在使用Flask和SQLalchemy。我的文件模型如下所示:

class storedfile(db.Model):
    id = db.Column(db.Integer, primary_key = True)
    path = db.Column(db.Text, unique = True)
    name = db.Column(db.Text) 
    age = db.Column(db.DateTime)
    download_count = db.Column(db.Integer)

    def __init__(self, path, name, age, download_count):
        self.path = path 
        self.name = name 
        self.age = age
        self.download_count = download_count



    def __repr__(self):
        return '<storedfile % r>' % self.name
fileinfo = storedfile.query.filter_by(path = os.path.join(new_folder_path, filename)).first()

路径没有排序,如果索引中有大量路径,这会显著降低性能吗?是否有更好/更快的排序和查询方法

不,按精确字符串过滤不会有问题。这就是数据库擅长的;为精确匹配建立有效的索引


您在具有唯一性约束的列上的精确字符串匹配是数据库可以构建和维护的最简单索引之一,您做得对。

这不是一个真正的Flask或SQLAlchemy特定问题,顺便说一句。这是纯数据库理论。更准确地说,它将“显著降低性能”,通过精确的字符串匹配来搜索关系数据库通常是O(logn),而不是O(1),所以对于10000000行,可能需要比10行长几倍,但不会比10行长几倍,这通常不会慢到成为瓶颈。谢谢。这是我第一次使用关系数据库(或任何数据库),SQLalchemy让事情变得如此简单,我变得懒惰,没有对它们进行太多研究。