Подтвердить что ты не робот

Назначение SQLAlchemy над MySQLdb

Почему люди используют SQLAlchemy вместо MySQLdb? Какие преимущества он предлагает?

4b9b3361

Ответ 1

Вы не используете SQLAlchemy вместо MySQLdb - вы используете SQLAlchemy для доступа к чему-то вроде MySQLdb, oursql (другой драйвер MySQL, который я слышу, лучше и имеет лучшую производительность), модуль sqlite3, psycopg2 или любой другой драйвер базы данных используются.

ORM (например, SQLAlchemy) помогает абстрагировать детали базы данных, которую вы используете. Это позволяет вам не беспокоиться о деталях используемой вами системы баз данных, избегая ошибок в некоторых случаях (и предоставляя возможность другим) и делая портирование тривиальным (по крайней мере теоретически).

Ответ 2

Простая переносимость между различными механизмами БД (скажем, что завтра вы решите, что хотите перейти на sqlite или PostgreSQL или...) и более высокий уровень абстракции (и, следовательно, потенциально более высокую производительность).

Вот некоторые из веских причин. Есть также некоторые плохие причины для использования ORM, например, вы не хотите изучать SQL, но я подозреваю, что SQLAlchemy, в частности, не очень нравится людям по таким плохим причинам, когда хочет ORM, а не голый SQL; -).

Ответ 3

В дополнение к тому, что сказал Алекс...

  • "Не желая изучать SQL", вероятно, плохо, однако, если вы хотите привлечь больше нетехнических людей, вовлеченных как часть процесса разработки, ORM делают довольно хорошую работу, потому что это делает нажмите этот уровень сложности на уровень. Одним из элементов, которые сделали Django успешным, является его способность позволять "газетным журналистам" поддерживать сайт, а не программистам.

  • одно из ограничений ORM заключается в том, что они не настолько масштабируемы, как использование raw SQL. на предыдущей работе мы хотели избавиться от большого количества ручного генерирования SQL и переключиться на ORM для простоты использования (SQLAlchemy, Elixir и т.д.), но через несколько месяцев мне пришлось писать сырой SQL снова чтобы обойти неэффективные или высокие задержки запросов, которые были сгенерированы системой ORM.