What is the relationship between field_data_field_ and field_revision_ tables? It seems that the field_data_field_ and field_revision_field_ tables contain exactly the same columns and data, except the revision table contains a row for every revision whilst the data table only contains a copy of the latest revision.

What is the point of having the 2 tables ?  Which table is accessed when a node is loaded ?
{field_data_[field_name]}
  
  Standard data storage for a field. It's recommended you use
  _field_sql_storage_tablename to get the name of this table.
  
  {field_revision_[field_name]}
  
  Standard revision storage for a field. It is recommended to use
  _field_sql_storage_revision_tablename to get the name of this table.


For more details