Eri*_*itt 15 python mysql sql sqlalchemy
为什么人们使用SQLAlchemy而不是MySQLdb?它提供了哪些优势?
Mik*_*ham 21
你不使用SQLAlchemy而不是MySQLdb-你使用SQLAlchemy访问类似MySQLdb,oursql(我听到的另一个MySQL驱动程序更好,性能更好),sqlite3模块,psycopg2或你正在使用的任何其他数据库驱动程序.
ORM(如SQLAlchemy)有助于抽象出您正在使用的数据库的详细信息.这使您可以避免使用您正在使用的数据库系统的细节,避免一些错误的可能性(并引入其他人的可能性),并使移植变得微不足道(至少在理论上).
Ale*_*lli 11
在不同的数据库引擎之间更容易移植(比如明天你决定要转移到sqlite,或PostgreSQL,或......),以及更高的抽象级别(从而可能提高生产力).
这些是一些很好的理由.使用ORM也有一些不好的理由,比如不想学习SQL,但我怀疑SQLAlchemy特别不是因为想要ORM而不是裸SQL的错误理由而受到人们的青睐;-).
除了亚历克斯所说的......
“不想学习SQL”可能是件坏事。但是,如果您想让更多的非技术人员参与到开发过程中,那么 ORM 在这方面做得非常好,因为它确实将这种复杂程度降低了一个层次。使 Django 成功的要素之一是它能够让“报纸记者”而不是软件工程师维护网站。
ORM 的局限性之一是它们不像使用原始 SQL 那样具有可扩展性。在之前的工作中,我们想摆脱大量手动 SQL 生成并切换到 ORM 以方便使用(SQLAlchemy、Elixir 等),但几个月后,我最终不得不再次编写原始 SQL绕过 ORM 系统生成的低效或高延迟查询。