有没有人有经验表明,如果 Select 使用ORM(在Django、RoR、SQLAlechemy等中)而不是SQL和手动设计的数据库,开发人员可能会受到什么样的性能影响?我想有一些复杂的问题,包括在ORM的约束内指定数据库是增加还是减少创建高效数据库 struct 的机会(基于开发人员的经验水平),以及开发人员构造基于SQL或基于ORM的查询的良好程度(同样基于他/她的经验)的问题.任何关于这些或内在性能问题的信息都会让我非常感兴趣.
有没有人有经验表明,如果 Select 使用ORM(在Django、RoR、SQLAlechemy等中)而不是SQL和手动设计的数据库,开发人员可能会受到什么样的性能影响?我想有一些复杂的问题,包括在ORM的约束内指定数据库是增加还是减少创建高效数据库 struct 的机会(基于开发人员的经验水平),以及开发人员构造基于SQL或基于ORM的查询的良好程度(同样基于他/她的经验)的问题.任何关于这些或内在性能问题的信息都会让我非常感兴趣.
我的建议是,在需要之前不要担心这一点——不要过早地进行优化.ORM可以为开发速度、代码可读性提供许多好处,并且可以消除大量代码重复.如果它能让你的应用程序更容易开发,我建议你使用它.
在开发过程中,使用基准测试和性能分析来确定代码中的瓶颈,如果需要,您可以绕过ORM,在需要的地方使用手动查询.通常,您将能够使用缓存和数据库索引(以及其他)来提高ORM的速度,然后您可以决定在哪里需要手动查询.在大多数情况下,ORM性能可能是可以接受的,使用它的好处将远远超过性能成本.