随着Flask Alchemy的sqlite数据库大小越来越大

问题描述 投票:0回答:1

我正在使用flask做一个项目,我选择Flask-sqlalchemy来存储数据。数据库存储在本地:

app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///manage.db'

我定义一个类:

class House(db.Model):
    __tablename__ = 'house'
    id: Mapped[int] = mapped_column(db.Integer, primary_key=True)
    block: Mapped[str] = mapped_column(db.String, nullable=False)
    number: Mapped[str] = mapped_column(db.String, nullable=False)
    area: Mapped[int] = mapped_column(db.Integer) 

测试时,我使用for循环向该数据库添加一些记录:

for i in range(0,100):
    house= House(block='Springfield',number='8000',area=200)
    db.session.add(house)
db.session.commit()

循环之后,本地文件“manage.db”大小变得更大。 然后我删除“house”表的所有记录:

db.session.query(House).delete()
db.session.commit()

表'house'现在是空的,但为什么本地文件'manage.db'大小没有减少?

sqlite flask sqlalchemy flask-sqlalchemy
1个回答
0
投票

删除 sqlite 中的数据只是将该空间标记为已删除,但并不总是真正清除该空间并基于它优化大小。请参阅https://sqlite.org/lang_vacuum.html

© www.soinside.com 2019 - 2024. All rights reserved.