Я знаю, что Django Object Relational Mapper (ORM) помогает устранить разрыв между базой данных и нашим кодом. Выполнение необработанных запросов.
Но я хочу выяснить, что лучше - Raw SQL Queries или Django QuerySet ORM.
Итак, для этого я запросил User Table
-
from django.contrib.auth.models import User
Затем я запросил Django ORM QuerySet -
orm_query = User.objects.all()
orm_query
<QuerySet [<User: superadmin>]>
После QuerySet I пользователь raw
-
raw_query = User.objects.raw("select * from auth_user")
raw_query
<RawQuerySet: select * from auth_user>
А потом я попытался напечатать эти запросы, используя .query
, и он вывел -
print(orm_query.query)
SELECT `auth_user`.`id`, `auth_user`.`password`, `auth_user`.`last_login`, `auth_user`.`is_superuser`, `auth_user`.`username`, `auth_user`.`first_name`, `auth_user`.`last_name`, `auth_user`.`email`, `auth_user`.`is_staff`, `auth_user`.`is_active`, `auth_user`.`date_joined` FROM `auth_user`
print(raw_query.query)
select * from auth_user
И я нашел orm_query
намного длиннее, чем raw_query
.
Я хочу знать, какой из них лучше всего raw
или orm
запрос. Который я должен использовать для лучшей производительности. В чем разница между ними.