У меня проблема с производительностью при использовании функции запроса FlaskSQLAlchemy. При размере базы данных ок. 400 МБ, запрос, содержащий все элементы, занимает почти 100 секунд.
Вот запрос:
start_time = time.time()
results = DataPoint.query.all()
end_time = time.time()
print("All Datapoints: ", results)
print("Number of elements:", len(results))
print("Time elapsed: ", end_time-start_time)
Выход: Number of elements: 5871988
Time elapsed: 96.98983788490295
с DataPoint:
class DataPoint(db.Model):
id = db.Column(db.Integer, primary_key=True)
sensor_type = db.Column(db.String(75), nullable=False)
sensor_number = db.Column(db.Integer)
serial_number = db.Column(db.Float, db.ForeignKey('sensor_box.serial_number'), nullable=False)
sensor_value = db.Column(db.Float, nullable=False)
date_time = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
это нормально, или я что-то делаю не так?
заранее спасибо
Вы пробовали это: stackoverflow.com/questions/33738467/…
да, я установил значение "ложь", спасибо






ORM жертвуют производительностью ради удобства. Есть много переменных, которые могут влиять на это, размер набора результатов, доступная память, удаленная или локальная база данных и т. д. Существует вся страница в документации о производительности запросов ORM с конкретным разделом о ORM выбирает.