2010-11-01 15 views
10

He estado usando SQLObject durante mucho tiempo, pero se dio cuenta de que SQLAlchemy ha vuelto mucho más popular en los últimos dos años: http://www.google.com/trends?q=sqlobject,+sqlalchemy¿Debo utilizar SQLObject, SQLAlchemy o SQLAlchemy + Elixir?

¿Hay razones de peso para cambiar a SQLAlchemy? ¿Cómo es su rendimiento relativo a SQLObject? ¿Su usabilidad? ¿Y cuál es la sobrecarga de rendimiento adicional para usar Elixir?

Mis necesidades son CRUD básico, simple. Nada exótico

que he visto this related question, pero fue preguntado hace 1+ años y no tenía mucha respuesta.

Respuesta

10

Usé SqlObject extensamente como parte de TurboGears 0.9, pero cambié a SqlAlchemy + elixir como reemplazo en SqlObject incluso antes de que lo hiciera TurboGears.

Tenga en cuenta que incluso sin elixir, sqlalchemy tiene sus propias definiciones de clase de estilo declarativo: http://docs.sqlalchemy.org/en/rel_1_0/orm/extensions/declarative/index.html

Si no está seguro sobre el rendimiento, no debería ser demasiado trabajo para caer en elixir como un reemplazo en su aplicación y hacer un perfil rápido. Supongo que las diferencias de rendimiento entre SqlObject/SQL/SQLA + elixir son pálidas en comparación con el tiempo dedicado a escribir y leer datos desde y hacia la base de datos.

Tenga en cuenta que sqlalchemy permite un mayor control sobre la carga ansiosa/perezoso de relationships y columns, que ayuda a la memoria la huella & rendimiento de su aplicación en muchos casos.

Probablemente la razón más convincente para cambiar es que SqlAlchemy es que se está desarrollando activamente (aunque ya no sé demasiado sobre el estado del devolvente de SqlObject). como una razón secundaria, puede estar seguro de que si sus necesidades se vuelven más complejos, es muy probable que exista otra persona que ya ha intentado golpear la clavija cuadrada de Python objetos en el agujero redondo de SQL con éxito con sqlalchemy.