diff --git a/core/modules/views/config/install/views.settings.yml b/core/modules/views/config/install/views.settings.yml
index 117cebc..e0a6b93 100644
--- a/core/modules/views/config/install/views.settings.yml
+++ b/core/modules/views/config/install/views.settings.yml
@@ -1,5 +1,4 @@
 display_extenders: {  }
-skip_cache: false
 sql_signature: false
 ui:
   show:
diff --git a/core/modules/views/config/schema/views.schema.yml b/core/modules/views/config/schema/views.schema.yml
index 7ea599d..b1d9d1f 100644
--- a/core/modules/views/config/schema/views.schema.yml
+++ b/core/modules/views/config/schema/views.schema.yml
@@ -10,9 +10,6 @@ views.settings:
       sequence:
         type: string
         label: 'Display extender'
-    skip_cache:
-      type: boolean
-      label: 'Disable views data caching'
     sql_signature:
       type: boolean
       label: 'Add Views signature to all SQL queries'
diff --git a/core/modules/views/src/Plugin/views/display/DisplayPluginBase.php b/core/modules/views/src/Plugin/views/display/DisplayPluginBase.php
index 3245bd2..9bb0919 100644
--- a/core/modules/views/src/Plugin/views/display/DisplayPluginBase.php
+++ b/core/modules/views/src/Plugin/views/display/DisplayPluginBase.php
@@ -188,9 +188,8 @@ public function initDisplay(ViewExecutable $view, array &$display, array &$optio
       unset($options['defaults']);
     }
 
-    $skip_cache = \Drupal::config('views.settings')->get('skip_cache');
 
-    if (empty($view->editing) || !$skip_cache) {
+    if (empty($view->editing)) {
       $cid = 'views:unpack_options:' . hash('sha256', serialize(array($this->options, $options))) . ':' . \Drupal::languageManager()->getCurrentLanguage()->getId();
       if (empty(static::$unpackOptions[$cid])) {
         $cache = \Drupal::cache('data')->get($cid);
diff --git a/core/modules/views/src/ViewsData.php b/core/modules/views/src/ViewsData.php
index 2c8fe23..9378676 100644
--- a/core/modules/views/src/ViewsData.php
+++ b/core/modules/views/src/ViewsData.php
@@ -32,9 +32,9 @@ class ViewsData {
   protected $baseCid = 'views_data';
 
   /**
-   * The cache backend to use.
+   * The cache backend to use, if any.
    *
-   * @var \Drupal\Core\Cache\CacheBackendInterface
+   * @var \Drupal\Core\Cache\CacheBackendInterface|NULL
    */
   protected $cacheBackend;
 
@@ -65,13 +65,6 @@ class ViewsData {
   protected $fullyLoaded = FALSE;
 
   /**
-   * Whether or not to skip data caching and rebuild data each time.
-   *
-   * @var bool
-   */
-  protected $skipCache = FALSE;
-
-  /**
    * The current language code.
    *
    * @var string
@@ -95,22 +88,18 @@ class ViewsData {
   /**
    * Constructs this ViewsData object.
    *
-   * @param \Drupal\Core\Cache\CacheBackendInterface $cache_backend
-   *   The cache backend to use.
-   * @param \Drupal\Core\Config\ConfigFactoryInterface $config
-   *   The configuration factory object to use.
+   * @param \Drupal\Core\Cache\CacheBackendInterface|NULL $cache_backend
+   *   The cache backend to use, if any.
    * @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler
    *   The module handler class to use for invoking hooks.
    * @param \Drupal\Core\Language\LanguageManagerInterface $language_manager
    *   The language manager.
    */
-  public function __construct(CacheBackendInterface $cache_backend, ConfigFactoryInterface $config, ModuleHandlerInterface $module_handler, LanguageManagerInterface $language_manager) {
+  public function __construct(CacheBackendInterface $cache_backend,  ModuleHandlerInterface $module_handler, LanguageManagerInterface $language_manager) {
     $this->cacheBackend = $cache_backend;
     $this->moduleHandler = $module_handler;
     $this->languageManager = $language_manager;
-
     $this->langcode = $this->languageManager->getCurrentLanguage()->getId();
-    $this->skipCache = $config->get('views.settings')->get('skip_cache');
   }
 
   /**
@@ -174,17 +163,17 @@ public function get($key = NULL) {
   }
 
   /**
-   * Gets data from the cache backend.
+   * Gets data from the cache backend, if available.
    *
    * @param string $cid
    *   The cache ID to return.
    *
    * @return mixed
-   *   The cached data, if any. This will immediately return FALSE if the
-   *   $skipCache property is TRUE.
+   *   The cached data, if any. This will immediately return FALSE if the cache
+   *   backend is not defined.
    */
   protected function cacheGet($cid) {
-    if ($this->skipCache) {
+    if (!$this->cacheBackend) {
       return FALSE;
     }
 
@@ -192,7 +181,7 @@ protected function cacheGet($cid) {
   }
 
   /**
-   * Sets data to the cache backend.
+   * Sets data to the cache backend, if it is defined.
    *
    * @param string $cid
    *   The cache ID to set.
@@ -200,7 +189,9 @@ protected function cacheGet($cid) {
    *   The data that will be cached.
    */
   protected function cacheSet($cid, $data) {
-    return $this->cacheBackend->set($this->prepareCid($cid), $data, Cache::PERMANENT, array('views_data', 'config:core.extension'));
+    if ($this->cacheBackend) {
+      return $this->cacheBackend->set($this->prepareCid($cid), $data, Cache::PERMANENT, array('views_data', 'config:core.extension'));
+    }
   }
 
   /**
diff --git a/core/modules/views/tests/src/Unit/Plugin/display/PathPluginBaseTest.php b/core/modules/views/tests/src/Unit/Plugin/display/PathPluginBaseTest.php
index b0ebe13..3526b85 100644
--- a/core/modules/views/tests/src/Unit/Plugin/display/PathPluginBaseTest.php
+++ b/core/modules/views/tests/src/Unit/Plugin/display/PathPluginBaseTest.php
@@ -73,7 +73,6 @@ public function setupContainer() {
 
     $config = array(
       'views.settings' => array(
-        'skip_cache' => TRUE,
         'display_extenders' => array(),
       ),
     );
diff --git a/core/modules/views/tests/src/Unit/ViewsDataTest.php b/core/modules/views/tests/src/Unit/ViewsDataTest.php
index 9002420..a13e1e0 100644
--- a/core/modules/views/tests/src/Unit/ViewsDataTest.php
+++ b/core/modules/views/tests/src/Unit/ViewsDataTest.php
@@ -67,17 +67,13 @@ protected function setUp() {
     $this->cacheTagsInvalidator = $this->getMock('Drupal\Core\Cache\CacheTagsInvalidatorInterface');
     $this->cacheBackend = $this->getMock('Drupal\Core\Cache\CacheBackendInterface');
     $this->getContainerWithCacheTagsInvalidator($this->cacheTagsInvalidator);
-
-    $configs = array();
-    $configs['views.settings']['skip_cache'] = FALSE;
-    $this->configFactory = $this->getConfigFactoryStub($configs);
     $this->moduleHandler = $this->getMock('Drupal\Core\Extension\ModuleHandlerInterface');
     $this->languageManager = $this->getMock('Drupal\Core\Language\LanguageManagerInterface');
     $this->languageManager->expects($this->any())
       ->method('getCurrentLanguage')
       ->will($this->returnValue(new Language(array('id' => 'en'))));
 
-    $this->viewsData = new ViewsData($this->cacheBackend, $this->configFactory, $this->moduleHandler, $this->languageManager);
+    $this->viewsData = new ViewsData($this->cacheBackend, $this->moduleHandler, $this->languageManager);
   }
 
   /**
diff --git a/core/modules/views/views.services.yml b/core/modules/views/views.services.yml
index 1a01543..27505b4 100644
--- a/core/modules/views/views.services.yml
+++ b/core/modules/views/views.services.yml
@@ -58,7 +58,7 @@ services:
     arguments: [wizard, '@container.namespaces', '@cache.discovery', '@module_handler']
   views.views_data:
     class: Drupal\views\ViewsData
-    arguments: ['@cache.discovery', '@config.factory', '@module_handler', '@language_manager']
+    arguments: ['@cache.discovery', '@module_handler', '@language_manager']
   views.views_data_helper:
     class: Drupal\views\ViewsDataHelper
     arguments: ['@views.views_data']
diff --git a/core/modules/views_ui/src/Form/AdvancedSettingsForm.php b/core/modules/views_ui/src/Form/AdvancedSettingsForm.php
index d8cd1e2..6347e8e 100644
--- a/core/modules/views_ui/src/Form/AdvancedSettingsForm.php
+++ b/core/modules/views_ui/src/Form/AdvancedSettingsForm.php
@@ -43,13 +43,6 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       '#open' => TRUE,
     );
 
-    $form['cache']['skip_cache'] = array(
-      '#type' => 'checkbox',
-      '#title' => $this->t('Disable views data caching'),
-      '#description' => $this->t("Views caches data about tables, modules and views available, to increase performance. By checking this box, Views will skip this cache and always rebuild this data when needed. This can have a serious performance impact on your site."),
-      '#default_value' => $config->get('skip_cache'),
-    );
-
     $form['cache']['clear_cache'] = array(
       '#type' => 'submit',
       '#value' => $this->t("Clear Views' cache"),
@@ -93,7 +86,6 @@ public function buildForm(array $form, FormStateInterface $form_state) {
    */
   public function submitForm(array &$form, FormStateInterface $form_state) {
     $this->config('views.settings')
-      ->set('skip_cache', $form_state->getValue('skip_cache'))
       ->set('sql_signature', $form_state->getValue('sql_signature'))
       ->set('display_extenders', $form_state->getValue('display_extenders', array()))
       ->save();
diff --git a/core/modules/views_ui/src/Tests/SettingsTest.php b/core/modules/views_ui/src/Tests/SettingsTest.php
index 262fc7a..31de6aa 100644
--- a/core/modules/views_ui/src/Tests/SettingsTest.php
+++ b/core/modules/views_ui/src/Tests/SettingsTest.php
@@ -123,12 +123,10 @@ function testEditUI() {
     $this->assertText(t('The configuration options have been saved.'));
 
     $edit = array(
-      'skip_cache' => TRUE,
       'sql_signature' => TRUE,
     );
     $this->drupalPostForm('admin/structure/views/settings/advanced', $edit, t('Save configuration'));
 
-    $this->assertFieldChecked('edit-skip-cache', 'The skip_cache option is checked.');
     $this->assertFieldChecked('edit-sql-signature', 'The sql_signature option is checked.');
 
     // Test the "Clear Views' cache" button.
