diff --git a/core/modules/node/lib/Drupal/node/Tests/Views/FieldTypeTest.php b/core/modules/node/lib/Drupal/node/Tests/Views/FieldTypeTest.php
index 3b92fb9..17bcea5 100644
--- a/core/modules/node/lib/Drupal/node/Tests/Views/FieldTypeTest.php
+++ b/core/modules/node/lib/Drupal/node/Tests/Views/FieldTypeTest.php
@@ -31,11 +31,11 @@ public function testFieldType() {
     $node = $this->drupalCreateNode();
     $expected_result[] = array(
       'nid' => $node->id(),
-      'node_type' => $node->bundle(),
+      'node_field_data_type' => $node->bundle(),
     );
     $column_map = array(
       'nid' => 'nid',
-      'node_type' => 'node_type',
+      'node_field_data_type' => 'node_field_data_type',
     );
 
     $view = views_get_view('test_field_type');
diff --git a/core/modules/node/node.install b/core/modules/node/node.install
index 2e88182..23d3e8a 100644
--- a/core/modules/node/node.install
+++ b/core/modules/node/node.install
@@ -97,6 +97,13 @@ function node_schema() {
         'unsigned' => TRUE,
         'not null' => TRUE,
       ),
+      'type' => array(
+        'description' => 'The {node_type}.type of this node.',
+        'type' => 'varchar',
+        'length' => 32,
+        'not null' => TRUE,
+        'default' => '',
+      ),
       'langcode' => array(
         'description' => 'The {language}.langcode of these node property values.',
         'type' => 'varchar',
@@ -165,8 +172,8 @@ function node_schema() {
       'node_changed' => array('changed'),
       'node_created' => array('created'),
       'node_frontpage' => array('promote', 'status', 'sticky', 'created'),
-      // @todo Figure out how to replace the 'node_status_type' and the
-      //   'node_title_type' indexes.
+      'node_status_type' => array('status', 'type', 'nid'),
+      'node_title_type' => array('title', array('type', 4)),
       'nid' => array('nid'),
       'vid' => array('vid'),
       'uid' => array('uid'),
@@ -849,7 +856,7 @@ function node_update_8016(&$sandbox) {
 
   // Prepare the new records.
   $queries = array();
-  $result = db_query_range('SELECT nr.*, nr.timestamp AS revision_timestamp, nr.uid as revision_uid, 1 AS default_langcode, n.langcode, n.vid = nr.vid AS default_revision, n.uid, n.changed, n.created FROM {node_revision} nr JOIN {node} n ON nr.nid = n.nid ORDER BY nr.nid ASC, nr.vid ASC', $sandbox['progress'], 10);
+  $result = db_query_range('SELECT nr.*, nr.timestamp AS revision_timestamp, nr.uid as revision_uid, 1 AS default_langcode, n.langcode, n.vid = nr.vid AS default_revision, n.uid, n.changed, n.created, n.type FROM {node_revision} nr JOIN {node} n ON nr.nid = n.nid ORDER BY nr.nid ASC, nr.vid ASC', $sandbox['progress'], 10);
   foreach ($result as $row) {
     $sandbox['progress']++;
     foreach ($tables as $table) {
@@ -859,7 +866,9 @@ function node_update_8016(&$sandbox) {
         $fields = array_keys($schema[$table]['fields']);
         $record = array();
         foreach ($fields as $field) {
-          $record[$field] = $row->{$field};
+          if (isset($row->{$field})) {
+            $record[$field] = $row->{$field};
+          }
         }
         if (!isset($queries[$table])) {
           $queries[$table] = db_insert($table)->fields($fields);
@@ -886,6 +895,7 @@ function node_update_8016(&$sandbox) {
     foreach ($fields as $field) {
       db_drop_field('node', $field);
     }
+    // TODO Handle foreign keys.
   }
 }
 
diff --git a/core/modules/node/node.views.inc b/core/modules/node/node.views.inc
index fc3cf07..854a0d9 100644
--- a/core/modules/node/node.views.inc
+++ b/core/modules/node/node.views.inc
@@ -111,7 +111,7 @@ function node_views_data() {
     ),
   );
 
-  $data['node']['type'] = array(
+  $data['node_field_data']['type'] = array(
     'title' => t('Type'),
     'help' => t('The content type (for example, "blog entry", "forum post", "story", etc).'),
     'field' => array(
diff --git a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_field_type.yml b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_field_type.yml
index f1620db..317ed91 100644
--- a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_field_type.yml
+++ b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_field_type.yml
@@ -9,7 +9,7 @@ display:
         type:
           field: type
           id: type
-          table: node
+          table: node_field_data
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/config/views.view.tracker.yml b/core/modules/views/config/views.view.tracker.yml
index 129c76c..94239e3 100644
--- a/core/modules/views/config/views.view.tracker.yml
+++ b/core/modules/views/config/views.view.tracker.yml
@@ -34,7 +34,7 @@ display:
       fields:
         type:
           id: type
-          table: node
+          table: node_field_data
           field: type
           plugin_id: node_type
         title:
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_aggregate_count.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_aggregate_count.yml
index 0526e68..9581654 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_aggregate_count.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_aggregate_count.yml
@@ -15,7 +15,7 @@ display:
           id: type
           summary:
             format: default_summary
-          table: node
+          table: node_field_data
           plugin_id: node_type
       cache:
         type: none
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_entity_type_filter.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_entity_type_filter.yml
index 6860337..81dc402 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_entity_type_filter.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_entity_type_filter.yml
@@ -17,7 +17,7 @@ display:
           relationship: none
         type:
           id: type
-          table: node
+          table: node_field_data
           field: type
           relationship: none
           group_type: group
@@ -69,7 +69,7 @@ display:
       filters:
         type:
           id: type
-          table: node
+          table: node_field_data
           field: type
           relationship: none
           value:
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_exposed_admin_ui.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_exposed_admin_ui.yml
index 8f5dbd9..bab1714 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_exposed_admin_ui.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_exposed_admin_ui.yml
@@ -21,7 +21,7 @@ display:
             use_operator: '1'
           field: type
           id: type
-          table: node
+          table: node_field_data
           plugin_id: node_type
         body_value:
           id: body_value
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_field_type.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_field_type.yml
index 0663e76..d3b4a0a 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_field_type.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_field_type.yml
@@ -9,7 +9,7 @@ display:
         type:
           field: type
           id: type
-          table: node
+          table: node_field_data
           plugin_id: node_type
     display_plugin: default
     display_title: Master
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_filter_in_operator_ui.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_filter_in_operator_ui.yml
index d1a8c83..abe6884 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_filter_in_operator_ui.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_filter_in_operator_ui.yml
@@ -22,7 +22,7 @@ display:
           exposed: '1'
           field: type
           id: type
-          table: node
+          table: node_field_data
           plugin_id: string
       pager:
         type: full
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_group_by_count.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_group_by_count.yml
index e6e23c7..c69fb29 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_group_by_count.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_group_by_count.yml
@@ -43,7 +43,7 @@ display:
           hide_empty: '0'
           id: type
           link_to_node: '0'
-          table: node
+          table: node_field_data
           plugin_id: node_type
       group_by: '1'
       pager:
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_group_by_in_filters.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_group_by_in_filters.yml
index 927c849..753dd4c 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_group_by_in_filters.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_group_by_in_filters.yml
@@ -26,7 +26,7 @@ display:
           hide_empty: '0'
           id: type
           link_to_node: '0'
-          table: node
+          table: node_field_data
           plugin_id: node_type
       filters:
         nid:
diff --git a/core/modules/views/tests/views_test_config/test_views/views.view.test_reset_button.yml b/core/modules/views/tests/views_test_config/test_views/views.view.test_reset_button.yml
index d6564f4..cd293d2 100644
--- a/core/modules/views/tests/views_test_config/test_views/views.view.test_reset_button.yml
+++ b/core/modules/views/tests/views_test_config/test_views/views.view.test_reset_button.yml
@@ -23,7 +23,7 @@ display:
           exposed: '1'
           field: type
           id: type
-          table: node
+          table: node_field_data
           plugin_id: node_type
       pager:
         type: full
