小编Jam*_*ngo的帖子

为什么python SqlAlchemy Boolean和Integer Type之间存在大的插入性能差异

使用Python和Sqlalchemy将相同的值作为布尔或整数存储在sqlite数据库中会产生以下结果.

Value stored as Boolean:
SqlAlchemy ORM: Total time for 40000 records 62.5009999275 secs
SqlAlchemy Core: Total time for 40000 records 56.0600001812 secs
Value stored as Integer:
SqlAlchemy ORM: Total time for 40000 records 5.72099995613 secs
SqlAlchemy Core: Total time for 40000 records 0.770999908447 secs
Run Code Online (Sandbox Code Playgroud)

使用布尔类型时为什么会出现这样的性能问题?

我知道SQLite没有布尔类型的概念,而是将它们存储为整数1(True)或0(False).我原以为SqlAlchemy会把python bool映射到Sqlite整数.

用于产生上述(改性从输出脚本这个问题):

import time
import sqlite3

from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String,  create_engine, Boolean
from sqlalchemy.orm import scoped_session, sessionmaker

Base = declarative_base()
DBSession = scoped_session(sessionmaker())

class CustomerInteger(Base): …
Run Code Online (Sandbox Code Playgroud)

python sqlite sqlalchemy

7
推荐指数
1
解决办法
625
查看次数

标签 统计

python ×1

sqlalchemy ×1

sqlite ×1