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.