我正在AWS上运行免费的RDS实例,而我正在尝试运行一些非常简单的查询来插入大约10000行。我遵循了这个指南
http://docs.sqlalchemy.org/en/latest/faq/performance.html
正确进行插入而不使用ORM(使用Core),但令人难以置信地慢。这是我插入虚拟数据的非常简单的代码:
from models import Transaction
from sqlalchemy import create_engine
import time
db_string = 'connection_string'
engine = create_engine(db_string)
all_txs_flat = []
for i in range(0, 10000):
all_txs_flat.append(
Transaction(token='test', block_number=1000, from_address='qfieieoqfieqnfioeqnfioqenfiodnvd', to_address='cqkwiofjeqiojqnvoienvioeqnvvnksvvwe',
amount=5000))
t0 = time.time()
engine.execute(
Transaction.__table__.insert(),
[{"token": tx.token, "block_number": tx.block_number, "from_address": tx.from_address,
"to_address": tx.to_address, "amount": tx.amount} for tx in
all_txs_flat]
)
print(
"SQLAlchemy Core: Total time for " + str(10000) +
" records " + str(time.time() - t0) + " secs")
这是RDS的开箱即用配置。刚刚关闭了向导并打开了5432到我的IP,所以我可以在我的本地机器上连接。输出很惊人......
SQLAlchemy Core: Total time for 10000 records 360.06809306144714 secs
我错过了一些明显的东西吗?我该怎么做才能描述这个?我不相信我在这里遇到了t2.micro限制。
由于