The query select * from test limit 1;
takes about 0.4 ms
in psql
using timing on
, but the same query takes at least 4 ms
in SQLAlchemy. Is it normal? I am using the following code to measure the execution time:
class Base(MappedAsDataclass, DeclarativeBase):
pass
class Test(Base):
__tablename__ = 'test'
id: Mapped[int] = mapped_column(primary_key=True, init=False)
date: Mapped[datetime]
database_url: URL = URL.create(
drivername='postgresql+psycopg',
username='foo',
password='passwd',
host='localhost',
port=5432,
database='mydb'
)
engine = create_engine(database_url, echo=True)
Base.metadata.drop_all(engine)
Base.metadata.create_all(engine)
with Session(engine) as session:
tests = []
for i in range(0, 10):
tests.append(Test(date=datetime.now()))
session.add_all(tests)
session.commit()
for i in range(5): # To warm up cache
session.scalars(select(Test).limit(1))
t = time.time()
session.scalars(select(Test).limit(1))
print((time.time() - t) * 1000, ' ms')