diff --git a/modules/redhen_contact/redhen_contact.install b/modules/redhen_contact/redhen_contact.install
index 58d1f5b..909dd51 100644
--- a/modules/redhen_contact/redhen_contact.install
+++ b/modules/redhen_contact/redhen_contact.install
@@ -85,6 +85,9 @@ function redhen_contact_schema() {
       'redhen_contact_type' => array(array('type', 4)),
       'redhen_contact_author' => array('author_uid'),
       'redhen_contact_redhen_state' => array('redhen_state'),
+      'redhen_contact_revision' => array('revision_id'),
+      'redhen_contact_user' => array('uid'),
+      'redhen_contact_type' => array('type'),
     ),
     'unique keys' => array(
       'contact_id' => array('contact_id'),
@@ -178,6 +181,7 @@ function redhen_contact_schema() {
       'redhen_revision_contact_id' => array('contact_id'),
       'redhen_contact_author_revision' => array('author_uid'),
       'redhen_contact_redhen_state_revision' => array('redhen_state'),
+      'redhen_contact_revision_user' => array('uid'),
     ),
     'primary key' => array('revision_id'),
     'foreign keys' => array(
@@ -295,6 +299,8 @@ function redhen_contact_schema() {
     ),
     'indexes' => array(
       'redhen_contact_status' => array('contact_id', 'status'),
+      'redhen_contact_user_contact' => array('contact_id'),
+      'redhen_contact_user_user' => array('uid'),
     ),
     'foreign keys' => array(
       'redhen_contact_user_contact' => array(
@@ -316,6 +322,19 @@ function redhen_contact_schema() {
 }
 
 /**
+ * Create indexes for foreign keys.
+ */
+function redhen_contact_update_7002() {
+  db_add_index('redhen_contact', 'redhen_contact_revision', array('revision_id'));
+  db_add_index('redhen_contact', 'redhen_contact_author', array('author_uid'));
+  db_add_index('redhen_contact', 'redhen_contact_user', array('uid'));
+  db_add_index('redhen_contact', 'redhen_contact_type', array('type'));
+  db_add_index('redhen_contact_revision', 'redhen_contact_revision_user', array('uid'));
+  db_add_index('redhen_contact_user', 'redhen_contact_user_contact', array('contact_id'));
+  db_add_index('redhen_contact_user', 'redhen_contact_user_user', array('uid'));
+}
+
+/**
  * Adding middle name field.
  */
 function redhen_contact_update_7001() {
diff --git a/modules/redhen_engagement/redhen_engagement.install b/modules/redhen_engagement/redhen_engagement.install
index 6820afd..32240b8 100644
--- a/modules/redhen_engagement/redhen_engagement.install
+++ b/modules/redhen_engagement/redhen_engagement.install
@@ -75,6 +75,9 @@ function redhen_engagement_schema() {
     ),
     'indexes' => array(
       'engagement_type' => array('type'),
+      'engagement_redhen_contact' => array('contact_id'),
+      'engagement_author' => array('author_uid'),
+      'engagement_engagement_score' => array('engagement_score'),
     ),
     'foreign keys' => array(
       'engagement_redhen_contact' => array(
@@ -203,6 +206,7 @@ function redhen_engagement_update_7100(&$sandbox) {
  * Set the engagement_score value for existing contacts.
  */
 function redhen_engagement_update_7101(&$sandbox) {
+  db_add_index('redhen_engagement', 'engagement_redhen_contact', array('contact_id'));
   $field = array(
     'description' => 'The total engagement score for a contact.',
     'type' => 'int',
@@ -214,3 +218,15 @@ function redhen_engagement_update_7101(&$sandbox) {
   $sql = 'UPDATE redhen_contact rc SET engagement_score = (SELECT SUM(score) FROM redhen_engagement re JOIN redhen_engagement_score res on re.engagement_score = res.name WHERE re.contact_id = rc.contact_id)';
   db_query($sql);
 }
+
+/**
+ * Create indexes for foreign keys.
+ */
+function redhen_engagement_update_7102(&$sandbox) {
+  if (!db_index_exists('redhen_engagement', 'engagement_redhen_contact')) {
+    db_add_index('redhen_engagement', 'engagement_redhen_contact', array('contact_id'));
+  }
+  db_add_index('redhen_engagement', 'engagement_author', array('author_uid'));
+  db_add_index('redhen_engagement', 'engagement_engagement_score', array('engagement_score'));
+}
+ 
\ No newline at end of file
diff --git a/modules/redhen_fields/redhen_fields.install b/modules/redhen_fields/redhen_fields.install
index 9aeab5a..403c502 100644
--- a/modules/redhen_fields/redhen_fields.install
+++ b/modules/redhen_fields/redhen_fields.install
@@ -9,6 +9,8 @@
  * Implements hook_field_schema().
  */
 function redhen_fields_field_schema($field) {
+  $columns = array();
+  $indexes = array();
   switch ($field['type']) {
     case 'redhen_email':
       $columns = array(
@@ -28,6 +30,9 @@ function redhen_fields_field_schema($field) {
           'default' => 0,
         ),
       );
+      $indexes = array(
+        'redhen_email_address' => array('value'),
+      );
       break;
   }
   $columns += array(
@@ -44,11 +49,24 @@ function redhen_fields_field_schema($field) {
   );
   return array(
     'columns' => $columns,
-    'indexes' => array(),
+    'indexes' => $indexes,
   );
 }
 
 /**
+ * Add index for email addresses.
+ */
+function redhen_fields_update_7100(&$sandbox) {
+  $fields = field_read_fields(array('type' => 'redhen_email'));
+  foreach ($fields as $field_name => $field) {
+    if ($field['storage']['type'] == 'field_sql_storage') {
+      db_add_index("field_data_$field_name", 'redhen_email_address', array("{$field_name}_value"));
+      db_add_index("field_revision_$field_name", 'redhen_email_address', array("{$field_name}_value"));
+    }
+  }
+}
+
+/**
  * Implements hook_install().
  */
 function redhen_fields_install() {
diff --git a/modules/redhen_note/redhen_note.install b/modules/redhen_note/redhen_note.install
index fb30a13..fd79617 100644
--- a/modules/redhen_note/redhen_note.install
+++ b/modules/redhen_note/redhen_note.install
@@ -61,6 +61,7 @@ function redhen_note_schema() {
       'redhen_note_updated' => array('updated'),
       'redhen_note_created' => array('created'),
       'redhen_note_type' => array(array('type', 4)),
+      'redhen_note_author' => array('author_uid'),
     ),
     'unique keys' => array(
       'note_id' => array('note_id'),
@@ -152,3 +153,10 @@ function redhen_note_uninstall() {
   field_delete_instance('redhen_note_type', TRUE);
   taxonomy_vocabulary_delete(taxonomy_vocabulary_machine_name_load('note_type')->vid);
 }
+
+/**
+ * Add indexes for foreign keys.
+ */
+function redhen_note_update_7100(&$sandbox) {
+  db_add_index('redhen_note', 'redhen_note_author', array('author_uid'));
+}
diff --git a/modules/redhen_org/redhen_org.install b/modules/redhen_org/redhen_org.install
index be016e0..5ddc2b8 100644
--- a/modules/redhen_org/redhen_org.install
+++ b/modules/redhen_org/redhen_org.install
@@ -75,6 +75,9 @@ function redhen_org_schema() {
       'redhen_org_created' => array('created'),
       'redhen_org_type' => array(array('type', 4)),
       'redhen_org_redhen_state' => array('redhen_state'),
+      'redhen_org_revision' => array('revision_id'),
+      'redhen_org_author' => array('author_uid'),
+      'redhen_org_primary_contact_id' => array('primary_contact_id'),
     ),
     'unique keys' => array(
       'org_id' => array('org_id'),
@@ -157,6 +160,9 @@ function redhen_org_schema() {
     'indexes' => array(
       'redhen_org_updated_revision' => array('updated'),
       'redhen_org_redhen_state_revision' => array('redhen_state'),
+      'revision_redhen_org' => array('org_id'),
+      'redhen_org_revision_author' => array('author_uid'),
+      'redhen_org_revision_primary_contact_id' => array('primary_contact_id'),
     ),
     'foreign keys' => array(
       'revision_redhen_org' => array(
@@ -377,3 +383,15 @@ function redhen_org_update_7002() {
     'default' => 0,
   ));
 }
+
+/**
+ * Add indexes for foreign keys.
+ */
+function redhen_org_update_7003() {
+  db_add_index('redhen_org', 'redhen_org_revision', array('revision_id'));
+  db_add_index('redhen_org', 'redhen_org_author', array('author_uid'));
+  db_add_index('redhen_org', 'redhen_org_primary_contact_id', array('primary_contact_id'));
+  db_add_index('redhen_org_revision', 'revision_redhen_org', array('org_id'));
+  db_add_index('redhen_org_revision', 'redhen_org_revision_author', array('author_uid'));
+  db_add_index('redhen_org_revision', 'redhen_org_revision_primary_contact_id', array('primary_contact_id'));
+}
