SQLAlchemy对MySQLdb的目的

时间:2010-03-31 03:19:34

标签: python sql mysql sqlalchemy

为什么人们使用SQLAlchemy而不是MySQLdb?它提供了哪些优势?

3 个答案:

答案 0 :(得分:19)

您不使用SQLAlchemy而不是MySQLdb - 您使用SQLAlchemy访问类似MySQLdb,oursql(我听到的另一个MySQL驱动程序更好,性能更好),sqlite3模块,psycopg2或其他任何数据库驱动程序正在使用。

ORM(如SQLAlchemy)有助于抽象出您正在使用的数据库的详细信息。这使您可以避免使用您正在使用的数据库系统的细节,避免一些错误的可能性(并引入其他人的可能性),并使移植变得微不足道(至少在理论上)。

答案 1 :(得分:11)

不同数据库引擎之间的可移植性更容易(明天你决定要转移到sqlite,或PostgreSQL,或......),以及更高的抽象级别(从而可能提高生产力)。

这些是的一些原因。使用ORM也有一些不好的理由,例如不想学习SQL,但我怀疑SQLAlchemy特别不是因为想要ORM而不是裸SQL的错误原因而受到人们的青睐; - )。

答案 2 :(得分:3)

除了亚历克斯所说的......

  1. “不想学习SQL”可能是一件坏事,但是,如果你想让更多的非技术人员参与开发过程,ORM会做得很好,因为它确实很好将这种复杂程度降低到一定程度。使Django成功的一个因素是它能够让“报纸记者”维护一个网站,而不是软件工程师。

  2. ORM的一个限制是它们不像使用原始SQL那样可扩展。在以前的工作中,我们想要摆脱大量的手动SQL生成并切换到ORM以便于使用(SQLAlchemy,Elixir等),但几个月后,我最终不得不再次编写原始SQL绕过ORM系统生成的低效或高延迟查询。