在ras RDS micro上的插入性能非常低

时间:2017-11-25 05:13:31

标签: python sql postgresql amazon-web-services

我正在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限制。

由于

0 个答案:

没有答案