How to alter node load system to make it possible for only one field is attached to a node? I have created a special content type using the build-in field system, which allows users to create multiple instances of the body field. In some circumstances the body field could be as large as 20M. 

I would like to implement a hook that when a user visits a certain URL like node/1/body/0, then when node_load is called, only the body field with delta == 0 is loaded into $node object, so it won't affect much for the performance. 

Is it possible? Thanks in advance!
After a long research, found a solution :-) 

You can do it using views module and views_field module. Follow below steps to achieve the solution without doing a full node load or full field items load so that you can achieve the performance you are looking for !


Install views module
Install views_field module
Go to the body field settings page and enable the base table by checking " Expose as base table" checkbox.
Create a new view with base table as "Field Body" while creating a new view in show dropdown.
Remove fields in the field list
Set the path as node/%/body/%
Add field "Field Tables: Body > value"
Add contextual filter "Field tables: field_body => Entity id" and set default value as "Raw Value from URL" and Path component as "2"
Add one more contextual filter as "Content: Body:delta" and set default value as "Raw Value from URL" and Path component as "4"


That's it !! It worked for me !!

By implementing above solution, views module directly queries body table with delta and entity id as filters and get's the body value which you will be looking for without loading full node or field body items !!