I know Django Object Relational Mapper (ORM) helps bridge the gap between the database and our code Performing raw queries.
But I want to find out which is better - Raw SQL Queries or Django QuerySet ORM.
So for that I was query on User Table
-
from django.contrib.auth.models import User
Then i queried Django ORM QuerySet -
orm_query = User.objects.all()
orm_query
<QuerySet [<User: superadmin>]>
After QuerySet I user raw
-
raw_query = User.objects.raw("select * from auth_user")
raw_query
<RawQuerySet: select * from auth_user>
And then I tried to print those queries using .query
and it's output -
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
And i found orm_query
much longer than raw_query
.
I want to know which one is best raw
or orm
query. Which should i use for best performance. What is the difference between them.