








<!doctype html>
<html 
      lang="en"
      dir="ltr">
  <head>
    <meta name="google-signin-client-id" content="721724668570-nbkv1cfusk7kk4eni4pjvepaus73b13t.apps.googleusercontent.com"><meta name="google-signin-scope"
          content="profile email https://www.googleapis.com/auth/developerprofiles https://www.googleapis.com/auth/developerprofiles.award https://www.googleapis.com/auth/devprofiles.full_control.firstparty"><meta property="og:site_name" content="Google Cloud Documentation">
    <meta property="og:type" content="website"><meta name="theme-color" content="#1a73e8"><meta charset="utf-8">
    <meta content="IE=Edge" http-equiv="X-UA-Compatible">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    

    <link rel="manifest" href="/_pwa/clouddocs/manifest.json"
          crossorigin="use-credentials">
    <link rel="preconnect" href="//www.gstatic.com" crossorigin>
    <link rel="preconnect" href="//fonts.googleapis.com" crossorigin>
    <link rel="preconnect" href="//www.google-analytics.com" crossorigin><link rel="stylesheet" href="//fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap">
      <link rel="stylesheet"
            href="//fonts.googleapis.com/css2?family=Material+Icons&family=Material+Symbols+Outlined&display=block"><link rel="stylesheet" href="https://www.gstatic.com/devrel-devsite/prod/veec7311b6c5f99ef32994eb65aab7022195f72bfa4f3d934bdc7556da7fa7c3b/clouddocs/css/app.css">
      
        <link rel="stylesheet" href="https://www.gstatic.com/devrel-devsite/prod/veec7311b6c5f99ef32994eb65aab7022195f72bfa4f3d934bdc7556da7fa7c3b/clouddocs/css/dark-theme.css" disabled>
      <link rel="shortcut icon" href="https://www.gstatic.com/devrel-devsite/prod/veec7311b6c5f99ef32994eb65aab7022195f72bfa4f3d934bdc7556da7fa7c3b/clouddocs/images/favicons/onecloud/favicon.ico">
    <link rel="apple-touch-icon" href="https://www.gstatic.com/devrel-devsite/prod/veec7311b6c5f99ef32994eb65aab7022195f72bfa4f3d934bdc7556da7fa7c3b/clouddocs/images/favicons/onecloud/super_cloud.png"><link rel="canonical" href="https://docs.cloud.google.com/spanner/docs/dml-versus-mutations"><link rel="search" type="application/opensearchdescription+xml"
            title="Google Cloud Documentation" href="https://docs.cloud.google.com/s/opensearch.xml">
      <link rel="alternate" hreflang="en"
          href="https://docs.cloud.google.com/spanner/docs/dml-versus-mutations" /><link rel="alternate" hreflang="x-default" href="https://docs.cloud.google.com/spanner/docs/dml-versus-mutations" /><link rel="alternate" hreflang="zh-Hans"
          href="https://docs.cloud.google.com/spanner/docs/dml-versus-mutations?hl=zh-cn" /><link rel="alternate" hreflang="zh-Hant"
          href="https://docs.cloud.google.com/spanner/docs/dml-versus-mutations?hl=zh-tw" /><link rel="alternate" hreflang="fr"
          href="https://docs.cloud.google.com/spanner/docs/dml-versus-mutations?hl=fr" /><link rel="alternate" hreflang="de"
          href="https://docs.cloud.google.com/spanner/docs/dml-versus-mutations?hl=de" /><link rel="alternate" hreflang="he"
          href="https://docs.cloud.google.com/spanner/docs/dml-versus-mutations?hl=he" /><link rel="alternate" hreflang="id"
          href="https://docs.cloud.google.com/spanner/docs/dml-versus-mutations?hl=id" /><link rel="alternate" hreflang="it"
          href="https://docs.cloud.google.com/spanner/docs/dml-versus-mutations?hl=it" /><link rel="alternate" hreflang="ja"
          href="https://docs.cloud.google.com/spanner/docs/dml-versus-mutations?hl=ja" /><link rel="alternate" hreflang="ko"
          href="https://docs.cloud.google.com/spanner/docs/dml-versus-mutations?hl=ko" /><link rel="alternate" hreflang="pt-BR"
          href="https://docs.cloud.google.com/spanner/docs/dml-versus-mutations?hl=pt-br" /><link rel="alternate" hreflang="pt"
          href="https://docs.cloud.google.com/spanner/docs/dml-versus-mutations?hl=pt" /><link rel="alternate" hreflang="es"
          href="https://docs.cloud.google.com/spanner/docs/dml-versus-mutations?hl=es" /><link rel="alternate" hreflang="es-419"
          href="https://docs.cloud.google.com/spanner/docs/dml-versus-mutations?hl=es-419" /><link rel="alternate" hreflang="en-cn"
          href="https://docs.cloud.google.cn/spanner/docs/dml-versus-mutations" /><link rel="alternate" hreflang="x-default" href="https://docs.cloud.google.cn/spanner/docs/dml-versus-mutations" /><link rel="alternate" hreflang="zh-Hans-cn"
          href="https://docs.cloud.google.cn/spanner/docs/dml-versus-mutations?hl=zh-cn" /><link rel="alternate" hreflang="zh-Hant-cn"
          href="https://docs.cloud.google.cn/spanner/docs/dml-versus-mutations?hl=zh-tw" /><link rel="alternate" hreflang="fr-cn"
          href="https://docs.cloud.google.cn/spanner/docs/dml-versus-mutations?hl=fr" /><link rel="alternate" hreflang="de-cn"
          href="https://docs.cloud.google.cn/spanner/docs/dml-versus-mutations?hl=de" /><link rel="alternate" hreflang="he-cn"
          href="https://docs.cloud.google.cn/spanner/docs/dml-versus-mutations?hl=he" /><link rel="alternate" hreflang="id-cn"
          href="https://docs.cloud.google.cn/spanner/docs/dml-versus-mutations?hl=id" /><link rel="alternate" hreflang="it-cn"
          href="https://docs.cloud.google.cn/spanner/docs/dml-versus-mutations?hl=it" /><link rel="alternate" hreflang="ja-cn"
          href="https://docs.cloud.google.cn/spanner/docs/dml-versus-mutations?hl=ja" /><link rel="alternate" hreflang="ko-cn"
          href="https://docs.cloud.google.cn/spanner/docs/dml-versus-mutations?hl=ko" /><link rel="alternate" hreflang="pt-BR-cn"
          href="https://docs.cloud.google.cn/spanner/docs/dml-versus-mutations?hl=pt-br" /><link rel="alternate" hreflang="pt-cn"
          href="https://docs.cloud.google.cn/spanner/docs/dml-versus-mutations?hl=pt" /><link rel="alternate" hreflang="es-cn"
          href="https://docs.cloud.google.cn/spanner/docs/dml-versus-mutations?hl=es" /><link rel="alternate" hreflang="es-419-cn"
          href="https://docs.cloud.google.cn/spanner/docs/dml-versus-mutations?hl=es-419" /><title>Compare DML and Mutations &nbsp;|&nbsp; Spanner &nbsp;|&nbsp; Google Cloud Documentation</title>

<meta property="og:title" content="Compare DML and Mutations &nbsp;|&nbsp; Spanner &nbsp;|&nbsp; Google Cloud Documentation"><meta property="og:url" content="https://docs.cloud.google.com/spanner/docs/dml-versus-mutations"><meta property="og:image" content="https://docs.cloud.google.com/_static/cloud/images/social-icon-google-cloud-1200-630.png">
  <meta property="og:image:width" content="1200">
  <meta property="og:image:height" content="630"><meta property="og:locale" content="en"><meta name="twitter:card" content="summary_large_image"><script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@type": "Article",
    
    "headline": "Compare DML and Mutations"
  }
</script><script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@type": "BreadcrumbList",
    "itemListElement": [{
      "@type": "ListItem",
      "position": 1,
      "name": "Spanner",
      "item": "https://docs.cloud.google.com/spanner/docs"
    },{
      "@type": "ListItem",
      "position": 2,
      "name": "Compare DML and Mutations",
      "item": "https://docs.cloud.google.com/spanner/docs/dml-versus-mutations"
    }]
  }
  </script>
  
    
    
    

     
    
    
  

    </head>
  <body class="color-scheme--light"
        template="page"
        theme="clouddocs-theme"
        type="article"
        
        appearance
        
        layout="docs"
        
        
        free-trial
        
        
        display-toc
        pending>
  
    <devsite-progress type="indeterminate" id="app-progress"></devsite-progress>
  
  
    <a href="#main-content" class="skip-link button">
      
      Skip to main content
    </a>
    <section class="devsite-wrapper">
      <devsite-cookie-notification-bar></devsite-cookie-notification-bar>
        <cloudx-track userCountry="NL"></cloudx-track>

<devsite-header role="banner" keep-tabs-visible>
  
    





















<div class="devsite-header--inner" data-nosnippet>
  <div class="devsite-top-logo-row-wrapper-wrapper">
    <div class="devsite-top-logo-row-wrapper">
      <div class="devsite-top-logo-row">
        <button type="button" id="devsite-hamburger-menu"
          class="devsite-header-icon-button button-flat material-icons gc-analytics-event"
          data-category="Site-Wide Custom Events"
          data-label="Navigation menu button"
          visually-hidden
          aria-label="Open menu">
        </button>
        
<div class="devsite-product-name-wrapper">

  <a href="/" class="devsite-site-logo-link gc-analytics-event"
   data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav"
   track-name="googleCloudDocumentation" track-metadata-position="nav"
   track-metadata-eventDetail="nav">
  
  <picture>
    
    <source srcset="https://www.gstatic.com/devrel-devsite/prod/veec7311b6c5f99ef32994eb65aab7022195f72bfa4f3d934bdc7556da7fa7c3b/clouddocs/images/lockup_dark_theme.svg"
            media="(prefers-color-scheme: dark)"
            class="devsite-dark-theme">
    
    <img src="https://www.gstatic.com/devrel-devsite/prod/veec7311b6c5f99ef32994eb65aab7022195f72bfa4f3d934bdc7556da7fa7c3b/clouddocs/images/lockup_full_color.svg" class="devsite-site-logo" alt="Google Cloud Documentation">
  </picture>
  
</a>



</div>
        <div class="devsite-top-logo-row-middle">
          <div class="devsite-header-upper-tabs">
            
              
              
  <devsite-tabs class="upper-tabs">

    <nav class="devsite-tabs-wrapper" aria-label="Upper tabs">
      
        
          <tab class="devsite-dropdown
    devsite-dropdown-full
    devsite-active
    devsite-clickable
    ">
  
    <a href="https://docs.cloud.google.com/docs"
    class="devsite-tabs-content gc-analytics-event "
      track-metadata-eventdetail="https://docs.cloud.google.com/docs"
    
       track-type="nav"
       track-metadata-position="nav - docs-home"
       track-metadata-module="primary nav"
       aria-label="Documentation, selected" 
       
         
           data-category="Site-Wide Custom Events"
         
           data-label="Tab: Documentation"
         
           track-name="docs-home"
         
           track-link-column-type="single-column"
         
       >
    Documentation
  
    </a>
    
      <button
         aria-haspopup="menu"
         aria-expanded="false"
         aria-label="Dropdown menu for Documentation"
         track-type="nav"
         track-metadata-eventdetail="https://docs.cloud.google.com/docs"
         track-metadata-position="nav - docs-home"
         track-metadata-module="primary nav"
         
          
            data-category="Site-Wide Custom Events"
          
            data-label="Tab: Documentation"
          
            track-name="docs-home"
          
            track-link-column-type="single-column"
          
        
         class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></button>
    
  
  <div class="devsite-tabs-dropdown" role="menu" aria-label="submenu" hidden>
    <div class="devsite-tabs-dropdown-content">
      
        <button class="devsite-tabs-close-button material-icons button-flat gc-analytics-event"
                data-category="Site-Wide Custom Events"
                data-label="Close dropdown menu"
                aria-label="Close dropdown menu"
                track-type="nav"
                track-name="close"
                track-metadata-eventdetail="#"
                track-metadata-position="nav - docs-home"
                track-metadata-module="tertiary nav">close</button>
      
      
        <div class="devsite-tabs-dropdown-column
                    ">
          
            <ul class="devsite-tabs-dropdown-section
                       ">
              
                <li class="devsite-nav-title" role="heading" tooltip>Get Started</li>
              
              
              
            </ul>
          
            <ul class="devsite-tabs-dropdown-section
                       ">
              
              
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/docs/get-started"
                    
                     track-type="nav"
                     track-metadata-eventdetail="https://docs.cloud.google.com/docs/get-started"
                     track-metadata-position="nav - docs-home"
                     track-metadata-module="tertiary nav"
                     
                       track-metadata-module_headline="get started"
                     
                     tooltip
                  >
                    
                    <div class="devsite-nav-item-title">
                      Get Started with Google Cloud
                    </div>
                    
                  </a>
                </li>
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/docs/product-list"
                    
                     track-type="nav"
                     track-metadata-eventdetail="https://docs.cloud.google.com/docs/product-list"
                     track-metadata-position="nav - docs-home"
                     track-metadata-module="tertiary nav"
                     
                       track-metadata-module_headline="get started"
                     
                     tooltip
                  >
                    
                    <div class="devsite-nav-item-title">
                      Product List
                    </div>
                    
                  </a>
                </li>
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/support/docs"
                    
                     track-type="nav"
                     track-metadata-eventdetail="https://docs.cloud.google.com/support/docs"
                     track-metadata-position="nav - docs-home"
                     track-metadata-module="tertiary nav"
                     
                       track-metadata-module_headline="get started"
                     
                     tooltip
                  >
                    
                    <div class="devsite-nav-item-title">
                      Cloud Customer Care
                    </div>
                    
                  </a>
                </li>
              
            </ul>
          
        </div>
      
        <div class="devsite-tabs-dropdown-column
                    ">
          
            <ul class="devsite-tabs-dropdown-section
                       ">
              
                <li class="devsite-nav-title" role="heading" tooltip>Featured Products</li>
              
              
              
            </ul>
          
            <ul class="devsite-tabs-dropdown-section
                       ">
              
              
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/products/gemini-enterprise-agent-platform"
                    
                     track-type="nav"
                     track-metadata-eventdetail="https://docs.cloud.google.com/products/gemini-enterprise-agent-platform"
                     track-metadata-position="nav - docs-home"
                     track-metadata-module="tertiary nav"
                     
                       track-metadata-module_headline="featured products"
                     
                     tooltip
                  >
                    
                    <div class="devsite-nav-item-title">
                      Agent Platform
                    </div>
                    
                  </a>
                </li>
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/apigee"
                    
                     track-type="nav"
                     track-metadata-eventdetail="https://docs.cloud.google.com/apigee"
                     track-metadata-position="nav - docs-home"
                     track-metadata-module="tertiary nav"
                     
                       track-metadata-module_headline="featured products"
                     
                     tooltip
                  >
                    
                    <div class="devsite-nav-item-title">
                      Apigee API Management
                    </div>
                    
                  </a>
                </li>
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/bigquery"
                    
                     track-type="nav"
                     track-metadata-eventdetail="https://docs.cloud.google.com/bigquery"
                     track-metadata-position="nav - docs-home"
                     track-metadata-module="tertiary nav"
                     
                       track-metadata-module_headline="featured products"
                     
                     tooltip
                  >
                    
                    <div class="devsite-nav-item-title">
                      BigQuery
                    </div>
                    
                  </a>
                </li>
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/products/compute"
                    
                     track-type="nav"
                     track-metadata-eventdetail="https://docs.cloud.google.com/products/compute"
                     track-metadata-position="nav - docs-home"
                     track-metadata-module="tertiary nav"
                     
                       track-metadata-module_headline="featured products"
                     
                     tooltip
                  >
                    
                    <div class="devsite-nav-item-title">
                      Compute Engine
                    </div>
                    
                  </a>
                </li>
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/cdn"
                    
                     track-type="nav"
                     track-metadata-eventdetail="https://docs.cloud.google.com/cdn"
                     track-metadata-position="nav - docs-home"
                     track-metadata-module="tertiary nav"
                     
                       track-metadata-module_headline="featured products"
                     
                     tooltip
                  >
                    
                    <div class="devsite-nav-item-title">
                      Cloud CDN
                    </div>
                    
                  </a>
                </li>
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/run"
                    
                     track-type="nav"
                     track-metadata-eventdetail="https://docs.cloud.google.com/run"
                     track-metadata-position="nav - docs-home"
                     track-metadata-module="tertiary nav"
                     
                       track-metadata-module_headline="featured products"
                     
                     tooltip
                  >
                    
                    <div class="devsite-nav-item-title">
                      Cloud Run
                    </div>
                    
                  </a>
                </li>
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/storage"
                    
                     track-type="nav"
                     track-metadata-eventdetail="https://docs.cloud.google.com/storage"
                     track-metadata-position="nav - docs-home"
                     track-metadata-module="tertiary nav"
                     
                       track-metadata-module_headline="featured products"
                     
                     tooltip
                  >
                    
                    <div class="devsite-nav-item-title">
                      Cloud Storage
                    </div>
                    
                  </a>
                </li>
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/sql"
                    
                     track-type="nav"
                     track-metadata-eventdetail="https://docs.cloud.google.com/sql"
                     track-metadata-position="nav - docs-home"
                     track-metadata-module="tertiary nav"
                     
                       track-metadata-module_headline="featured products"
                     
                     tooltip
                  >
                    
                    <div class="devsite-nav-item-title">
                      Cloud SQL
                    </div>
                    
                  </a>
                </li>
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/gemini/enterprise/docs"
                    
                     track-type="nav"
                     track-metadata-eventdetail="https://docs.cloud.google.com/gemini/enterprise/docs"
                     track-metadata-position="nav - docs-home"
                     track-metadata-module="tertiary nav"
                     
                       track-metadata-module_headline="featured products"
                     
                     tooltip
                  >
                    
                    <div class="devsite-nav-item-title">
                      Gemini Enterprise
                    </div>
                    
                  </a>
                </li>
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/kubernetes-engine"
                    
                     track-type="nav"
                     track-metadata-eventdetail="https://docs.cloud.google.com/kubernetes-engine"
                     track-metadata-position="nav - docs-home"
                     track-metadata-module="tertiary nav"
                     
                       track-metadata-module_headline="featured products"
                     
                     tooltip
                  >
                    
                    <div class="devsite-nav-item-title">
                      Google Kubernetes Engine
                    </div>
                    
                  </a>
                </li>
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/looker"
                    
                     track-type="nav"
                     track-metadata-eventdetail="https://docs.cloud.google.com/looker"
                     track-metadata-position="nav - docs-home"
                     track-metadata-module="tertiary nav"
                     
                       track-metadata-module_headline="featured products"
                     
                     tooltip
                  >
                    
                    <div class="devsite-nav-item-title">
                      Looker
                    </div>
                    
                  </a>
                </li>
              
            </ul>
          
        </div>
      
        <div class="devsite-tabs-dropdown-column
                    ">
          
            <ul class="devsite-tabs-dropdown-section
                       ">
              
                <li class="devsite-nav-title" role="heading" tooltip>Cross-product Tools</li>
              
              
              
            </ul>
          
            <ul class="devsite-tabs-dropdown-section
                       ">
              
              
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/docs/access-resources"
                    
                     track-type="nav"
                     track-metadata-eventdetail="https://docs.cloud.google.com/docs/access-resources"
                     track-metadata-position="nav - docs-home"
                     track-metadata-module="tertiary nav"
                     
                       track-metadata-module_headline="cross-product tools"
                     
                     tooltip
                  >
                    
                    <div class="devsite-nav-item-title">
                      Access and resources management
                    </div>
                    
                  </a>
                </li>
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/docs/costs-usage"
                    
                     track-type="nav"
                     track-metadata-eventdetail="https://docs.cloud.google.com/docs/costs-usage"
                     track-metadata-position="nav - docs-home"
                     track-metadata-module="tertiary nav"
                     
                       track-metadata-module_headline="cross-product tools"
                     
                     tooltip
                  >
                    
                    <div class="devsite-nav-item-title">
                      Costs and usage management
                    </div>
                    
                  </a>
                </li>
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/docs/iac"
                    
                     track-type="nav"
                     track-metadata-eventdetail="https://docs.cloud.google.com/docs/iac"
                     track-metadata-position="nav - docs-home"
                     track-metadata-module="tertiary nav"
                     
                       track-metadata-module_headline="cross-product tools"
                     
                     tooltip
                  >
                    
                    <div class="devsite-nav-item-title">
                      Infrastructure as code
                    </div>
                    
                  </a>
                </li>
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/docs/devtools"
                    
                     track-type="nav"
                     track-metadata-eventdetail="https://docs.cloud.google.com/docs/devtools"
                     track-metadata-position="nav - docs-home"
                     track-metadata-module="tertiary nav"
                     
                       track-metadata-module_headline="cross-product tools"
                     
                     tooltip
                  >
                    
                    <div class="devsite-nav-item-title">
                      SDK, languages, frameworks, and tools
                    </div>
                    
                  </a>
                </li>
              
            </ul>
          
        </div>
      
        <div class="devsite-tabs-dropdown-column
                    ">
          
            <ul class="devsite-tabs-dropdown-section
                       ">
              
                <li class="devsite-nav-title" role="heading" tooltip>Technology Areas</li>
              
              
              
            </ul>
          
            <ul class="devsite-tabs-dropdown-section
                       ">
              
              
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/docs/ai-ml"
                    
                     track-type="nav"
                     track-metadata-eventdetail="https://docs.cloud.google.com/docs/ai-ml"
                     track-metadata-position="nav - docs-home"
                     track-metadata-module="tertiary nav"
                     
                       track-metadata-module_headline="technology areas"
                     
                     tooltip
                  >
                    
                    <div class="devsite-nav-item-title">
                      AI and ML
                    </div>
                    
                  </a>
                </li>
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/docs/application-development"
                    
                     track-type="nav"
                     track-metadata-eventdetail="https://docs.cloud.google.com/docs/application-development"
                     track-metadata-position="nav - docs-home"
                     track-metadata-module="tertiary nav"
                     
                       track-metadata-module_headline="technology areas"
                     
                     tooltip
                  >
                    
                    <div class="devsite-nav-item-title">
                      Application development
                    </div>
                    
                  </a>
                </li>
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/docs/application-hosting"
                    
                     track-type="nav"
                     track-metadata-eventdetail="https://docs.cloud.google.com/docs/application-hosting"
                     track-metadata-position="nav - docs-home"
                     track-metadata-module="tertiary nav"
                     
                       track-metadata-module_headline="technology areas"
                     
                     tooltip
                  >
                    
                    <div class="devsite-nav-item-title">
                      Application hosting
                    </div>
                    
                  </a>
                </li>
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/docs/compute-area"
                    
                     track-type="nav"
                     track-metadata-eventdetail="https://docs.cloud.google.com/docs/compute-area"
                     track-metadata-position="nav - docs-home"
                     track-metadata-module="tertiary nav"
                     
                       track-metadata-module_headline="technology areas"
                     
                     tooltip
                  >
                    
                    <div class="devsite-nav-item-title">
                      Compute
                    </div>
                    
                  </a>
                </li>
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/docs/data"
                    
                     track-type="nav"
                     track-metadata-eventdetail="https://docs.cloud.google.com/docs/data"
                     track-metadata-position="nav - docs-home"
                     track-metadata-module="tertiary nav"
                     
                       track-metadata-module_headline="technology areas"
                     
                     tooltip
                  >
                    
                    <div class="devsite-nav-item-title">
                      Data analytics and pipelines
                    </div>
                    
                  </a>
                </li>
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/docs/databases"
                    
                     track-type="nav"
                     track-metadata-eventdetail="https://docs.cloud.google.com/docs/databases"
                     track-metadata-position="nav - docs-home"
                     track-metadata-module="tertiary nav"
                     
                       track-metadata-module_headline="technology areas"
                     
                     tooltip
                  >
                    
                    <div class="devsite-nav-item-title">
                      Databases
                    </div>
                    
                  </a>
                </li>
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/docs/dhm-cloud"
                    
                     track-type="nav"
                     track-metadata-eventdetail="https://docs.cloud.google.com/docs/dhm-cloud"
                     track-metadata-position="nav - docs-home"
                     track-metadata-module="tertiary nav"
                     
                       track-metadata-module_headline="technology areas"
                     
                     tooltip
                  >
                    
                    <div class="devsite-nav-item-title">
                      Distributed, hybrid, and multicloud
                    </div>
                    
                  </a>
                </li>
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/docs/industry"
                    
                     track-type="nav"
                     track-metadata-eventdetail="https://docs.cloud.google.com/docs/industry"
                     track-metadata-position="nav - docs-home"
                     track-metadata-module="tertiary nav"
                     
                       track-metadata-module_headline="technology areas"
                     
                     tooltip
                  >
                    
                    <div class="devsite-nav-item-title">
                      Industry solutions
                    </div>
                    
                  </a>
                </li>
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/docs/migration"
                    
                     track-type="nav"
                     track-metadata-eventdetail="https://docs.cloud.google.com/docs/migration"
                     track-metadata-position="nav - docs-home"
                     track-metadata-module="tertiary nav"
                     
                       track-metadata-module_headline="technology areas"
                     
                     tooltip
                  >
                    
                    <div class="devsite-nav-item-title">
                      Migration
                    </div>
                    
                  </a>
                </li>
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/docs/networking"
                    
                     track-type="nav"
                     track-metadata-eventdetail="https://docs.cloud.google.com/docs/networking"
                     track-metadata-position="nav - docs-home"
                     track-metadata-module="tertiary nav"
                     
                       track-metadata-module_headline="technology areas"
                     
                     tooltip
                  >
                    
                    <div class="devsite-nav-item-title">
                      Networking
                    </div>
                    
                  </a>
                </li>
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/docs/observability"
                    
                     track-type="nav"
                     track-metadata-eventdetail="https://docs.cloud.google.com/docs/observability"
                     track-metadata-position="nav - docs-home"
                     track-metadata-module="tertiary nav"
                     
                       track-metadata-module_headline="technology areas"
                     
                     tooltip
                  >
                    
                    <div class="devsite-nav-item-title">
                      Observability and monitoring
                    </div>
                    
                  </a>
                </li>
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/docs/security"
                    
                     track-type="nav"
                     track-metadata-eventdetail="https://docs.cloud.google.com/docs/security"
                     track-metadata-position="nav - docs-home"
                     track-metadata-module="tertiary nav"
                     
                       track-metadata-module_headline="technology areas"
                     
                     tooltip
                  >
                    
                    <div class="devsite-nav-item-title">
                      Security
                    </div>
                    
                  </a>
                </li>
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/docs/storage"
                    
                     track-type="nav"
                     track-metadata-eventdetail="https://docs.cloud.google.com/docs/storage"
                     track-metadata-position="nav - docs-home"
                     track-metadata-module="tertiary nav"
                     
                       track-metadata-module_headline="technology areas"
                     
                     tooltip
                  >
                    
                    <div class="devsite-nav-item-title">
                      Storage
                    </div>
                    
                  </a>
                </li>
              
            </ul>
          
        </div>
      
    </div>
  </div>
</tab>
        
      
    </nav>

  </devsite-tabs>

            
           </div>
          
<devsite-search
    enable-signin
    enable-search
    enable-suggestions
      
    
    enable-search-summaries
    project-name="Spanner"
    tenant-name="Google Cloud Documentation"
    project-scope="/spanner/docs"
    url-scoped="https://docs.cloud.google.com/s/results/spanner/docs"
    
    
    
    >
  <form class="devsite-search-form" action="https://docs.cloud.google.com/s/results" method="GET">
    <div class="devsite-search-container">
      <button type="button"
              search-open
              class="devsite-search-button devsite-header-icon-button button-flat material-icons"
              
              aria-label="Open search"></button>
      <div class="devsite-searchbox">
        <input
          aria-activedescendant=""
          aria-autocomplete="list"
          
          aria-label="Search"
          aria-expanded="false"
          aria-haspopup="listbox"
          autocomplete="off"
          class="devsite-search-field devsite-search-query"
          name="q"
          
          placeholder="Search"
          role="combobox"
          type="text"
          value=""
          >
          <div class="devsite-search-image material-icons" aria-hidden="true">
            
              <svg class="devsite-search-ai-image" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                  <g clip-path="url(#clip0_6641_386)">
                    <path d="M19.6 21L13.3 14.7C12.8 15.1 12.225 15.4167 11.575 15.65C10.925 15.8833 10.2333 16 9.5 16C7.68333 16 6.14167 15.375 4.875 14.125C3.625 12.8583 3 11.3167 3 9.5C3 7.68333 3.625 6.15 4.875 4.9C6.14167 3.63333 7.68333 3 9.5 3C10.0167 3 10.5167 3.05833 11 3.175C11.4833 3.275 11.9417 3.43333 12.375 3.65L10.825 5.2C10.6083 5.13333 10.3917 5.08333 10.175 5.05C9.95833 5.01667 9.73333 5 9.5 5C8.25 5 7.18333 5.44167 6.3 6.325C5.43333 7.19167 5 8.25 5 9.5C5 10.75 5.43333 11.8167 6.3 12.7C7.18333 13.5667 8.25 14 9.5 14C10.6667 14 11.6667 13.625 12.5 12.875C13.35 12.1083 13.8417 11.15 13.975 10H15.975C15.925 10.6333 15.7833 11.2333 15.55 11.8C15.3333 12.3667 15.05 12.8667 14.7 13.3L21 19.6L19.6 21ZM17.5 12C17.5 10.4667 16.9667 9.16667 15.9 8.1C14.8333 7.03333 13.5333 6.5 12 6.5C13.5333 6.5 14.8333 5.96667 15.9 4.9C16.9667 3.83333 17.5 2.53333 17.5 0.999999C17.5 2.53333 18.0333 3.83333 19.1 4.9C20.1667 5.96667 21.4667 6.5 23 6.5C21.4667 6.5 20.1667 7.03333 19.1 8.1C18.0333 9.16667 17.5 10.4667 17.5 12Z" fill="#5F6368"/>
                  </g>
                <defs>
                <clipPath id="clip0_6641_386">
                <rect width="24" height="24" fill="white"/>
                </clipPath>
                </defs>
              </svg>
            
          </div>
          <div class="devsite-search-shortcut-icon-container" aria-hidden="true">
            <kbd class="devsite-search-shortcut-icon">/</kbd>
          </div>
      </div>
    </div>
  </form>
  <button type="button"
          search-close
          class="devsite-search-button devsite-header-icon-button button-flat material-icons"
          
          aria-label="Close search"></button>
</devsite-search>

        </div>

        

  

  
    <a class="devsite-header-link devsite-top-button button gc-analytics-event button-with-icon"
    href="//console.cloud.google.com/"
    data-category="Site-Wide Custom Events"
    data-label="Site header link: Console"
    
      
        track-name="console"
      
        track-type="globalNav"
      
        track-metadata-eventDetail="nav"
      
        track-metadata-position="nav"
      
        referrerpolicy="no-referrer-when-downgrade"
      
    >
  Console
</a>
  

  

  <devsite-appearance-selector></devsite-appearance-selector>

  
<devsite-language-selector>
  <ul role="presentation">
    
    
    <li role="presentation">
      <a role="menuitem" lang="en"
        >English</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="de"
        >Deutsch</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="es"
        >Español</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="es_419"
        >Español – América Latina</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="fr"
        >Français</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="id"
        >Indonesia</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="it"
        >Italiano</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="pt"
        >Português</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="pt_br"
        >Português – Brasil</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="he"
        >עברית</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="zh_cn"
        >中文 – 简体</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="zh_tw"
        >中文 – 繁體</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="ja"
        >日本語</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="ko"
        >한국어</a>
    </li>
    
  </ul>
</devsite-language-selector>




        
          <devsite-user 
                        
                        
                          enable-profiles
                        
                        
                          fp-auth
                        
                        id="devsite-user">
            
              
              <span class="button devsite-top-button" aria-hidden="true" visually-hidden>Sign in</span>
            
          </devsite-user>
        
        
        
      </div>
    </div>
  </div>



  <div class="devsite-collapsible-section
    ">
    <div class="devsite-header-background">
      
        
          <div class="devsite-product-id-row"
           >
            <div class="devsite-product-description-row">
              
                
                <div class="devsite-product-id">
                  
                    
  
  <a href="https://docs.cloud.google.com/spanner/docs">
    
  <div class="devsite-product-logo-container"
       
       
       
    size="medium"
  >
  
    <picture>
      
      <source class="devsite-dark-theme"
              media="(prefers-color-scheme: dark)"
              srcset=" /_static/clouddocs/images/icons/products/spanner-white.svg"
              sizes="64px">
      
      <img class="devsite-product-logo"
           alt=""
           src="https://docs.cloud.google.com/_static/clouddocs/images/icons/products/spanner-color.svg"
           srcset=" /_static/clouddocs/images/icons/products/spanner-color.svg"
           sizes="64px"
           loading="lazy"
           >
    </picture>
  
  </div>
  
  </a>
  

                  
                  
                  
                    <ul class="devsite-breadcrumb-list"
  >
  
  <li class="devsite-breadcrumb-item
             ">
    
    
    
      
        
  <a href="https://docs.cloud.google.com/spanner/docs"
      
        class="devsite-breadcrumb-link gc-analytics-event"
      
        data-category="Site-Wide Custom Events"
      
        data-label="Lower Header"
      
        data-value="1"
      
        track-type="globalNav"
      
        track-name="breadcrumb"
      
        track-metadata-position="1"
      
        track-metadata-eventdetail="Spanner"
      
    >
    
          Spanner
        
  </a>
  
      
    
  </li>
  
</ul>
                </div>
                
              
              
            </div>
            
              <div class="devsite-product-button-row">
  

  
  <a href="//console.cloud.google.com/freetrial"
  
    class="cloud-free-trial-button button button-primary
      "
    
    
      
        track-name="gcpCta"
      
        track-metadata-position="nav"
      
        track-metadata-eventDetail="nav"
      
        track-type="freeTrial"
      
        referrerpolicy="no-referrer-when-downgrade"
      
    
    >Start free</a>

</div>
            
          </div>
          
        
      
      
        <div class="devsite-doc-set-nav-row">
          
          
            
            
  <devsite-tabs class="lower-tabs">

    <nav class="devsite-tabs-wrapper" aria-label="Lower tabs">
      
        
          <tab  >
            
    <a href="https://docs.cloud.google.com/spanner/docs"
    class="devsite-tabs-content gc-analytics-event "
      track-metadata-eventdetail="https://docs.cloud.google.com/spanner/docs"
    
       track-type="nav"
       track-metadata-position="nav - overview"
       track-metadata-module="primary nav"
       
       
         
           data-category="Site-Wide Custom Events"
         
           data-label="Tab: Overview"
         
           track-name="overview"
         
       >
    Overview
  
    </a>
    
  
          </tab>
        
      
        
          <tab  class="devsite-active">
            
    <a href="https://docs.cloud.google.com/spanner/docs/create-query-database-console"
    class="devsite-tabs-content gc-analytics-event "
      track-metadata-eventdetail="https://docs.cloud.google.com/spanner/docs/create-query-database-console"
    
       track-type="nav"
       track-metadata-position="nav - guides"
       track-metadata-module="primary nav"
       aria-label="Guides, selected" 
       
         
           data-category="Site-Wide Custom Events"
         
           data-label="Tab: Guides"
         
           track-name="guides"
         
       >
    Guides
  
    </a>
    
  
          </tab>
        
      
        
          <tab  >
            
    <a href="https://docs.cloud.google.com/spanner/docs/apis"
    class="devsite-tabs-content gc-analytics-event "
      track-metadata-eventdetail="https://docs.cloud.google.com/spanner/docs/apis"
    
       track-type="nav"
       track-metadata-position="nav - reference"
       track-metadata-module="primary nav"
       
       
         
           data-category="Site-Wide Custom Events"
         
           data-label="Tab: Reference"
         
           track-name="reference"
         
       >
    Reference
  
    </a>
    
  
          </tab>
        
      
        
          <tab  >
            
    <a href="https://docs.cloud.google.com/spanner/docs/samples"
    class="devsite-tabs-content gc-analytics-event "
      track-metadata-eventdetail="https://docs.cloud.google.com/spanner/docs/samples"
    
       track-type="nav"
       track-metadata-position="nav - samples"
       track-metadata-module="primary nav"
       
       
         
           data-category="Site-Wide Custom Events"
         
           data-label="Tab: Samples"
         
           track-name="samples"
         
       >
    Samples
  
    </a>
    
  
          </tab>
        
      
        
          <tab  >
            
    <a href="https://docs.cloud.google.com/spanner/docs/support"
    class="devsite-tabs-content gc-analytics-event "
      track-metadata-eventdetail="https://docs.cloud.google.com/spanner/docs/support"
    
       track-type="nav"
       track-metadata-position="nav - support"
       track-metadata-module="primary nav"
       
       
         
           data-category="Site-Wide Custom Events"
         
           data-label="Tab: Support"
         
           track-name="support"
         
       >
    Support
  
    </a>
    
  
          </tab>
        
      
        
          <tab  >
            
    <a href="https://docs.cloud.google.com/spanner/docs/resources"
    class="devsite-tabs-content gc-analytics-event "
      track-metadata-eventdetail="https://docs.cloud.google.com/spanner/docs/resources"
    
       track-type="nav"
       track-metadata-position="nav - resources"
       track-metadata-module="primary nav"
       
       
         
           data-category="Site-Wide Custom Events"
         
           data-label="Tab: Resources"
         
           track-name="resources"
         
       >
    Resources
  
    </a>
    
  
          </tab>
        
      
    </nav>

  </devsite-tabs>

          
          
        </div>
      
    </div>
  </div>

</div>



  

  
</devsite-header>
        <devsite-book-nav scrollbars >
          
            





















<div class="devsite-book-nav-filter"
     >
  <span class="filter-list-icon material-icons" aria-hidden="true"></span>
  <input type="text"
         placeholder="Filter"
         
         aria-label="Type to filter"
         role="searchbox">
  
  <span class="filter-clear-button hidden"
        data-title="Clear filter"
        aria-label="Clear filter"
        role="button"
        tabindex="0"></span>
</div>

<nav class="devsite-book-nav devsite-nav nocontent" data-nosnippet
     aria-label="Side menu">
  <div class="devsite-mobile-header">
    <button type="button"
            id="devsite-close-nav"
            class="devsite-header-icon-button button-flat material-icons gc-analytics-event"
            data-category="Site-Wide Custom Events"
            data-label="Close navigation"
            aria-label="Close navigation">
    </button>
    <div class="devsite-product-name-wrapper">

  <a href="/" class="devsite-site-logo-link gc-analytics-event"
   data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav"
   track-name="googleCloudDocumentation" track-metadata-position="nav"
   track-metadata-eventDetail="nav">
  
  <picture>
    
    <source srcset="https://www.gstatic.com/devrel-devsite/prod/veec7311b6c5f99ef32994eb65aab7022195f72bfa4f3d934bdc7556da7fa7c3b/clouddocs/images/lockup_dark_theme.svg"
            media="(prefers-color-scheme: dark)"
            class="devsite-dark-theme">
    
    <img src="https://www.gstatic.com/devrel-devsite/prod/veec7311b6c5f99ef32994eb65aab7022195f72bfa4f3d934bdc7556da7fa7c3b/clouddocs/images/lockup_full_color.svg" class="devsite-site-logo" alt="Google Cloud Documentation">
  </picture>
  
</a>


</div>
  </div>

  <div class="devsite-book-nav-wrapper">
    <div class="devsite-mobile-nav-top">
      
        <ul class="devsite-nav-list">
          
            <li class="devsite-nav-item">
              
  
  <a href="/docs"
    
       class="devsite-nav-title gc-analytics-event
              
              devsite-nav-active"
    

    
      
        data-category="Site-Wide Custom Events"
      
        data-label="Tab: Documentation"
      
        track-name="docs-home"
      
        track-link-column-type="single-column"
      
    
     data-category="Site-Wide Custom Events"
     data-label="Responsive Tab: Documentation"
     track-type="globalNav"
     track-metadata-eventDetail="globalMenu"
     track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip >
      Documentation
   </span>
    
  
  </a>
  

  
    <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu
               ">
      
<li class="devsite-nav-item">

  
  <span
    
       class="devsite-nav-title"
       tooltip
    
    
      
        data-category="Site-Wide Custom Events"
      
        data-label="Tab: Documentation"
      
        track-name="docs-home"
      
        track-link-column-type="single-column"
      
    >
  
    <span class="devsite-nav-text" tooltip menu="Documentation">
      More
   </span>
    
    <span class="devsite-nav-icon material-icons" data-icon="forward"
          menu="Documentation">
    </span>
    
  
  </span>
  

</li>

    </ul>
  
              
                <ul class="devsite-nav-responsive-tabs">
                  
                    
                    
                    
                    <li class="devsite-nav-item">
                      
  
  <a href="/spanner/docs"
    
       class="devsite-nav-title gc-analytics-event
              
              "
    

    
      
        data-category="Site-Wide Custom Events"
      
        data-label="Tab: Overview"
      
        track-name="overview"
      
    
     data-category="Site-Wide Custom Events"
     data-label="Responsive Tab: Overview"
     track-type="globalNav"
     track-metadata-eventDetail="globalMenu"
     track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip >
      Overview
   </span>
    
  
  </a>
  

  
                    </li>
                  
                    
                    
                    
                    <li class="devsite-nav-item">
                      
  
  <a href="/spanner/docs/create-query-database-console"
    
       class="devsite-nav-title gc-analytics-event
              
              devsite-nav-active"
    

    
      
        data-category="Site-Wide Custom Events"
      
        data-label="Tab: Guides"
      
        track-name="guides"
      
    
     data-category="Site-Wide Custom Events"
     data-label="Responsive Tab: Guides"
     track-type="globalNav"
     track-metadata-eventDetail="globalMenu"
     track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip menu="_book">
      Guides
   </span>
    
  
  </a>
  

  
                    </li>
                  
                    
                    
                    
                    <li class="devsite-nav-item">
                      
  
  <a href="/spanner/docs/apis"
    
       class="devsite-nav-title gc-analytics-event
              
              "
    

    
      
        data-category="Site-Wide Custom Events"
      
        data-label="Tab: Reference"
      
        track-name="reference"
      
    
     data-category="Site-Wide Custom Events"
     data-label="Responsive Tab: Reference"
     track-type="globalNav"
     track-metadata-eventDetail="globalMenu"
     track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip >
      Reference
   </span>
    
  
  </a>
  

  
                    </li>
                  
                    
                    
                    
                    <li class="devsite-nav-item">
                      
  
  <a href="/spanner/docs/samples"
    
       class="devsite-nav-title gc-analytics-event
              
              "
    

    
      
        data-category="Site-Wide Custom Events"
      
        data-label="Tab: Samples"
      
        track-name="samples"
      
    
     data-category="Site-Wide Custom Events"
     data-label="Responsive Tab: Samples"
     track-type="globalNav"
     track-metadata-eventDetail="globalMenu"
     track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip >
      Samples
   </span>
    
  
  </a>
  

  
                    </li>
                  
                    
                    
                    
                    <li class="devsite-nav-item">
                      
  
  <a href="/spanner/docs/support"
    
       class="devsite-nav-title gc-analytics-event
              
              "
    

    
      
        data-category="Site-Wide Custom Events"
      
        data-label="Tab: Support"
      
        track-name="support"
      
    
     data-category="Site-Wide Custom Events"
     data-label="Responsive Tab: Support"
     track-type="globalNav"
     track-metadata-eventDetail="globalMenu"
     track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip >
      Support
   </span>
    
  
  </a>
  

  
                    </li>
                  
                    
                    
                    
                    <li class="devsite-nav-item">
                      
  
  <a href="/spanner/docs/resources"
    
       class="devsite-nav-title gc-analytics-event
              
              "
    

    
      
        data-category="Site-Wide Custom Events"
      
        data-label="Tab: Resources"
      
        track-name="resources"
      
    
     data-category="Site-Wide Custom Events"
     data-label="Responsive Tab: Resources"
     track-type="globalNav"
     track-metadata-eventDetail="globalMenu"
     track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip >
      Resources
   </span>
    
  
  </a>
  

  
                    </li>
                  
                </ul>
              
            </li>
          
          
    
    
<li class="devsite-nav-item">

  
  <a href="//console.cloud.google.com/"
    
       class="devsite-nav-title gc-analytics-event button-with-icon"
    

    
      
        track-name="console"
      
        track-type="globalNav"
      
        track-metadata-eventDetail="nav"
      
        track-metadata-position="nav"
      
        referrerpolicy="no-referrer-when-downgrade"
      
    
     data-category="Site-Wide Custom Events"
     data-label="Responsive Tab: Console"
     track-type="navMenu"
     track-metadata-eventDetail="globalMenu"
     track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip >
      Console
   </span>
    
  
  </a>
  

</li>

  
          
        </ul>
      
    </div>
    
      <div class="devsite-mobile-nav-bottom">
        
          
          <ul class="devsite-nav-list" menu="_book">
            <li class="devsite-nav-item
           devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path">
        <span class="devsite-nav-text" tooltip>Discover</span>
      </div></li>

  <li class="devsite-nav-item"><a href="/spanner/docs"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Product overview</span></a></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/editions-overview"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Spanner editions overview</span></a></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/security-privacy-compliance"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Security, privacy, risk, and compliance overview</span></a></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/postgresql-interface"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>PostgreSQL interface</span></a></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Spanner for non-relational workloads</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/non-relational/overview"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Non-relational overview</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/non-relational/cassandra-overview"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Cassandra interface</span></a></li></ul></div></li>

  <li class="devsite-nav-item
           devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path">
        <span class="devsite-nav-text" tooltip>Get started</span>
      </div></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/proof-of-concept-playbook"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Spanner proof of concept playbook</span></a></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/getting-started/set-up"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Set up your environment</span></a></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Create and query a database</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/create-query-database-console"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Use the Google Cloud console</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/getting-started/gcloud"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Use the gcloud CLI</span></a></li></ul></div></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/manage-data-using-console"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Manage your data using the Google Cloud console</span></a></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Client libraries</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/getting-started/cpp"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>C++ quickstart</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/getting-started/csharp"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>C# quickstart</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/getting-started/go"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Go quickstart</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/getting-started/java"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Java quickstart</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/getting-started/nodejs"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Node.js quickstart</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/getting-started/php"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>PHP quickstart</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/getting-started/python"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Python quickstart</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/getting-started/ruby"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Ruby quickstart</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/getting-started/rest"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>REST quickstart</span></a></li></ul></div></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Drivers</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/getting-started/set-up"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Set up with drivers</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/getting-started/jdbc"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>JDBC quickstart</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/getting-started/database_sql"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Go database/sql quickstart</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/getting-started/ado_net"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>ADO.NET quickstart</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/getting-started/pgadapter"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>PostgreSQL drivers quickstart</span></a></li></ul></div></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Spanner CLI</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/spanner-cli"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Spanner CLI quickstart</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/spanner-cli-commands"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Spanner CLI commands</span></a></li></ul></div></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Free trial instances</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/free-trial-instance"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Free trial instances overview</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/free-trial-quickstart"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Create a free trial instance</span></a></li></ul></div></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/data-residency"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Data residency overview</span></a></li>

  <li class="devsite-nav-item
           devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path">
        <span class="devsite-nav-text" tooltip>Create and manage</span>
      </div></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Instances</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/instances"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Instances overview</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/compute-capacity"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Nodes and processing units</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/instance-configurations"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Regional, dual-region, and multi-region configurations</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/region-types"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Region types</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/replication"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Replication</span></a></li><li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Geo-partition data</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/geo-partitioning"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Geo-partitioning overview</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/create-manage-partitions"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Create and manage instance partitions</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/create-manage-data-placements"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Create and manage data placements</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/index-geo-partitioning"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Indexes and geo-partitioning</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/spanner/docs/leader-aware-routing"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Leader-aware routing</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/endpoints"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Global and regional service endpoints</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/tiered-storage"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Tiered storage</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/create-manage-instances"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Create and manage instances</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/create-manage-configurations"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Create and manage instance configurations</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/change-dual-region-quorum"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Change dual-region quorum</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/move-instance"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Move an instance</span></a></li><li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Autoscale instances</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/autoscaling-overview"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Autoscaling overview</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/managed-autoscaler"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Managed autoscaler</span></a></li><li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Open source Autoscaler tool</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/autoscaler-tool-overview"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Autoscaler tool overview</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/set-up-autoscaling-cloud-run"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Deploy the Autoscaler tool to Cloud Run functions</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/set-up-autoscaling-gke"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Deploy the Autoscaler tool to GKE</span></a></li></ul></div></li></ul></div></li><li class="devsite-nav-item"><a href="/spanner/docs/tags"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Control access and organize instances using tags</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/labels"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Organize instances and view costs using labels</span></a></li></ul></div></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Databases</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/databases"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Databases overview</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/choose-googlesql-or-postgres"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Choose between GoogleSQL and PostgreSQL</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/create-manage-databases"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Create and manage databases</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/prevent-database-deletion"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Prevent accidental database deletion</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/schema-drop-protection"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Schema object drop protection</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/modifying-leader-region"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Modify the leader region of a database</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/set-default-time-zone"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Set the default time zone for a database</span></a></li></ul></div></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/dc-integration"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Manage resources using Data Catalog</span></a></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Design and manage a database schema</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/schema-and-data-model"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Schemas overview</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/schema-design"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Schema design best practices</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/schema-updates"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Make schema updates</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/schema-updates-best-practices"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Schema update best practices</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/named-schemas"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Create and manage named schemas</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/views"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Views overview</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/create-manage-views"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Create and manage views</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/secondary-indexes"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Secondary indexes</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/foreign-keys/overview"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Foreign keys</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/primary-key-default-value"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Primary key default values management</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/foreign-keys/how-to"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Create and manage foreign key relationships</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/check-constraint/how-to"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Create and manage check constraints</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/generated-column/how-to"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Create and manage generated columns</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/storing-numeric-data"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Store arbitrary precision numeric data</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/sequence-tasks"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Create and manage sequences</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/table-name-synonym"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Manage table names</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/create-manage-locality-groups"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Create and manage locality groups</span></a></li></ul></div></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Routines</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item
           devsite-nav-preview"><a href="/spanner/docs/cloud-run-remote-function"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Remote functions</span><span class="devsite-nav-icon material-icons"
        data-icon="preview"
        data-title="Preview"
        aria-hidden="true"></span></a></li></ul></div></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/manage-and-observe-long-running-operations"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Manage and observe long-running operations</span></a></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Configure time to live (TTL)</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/ttl"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>TTL overview</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/ttl/working-with-ttl"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Manage data retention with TTL</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/ttl/monitoring-and-metrics"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>TTL metrics and monitoring</span></a></li></ul></div></li>

  <li class="devsite-nav-item
           devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path">
        <span class="devsite-nav-text" tooltip>Connect</span>
      </div></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/psql-connect"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Connect to a PostgreSQL-dialect database</span></a></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Connect PostgreSQL clients to Spanner using PGAdapter</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/pgadapter"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>PGAdapter overview</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/pgadapter-get"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Get PGAdapter</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/pgadapter-start"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Start PGAdapter</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/pgadapter-session-mgmt-commands"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>PGAdapter session management commands</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/pgadapter-emulator"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Connect PGAdapter to the emulator</span></a></li></ul></div></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/non-relational/connect-cassandra-adapter"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Connect to Spanner using the Cassandra Adapter</span></a></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/configure-virtual-machine-instance"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Create and connect a Compute Engine VM instance to access Spanner</span></a></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/connect-gke-cluster"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Connect to Spanner with a GKE cluster</span></a></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/integrate-google-cloud-platform"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Connect to Spanner from other Google Cloud services</span></a></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/authentication"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Authenticate to Spanner</span></a></li>

  <li class="devsite-nav-item
           devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path">
        <span class="devsite-nav-text" tooltip>Secure and control access</span>
      </div></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Access control with IAM</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/iam"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>IAM overview</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/grant-permissions"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Apply IAM roles</span></a></li></ul></div></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Fine-grained access control</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/fgac-about"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Fine-grained access control overview</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/fgac-change-streams"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Fine-grained access control for change streams</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/fgac-sequences"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Fine-grained access control for sequences</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/fgac-models"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Fine-grained access control for models</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/configure-fgac"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Configure fine-grained access control</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/access-with-fgac"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Access a database with fine-grained access control</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/fgac-privileges"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Fine-grained access control privileges</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/fgac-system-roles"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Fine-grained access control system roles</span></a></li></ul></div></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/spanner-custom-constraints"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Add a custom organization policy</span></a></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Data encryption</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Customer-managed encryption keys (CMEK)</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/cmek"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>CMEK overview</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/use-cmek"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Secure a database using CMEK</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/spanner/docs/encryption-in-transit"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Data encryption in transit</span></a></li></ul></div></li>

  <li class="devsite-nav-item
           devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path">
        <span class="devsite-nav-text" tooltip>Migrate</span>
      </div></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Migration process</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/migration-overview"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Migration overview</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/assess-migration"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Assess your migration</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/schema-migration"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Migrate your schema</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/application-migration"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Migrate your application</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/optimize-schema-performance"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Optimize your schema and application performance</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/data-migration"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Migrate your data</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/data-validation"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Validate your data</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/cutover-fallback-mechanisms"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Configure cutover and fallback mechanisms</span></a></li></ul></div></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Migration tools</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/migration-tools"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Migration tools overview</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/set-up-spanner-migration-tool"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Set up Spanner migration tool (SMT)</span></a></li></ul></div></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Primary key migration</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/primary-keys-overview"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Primary key migration overview</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/migrating-primary-keys"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Migrate primary keys</span></a></li></ul></div></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Migrate from MySQL</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/migrating-mysql-to-spanner"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>MySQL migration overview</span></a></li><li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>MySQL schema migration</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/migrate-mysql-schema"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Migrate schema from MySQL overview</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/use-smt-migrate-mysql-schema"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Use SMT to migrate schema from MySQL</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/spanner/docs/mysql-live-data-migration"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Migrate your MySQL data</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/mysql-configure-fallback"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Configure fallback for MySQL</span></a></li></ul></div></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/load-sample-data"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Load sample data</span></a></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/migrating-dynamodb-to-cloud-spanner"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Migrate from DynamoDB</span></a></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/migrating-oracle-to-cloud-spanner"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Migrate from Oracle</span></a></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Migrate from PostgreSQL</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/migrating-postgres-spanner"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Migrate to a GoogleSQL-dialect database</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/migrating-postgres-spanner-pgcompat"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Migrate to a PostgreSQL-dialect database</span></a></li></ul></div></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/non-relational/migrate-from-cassandra-to-spanner"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Migrate from Cassandra</span></a></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/migrate-spanner-pg-to-pg-database"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Migrate Spanner to a PostgreSQL database</span></a></li>

  <li class="devsite-nav-item
           devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path">
        <span class="devsite-nav-text" tooltip>Import and export data</span>
      </div></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/import-export-overview"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Import and export overview</span></a></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/dataflow-connector"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Import, export, and modify data using Dataflow</span></a></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Import and export data in Avro format</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/import"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Import Spanner Avro files</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/export"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Export data from Spanner to Avro</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/import-non-spanner"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Import data from non-Spanner databases</span></a></li></ul></div></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/import-export-csv"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Import and export data in CSV format</span></a></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/import-database-cloudsql"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Import a database from Cloud SQL</span></a></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/import-copy"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Import data from PostgreSQL using COPY</span></a></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/bulk-loading"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Bulk loading best practices</span></a></li>

  <li class="devsite-nav-item
           devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path">
        <span class="devsite-nav-text" tooltip>Disaster recovery</span>
      </div></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/backup/disaster-recovery-overview"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Disaster recovery overview</span></a></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Back up databases</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/backup"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Backups overview</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/backup/create-backups"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Create backups</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/backup/create-manage-backup-schedules"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Create and manage backup schedules</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/backup/manage-backups"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Manage backups</span></a></li></ul></div></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Restore databases</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/backup/restore-backup-overview"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Restore overview</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/backup/restore-backups"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Restore from a backup</span></a></li></ul></div></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Point-in-time recovery (PITR)</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/pitr"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>PITR overview</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/use-pitr"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Recover data using PITR</span></a></li></ul></div></li>

  <li class="devsite-nav-item
           devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path">
        <span class="devsite-nav-text" tooltip>Develop</span>
      </div></li>

  <li class="devsite-nav-item
           devsite-nav-preview"><a href="/spanner/docs/write-sql-gemini"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Write SQL with Gemini assistance</span><span class="devsite-nav-icon material-icons"
        data-icon="preview"
        data-title="Preview"
        aria-hidden="true"></span></a></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Use case best practices</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/best-practices-gaming-database"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Spanner as a gaming database</span></a></li></ul></div></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Integrate language frameworks</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Spanner with Hibernate</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/use-hibernate"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Integrate with Hibernate ORM (GoogleSQL)</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/use-hibernate-postgresql"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Integrate with Hibernate ORM (PostgreSQL)</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/write-hibernate-app"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Write a Hibernate app that connects to Spanner</span></a></li></ul></div></li><li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Spanner with Spring Data JPA</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/use-spring-data-jpa"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Integrate with Spring Data JPA (GoogleSQL)</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/use-spring-data-jpa-postgresql"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Integrate with Spring Data JPA (PostgreSQL)</span></a></li></ul></div></li><li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Spanner with Spring Data JDBC</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/use-spring-data-jdbc-googlesql"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Integrate with Spring Data JDBC (GoogleSQL)</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/use-spring-data-jdbc-postgresql"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Integrate with Spring Data JDBC (PostgreSQL)</span></a></li></ul></div></li><li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Spanner with MyBatis</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/use-mybatis-spring-boot-googlesql"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Integrate with MyBatis and Spring Boot (GoogleSQL)</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/use-mybatis-spring-boot-postgresql"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Integrate with MyBatis and Spring Boot (PostgreSQL)</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/spanner/docs/adding-spring"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Spanner with Spring Data</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/write-spring-boot-app"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Write a Spring Boot app that connects to Spanner</span></a></li><li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Spanner with GORM</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/use-gorm"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Integrate with GORM (GoogleSQL)</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/use-gorm-postgresql"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Integrate with GORM (PostgreSQL)</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/spanner/docs/django-orm"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Spanner with Django ORM</span></a></li><li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Spanner with SQLAlchemy</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/use-sqlalchemy"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Integrate with SQLAlchemy (GoogleSQL)</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/use-sqlalchemy-pg"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Integrate with SQLAlchemy (PostgreSQL)</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/spanner/docs/use-active-record"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Spanner with Active Record</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/use-entity-framework"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Spanner with Entity Framework Core</span></a></li></ul></div></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Use transactions</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/transactions"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Transactions overview</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/timestamp-bounds"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Timestamp bounds</span></a></li><li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Commit timestamps</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/commit-timestamp"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>In GoogleSQL-dialect databases</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/commit-timestamp-postgresql"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>In PostgreSQL-dialect databases</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/spanner/docs/true-time-external-consistency"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>TrueTime and external consistency</span></a></li><li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Isolation levels</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/isolation-levels"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Isolation levels overview</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/use-repeatable-read-isolation"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Use repeatable read isolation</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/use-select-for-update-serializable"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Use SELECT FOR UPDATE in serializable isolation</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/use-select-for-update-repeatable-read"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Use SELECT FOR UPDATE in repeatable read isolation</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/spanner/docs/concurrency-control"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Concurrency control</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/throughput-optimized-writes"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Throughput optimized writes</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/commit-statistics"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Retrieve commit statistics for a transaction</span></a></li></ul></div></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/sessions"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Sessions</span></a></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/sql-best-practices"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>SQL best practices</span></a></li>

  <li class="devsite-nav-item
           devsite-nav-preview"><a href="/spanner/docs/reference/standard-sql/pipe-syntax-guide"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Work with pipe query syntax</span><span class="devsite-nav-icon material-icons"
        data-icon="preview"
        data-title="Preview"
        aria-hidden="true"></span></a></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Read data</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/reads"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Reads outside of transactions</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/directed-reads"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Directed reads</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/read-lease"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Read lease</span></a></li><li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Use Data Boost independent compute resources for reads</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/databoost/databoost-overview"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Data Boost overview</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/databoost/databoost-run-queries"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Run federated queries with Data Boost</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/databoost/databoost-export"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Export data with Data Boost</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/databoost/databoost-applications"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Use Data Boost in your applications</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/databoost/databoost-monitor"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Monitor Data Boost usage</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/databoost/databoost-quotas"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Monitor and manage Data Boost quota usage</span></a></li></ul></div></li><li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Use saved queries</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/saved-queries"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Saved queries overview</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/create-manage-saved-queries"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Create and manage saved queries</span></a></li></ul></div></li></ul></div></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Modify data</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/modify-data"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Modify data using the Google Cloud console</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/modify-gcloud"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Modify data using the gcloud CLI</span></a></li><li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Modify data using DML</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/dml-tasks"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Insert, update, and delete data using DML</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/dml-partitioned"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Partitioned DML</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/dml-best-practices"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>DML best practices</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/spanner/docs/modify-mutation-api"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Modify data using mutations</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/dml-versus-mutations"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Compare DML with mutations</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/batch-write"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Modify data using batch write</span></a></li></ul></div></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Work with data types</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Work with arrays</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/reference/standard-sql/arrays"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>In GoogleSQL-dialect databases</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/reference/postgresql/arrays"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>In PostgreSQL-dialect databases</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/spanner/docs/structs"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Work with STRUCT objects</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/working-with-numerics"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Work with NUMERIC data</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/working-with-json"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Work with JSON data</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/working-with-jsonb"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Work with JSONB data</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/reference/standard-sql/protocol-buffers"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Work with protocol buffers in GoogleSQL</span></a></li></ul></div></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Develop and test</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/emulator"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Emulate Spanner locally</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/use-terraform"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Use Terraform with Spanner</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/custom-timeout-and-retry"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Configure custom timeouts and retries</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/statement-timeout"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Configure statement timeout</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/transaction-timeout"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Configure transaction timeout</span></a></li></ul></div></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Process and view data</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/dataflow-templates"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Dataflow templates</span></a></li><li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Stream out data changes</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/change-streams"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Change streams overview</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/change-streams/manage"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Create and manage change streams</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/change-streams/use-dataflow"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Build change streams connections using Dataflow</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/change-streams/use-kafka"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Build change streams connections to Kafka</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/change-streams/details"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Change streams partitions, records, and queries</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/spanner/docs/use-intellij"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Integrate Spanner with IntelliJ</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/partners/looker"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Integrate Spanner with Looker</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/use-liquibase"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Integrate Spanner with Liquibase</span></a></li></ul></div></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Full-text search</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/full-text-search"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Full-text search overview</span></a></li><li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Tokenization and Search Indexes</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/full-text-search/tokenization"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Tokenization</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/full-text-search/search-indexes"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Search indexes</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/full-text-search/numeric-indexes"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Numeric search indexes</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/full-text-search/json-indexes"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>JSON search indexes</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/full-text-search/partition-search-index"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Partition search indexes</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/full-text-search/combine-tokenlists"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Combine TOKENLISTs</span></a></li></ul></div></li><li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Full-text search queries</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/full-text-search/query-overview"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Query overview</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/full-text-search/search-multiple-columns"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Search multiple columns</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/full-text-search/mix-full-text-and-non-text-queries"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Mix full-text and non-text queries</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/full-text-search/ranked-search"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Rank search results</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/full-text-search/substring-search"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Perform a substring search</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/full-text-search/search-query-enhancement"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Search with query enhancement</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/full-text-search/pattern-matching-function-acceleration"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Accelerate pattern-matching functions</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/full-text-search/fuzzy-search"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Find approximate matches with fuzzy search</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/full-text-search/top-k-pattern-matching"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Perform top-k pattern matching</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/full-text-search/facets"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Perform a search using facets</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/full-text-search/paginate-search-results"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Paginate search results</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/spanner/docs/hybrid-full-text-vector-search"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Hybrid full-text and vector search patterns</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/full-text-search/search-vs-secondary-index"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Search versus secondary indexes</span></a></li></ul></div></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/install-mysql-functions"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Install MySQL functions in Spanner</span></a></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/implement-multi-tenancy"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Implement multi-tenancy in Spanner</span></a></li>

  <li class="devsite-nav-item
           devsite-nav-preview"><a href="/spanner/docs/build-data-agents-conversational-analytics"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Build data agents with conversational analytics</span><span class="devsite-nav-icon material-icons"
        data-icon="preview"
        data-title="Preview"
        aria-hidden="true"></span></a></li>

  <li class="devsite-nav-item
           devsite-nav-preview"><a href="/spanner/docs/querydata"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Query database in natural language with QueryData</span><span class="devsite-nav-icon material-icons"
        data-icon="preview"
        data-title="Preview"
        aria-hidden="true"></span></a></li>

  <li class="devsite-nav-item
           devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path">
        <span class="devsite-nav-text" tooltip>Spanner AI and machine learning</span>
      </div></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/spanner-ai-overview"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Spanner AI overview</span></a></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/vector-search-tutorial"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Get started using Spanner for generative AI applications</span></a></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/ml"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Spanner integration with Agent Platform</span></a></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Vector search</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/vector-search-overview"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Vector search overview</span></a></li><li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Generate embeddings</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/ml-tutorial-embeddings"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Get Agent Platform text embeddings</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/backfill-embeddings"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Generate vector embeddings in bulk using partitioned DML</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/spanner/docs/find-k-nearest-neighbors"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Perform K-nearest neighbors search</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/choose-vector-distance-function"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Choose the best vector distance function</span></a></li><li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Approximate nearest neighbors (ANN)</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/find-approximate-nearest-neighbors"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Perform ANN search with vector indexes</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/vector-indexes"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Create and manage vector indexes</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/vector-index-best-practices"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Vector indexing best practices</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/spanner/docs/vector-search-embeddings"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Export embeddings to Agent Platform Vector Search</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/vector-search-best-practices"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Vector search best practices</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/troubleshoot-vector-search"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Troubleshoot vector search</span></a></li></ul></div></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Generate predictions</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/ml-tutorial"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Generate ML predictions using SQL</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/ml-tutorial-generative-ai"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Use Generative AI with a sample ecommerce application</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/ml-emulator"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Generate ML predictions using the Spanner emulator</span></a></li></ul></div></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Integrate with AI technologies</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/langchain"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Build LLM-powered applications using LangChain</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/pre-built-tools-with-mcp-toolbox"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Use Spanner with agents</span></a></li><li class="devsite-nav-item
           devsite-nav-preview"><a href="/spanner/docs/secure-agent-interactions-mcp"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Best practices for securing agent interactions with MCP</span><span class="devsite-nav-icon material-icons"
        data-icon="preview"
        data-title="Preview"
        aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/llama-index"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Build applications using LlamaIndex</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/use-spanner-mcp"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Use the Spanner remote MCP server</span></a></li></ul></div></li>

  <li class="devsite-nav-item
           devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path">
        <span class="devsite-nav-text" tooltip>Spanner Graph</span>
      </div></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/graph/overview"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Product overview</span></a></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/graph/set-up"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Set up and query Spanner Graph</span></a></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Spanner Graph schema</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/graph/schema-overview"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Schema overview</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/graph/create-update-drop-schema"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Create and manage a Spanner Graph schema with DDL</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/graph/create-update-drop-schema-visually"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Create and manage a Spanner Graph schema visually</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/graph/best-practices-designing-schema"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Best practices for designing a schema</span></a></li><li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Use SQL views to create a property graph</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/graph/graph-with-views-overview"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Overview of graphs created from SQL views</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/graph/graph-with-views-how-to"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Create a graph from SQL views</span></a></li></ul></div></li></ul></div></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/graph/insert-update-delete-data"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Manage Spanner Graph data</span></a></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Spanner Graph queries</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/graph/queries-overview"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Queries overview</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/graph/work-with-paths"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Work with paths</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/graph/best-practices-tuning-queries"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Best practices for tuning queries</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/graph/full-text-search-and-graph"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Use full-text search with Spanner Graph</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/graph/perform-vector-similarity-search"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Use vector search with Spanner Graph</span></a></li></ul></div></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Spanner Graph algorithms</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/graph/graph-algorithms-overview"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Graph algorithms overview</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/graph/run-algorithms"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Run algorithms</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/graph/algorithm-schema-requirements-and-feature-compatibility"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Algorithm schema requirements and feature compatibility</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/graph/algorithms"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Algorithms catalog</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/graph/algorithm-best-practices"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Best practices for running algorithms on Spanner Graph</span></a></li></ul></div></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Spanner Graph visualizations</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/graph/work-with-visualizations"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Use Spanner Graph visualizations</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/graph/visualization-integrations"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Work with Spanner Graph visualization integrations</span></a></li></ul></div></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/graph/manage-schemaless-data"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Manage schemaless data with Spanner Graph</span></a></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/graph/reverse-etl"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Load BigQuery data into Spanner Graph</span></a></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/graph/migrate"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Migrate to Spanner Graph</span></a></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/graph/opencypher-reference"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Spanner Graph reference for openCypher users</span></a></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/graph/troubleshoot"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Troubleshoot Spanner Graph</span></a></li>

  <li class="devsite-nav-item
           devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path">
        <span class="devsite-nav-text" tooltip>Monitor</span>
      </div></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Capture telemetry signals</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/signal-capture-overview"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Signal capture overview</span></a></li><li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Trace collection</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/tracing-overview"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Trace collection overview</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/set-up-tracing"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Set up trace collection using OpenTelemetry</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/spanner/docs/use-database-insights-mcp"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Monitor Spanner using the Database insights MCP server</span></a></li><li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Metrics</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/metrics"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Metrics list</span></a></li><li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Client-side metric collection</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/view-manage-client-side-metrics"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>View and manage client-side metrics</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/client-side-metrics-descriptions"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Client-side metrics description</span></a></li></ul></div></li><li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Custom client-side metric collection</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/capture-custom-metrics-opentelemetry"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Capture custom client-side metrics using OpenTelemetry</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/capture-custom-metrics-opencensus"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Capture custom client-side metrics using OpenCensus</span></a></li></ul></div></li></ul></div></li><li class="devsite-nav-item"><a href="/spanner/docs/audit-logging"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Audit logs</span></a></li></ul></div></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Monitor instances</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/monitoring-console"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Monitor instance performance using insights</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/monitoring-cloud"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Monitor instances using Cloud Monitoring</span></a></li></ul></div></li>

  <li class="devsite-nav-item
           devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path">
        <span class="devsite-nav-text" tooltip>Optimize and troubleshoot</span>
      </div></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Optimize Spanner performance</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/performance"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Performance overview</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/using-query-insights"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Analyze query performance</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/monitor-active-queries"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Monitor active queries</span></a></li><li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Query optimizer</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/query-optimizer/overview"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Query optimizer overview</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/query-optimizer/versions"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Query optimizer versions</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/query-optimizer/version-statistics"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>List query optimizer versions</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/query-optimizer/manage-query-optimizer"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Manage the query optimizer</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/spanner/docs/query-execution-plans"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Query execution plans</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/tune-query-with-visualizer"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Tune a query using the query plan visualizer</span></a></li><li class="devsite-nav-item
           devsite-nav-expandable
           devsite-nav-preview"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Accelerate analytical queries using the columnar engine</span><span class="devsite-nav-icon material-icons"
        data-icon="preview"
        data-title="Preview"
        aria-hidden="true"></span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/columnar-engine"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Spanner columnar engine overview</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/configure-columnar-engine"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Configure Spanner columnar engine</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/query-columnar-data"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Query columnar data</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/monitor-columnar-engine"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Monitor columnar engine</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/spanner/docs/find-hotspots-in-database"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Find hotspots in your database</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/index-advisor"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Use the index advisor</span></a></li></ul></div></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Manage split points for anticipated traffic increase</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/pre-splitting-overview"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Pre-splitting overview</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/create-manage-split-points"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Create and manage split points</span></a></li></ul></div></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/manual-data-compaction"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Manually trigger major compaction in a Spanner database</span></a></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Analyze usage patterns with Key Visualizer</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/key-visualizer"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Key Visualizer overview</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/key-visualizer/getting-started"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Access Key Visualizer</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/key-visualizer/exploring-heatmaps"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Explore Key Visualizer heatmaps</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/key-visualizer/patterns"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Key Visualizer heatmap patterns</span></a></li></ul></div></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Troubleshoot latency</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/latency-points"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Latency points in a Spanner request</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/identify-latency-point"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Identify where latency occurs</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/latency-metrics"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Use metrics to diagnose latency</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/audit-logging-request-latency-guide"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Calculate streaming and partition request latency</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/use-lock-and-transaction-insights"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Identify transactions that cause high latencies</span></a></li></ul></div></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Troubleshoot issues using built-in statistics tables</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/introspection"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Built-in statistics tables overview</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/introspection/active-partitioned-dmls"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Active partitioned DMLs statistics</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/introspection/column-operations-statistics"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Columns operations statistics</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/introspection/lock-statistics"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Lock statistics</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/introspection/oldest-active-queries"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Oldest active queries statistics</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/introspection/query-statistics"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Query statistics</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/introspection/read-statistics"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Read statistics</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/introspection/hot-split-statistics"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Split statistics</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/introspection/table-operations-statistics"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Table operations statistics</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/introspection/table-sizes-statistics"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Table sizes statistics</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/introspection/transaction-statistics"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Transaction statistics</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/introspection/vector-index-statistics"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Vector index statistics</span></a></li></ul></div></li>

  <li class="devsite-nav-item
           devsite-nav-expandable"><div class="devsite-expandable-nav">
      <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button">
        <span class="devsite-nav-text" tooltip>Troubleshoot instance utilization</span>
      </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/spanner/docs/cpu-utilization"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>CPU utilization overview</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/introspection/investigate-cpu-utilization"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Troubleshoot high CPU utilization</span></a></li><li class="devsite-nav-item"><a href="/spanner/docs/storage-utilization"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Storage utilization</span></a></li></ul></div></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/troubleshooting-performance-regressions"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Troubleshoot performance regressions</span></a></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/monitor-troubleshoot-with-ai"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Monitor and troubleshoot with Gemini assistance</span></a></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/org-policy-violations"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Troubleshoot CMEK org policy violations</span></a></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/introspection/troubleshooting-with-tags"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Troubleshoot with request tags and transaction tags</span></a></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/deadline-exceeded"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Troubleshoot deadline exceeded errors</span></a></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/ml-troubleshoot"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Troubleshoot Agent Platform integration errors</span></a></li>

  <li class="devsite-nav-item"><a href="/spanner/docs/error-codes"
        class="devsite-nav-title"
      ><span class="devsite-nav-text" tooltip>Error codes</span></a></li>
          </ul>
        
        
          
    
      
      <ul class="devsite-nav-list" menu="Documentation"
          aria-label="Side menu" hidden>
        
          
            
              
<li class="devsite-nav-item devsite-nav-heading">

  
  <span
    
       class="devsite-nav-title"
       tooltip
    
    >
  
    <span class="devsite-nav-text" tooltip >
      Get Started
   </span>
    
  
  </span>
  

</li>

            
            
          
            
            
              
<li class="devsite-nav-item">

  
  <a href="/docs/get-started"
    
       class="devsite-nav-title gc-analytics-event
              
              "
    

    
     data-category="Site-Wide Custom Events"
     data-label="Responsive Tab: Get Started with Google Cloud"
     track-type="navMenu"
     track-metadata-eventDetail="globalMenu"
     track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip >
      Get Started with Google Cloud
   </span>
    
  
  </a>
  

</li>

            
              
<li class="devsite-nav-item">

  
  <a href="/docs/product-list"
    
       class="devsite-nav-title gc-analytics-event
              
              "
    

    
     data-category="Site-Wide Custom Events"
     data-label="Responsive Tab: Product List"
     track-type="navMenu"
     track-metadata-eventDetail="globalMenu"
     track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip >
      Product List
   </span>
    
  
  </a>
  

</li>

            
              
<li class="devsite-nav-item">

  
  <a href="/support/docs"
    
       class="devsite-nav-title gc-analytics-event
              
              "
    

    
     data-category="Site-Wide Custom Events"
     data-label="Responsive Tab: Cloud Customer Care"
     track-type="navMenu"
     track-metadata-eventDetail="globalMenu"
     track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip >
      Cloud Customer Care
   </span>
    
  
  </a>
  

</li>

            
          
        
          
            
              
<li class="devsite-nav-item devsite-nav-heading">

  
  <span
    
       class="devsite-nav-title"
       tooltip
    
    >
  
    <span class="devsite-nav-text" tooltip >
      Featured Products
   </span>
    
  
  </span>
  

</li>

            
            
          
            
            
              
<li class="devsite-nav-item">

  
  <a href="/products/gemini-enterprise-agent-platform"
    
       class="devsite-nav-title gc-analytics-event
              
              "
    

    
     data-category="Site-Wide Custom Events"
     data-label="Responsive Tab: Agent Platform"
     track-type="navMenu"
     track-metadata-eventDetail="globalMenu"
     track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip >
      Agent Platform
   </span>
    
  
  </a>
  

</li>

            
              
<li class="devsite-nav-item">

  
  <a href="/apigee"
    
       class="devsite-nav-title gc-analytics-event
              
              "
    

    
     data-category="Site-Wide Custom Events"
     data-label="Responsive Tab: Apigee API Management"
     track-type="navMenu"
     track-metadata-eventDetail="globalMenu"
     track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip >
      Apigee API Management
   </span>
    
  
  </a>
  

</li>

            
              
<li class="devsite-nav-item">

  
  <a href="/bigquery"
    
       class="devsite-nav-title gc-analytics-event
              
              "
    

    
     data-category="Site-Wide Custom Events"
     data-label="Responsive Tab: BigQuery"
     track-type="navMenu"
     track-metadata-eventDetail="globalMenu"
     track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip >
      BigQuery
   </span>
    
  
  </a>
  

</li>

            
              
<li class="devsite-nav-item">

  
  <a href="/products/compute"
    
       class="devsite-nav-title gc-analytics-event
              
              "
    

    
     data-category="Site-Wide Custom Events"
     data-label="Responsive Tab: Compute Engine"
     track-type="navMenu"
     track-metadata-eventDetail="globalMenu"
     track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip >
      Compute Engine
   </span>
    
  
  </a>
  

</li>

            
              
<li class="devsite-nav-item">

  
  <a href="/cdn"
    
       class="devsite-nav-title gc-analytics-event
              
              "
    

    
     data-category="Site-Wide Custom Events"
     data-label="Responsive Tab: Cloud CDN"
     track-type="navMenu"
     track-metadata-eventDetail="globalMenu"
     track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip >
      Cloud CDN
   </span>
    
  
  </a>
  

</li>

            
              
<li class="devsite-nav-item">

  
  <a href="/run"
    
       class="devsite-nav-title gc-analytics-event
              
              "
    

    
     data-category="Site-Wide Custom Events"
     data-label="Responsive Tab: Cloud Run"
     track-type="navMenu"
     track-metadata-eventDetail="globalMenu"
     track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip >
      Cloud Run
   </span>
    
  
  </a>
  

</li>

            
              
<li class="devsite-nav-item">

  
  <a href="/storage"
    
       class="devsite-nav-title gc-analytics-event
              
              "
    

    
     data-category="Site-Wide Custom Events"
     data-label="Responsive Tab: Cloud Storage"
     track-type="navMenu"
     track-metadata-eventDetail="globalMenu"
     track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip >
      Cloud Storage
   </span>
    
  
  </a>
  

</li>

            
              
<li class="devsite-nav-item">

  
  <a href="/sql"
    
       class="devsite-nav-title gc-analytics-event
              
              "
    

    
     data-category="Site-Wide Custom Events"
     data-label="Responsive Tab: Cloud SQL"
     track-type="navMenu"
     track-metadata-eventDetail="globalMenu"
     track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip >
      Cloud SQL
   </span>
    
  
  </a>
  

</li>

            
              
<li class="devsite-nav-item">

  
  <a href="/gemini/enterprise/docs"
    
       class="devsite-nav-title gc-analytics-event
              
              "
    

    
     data-category="Site-Wide Custom Events"
     data-label="Responsive Tab: Gemini Enterprise"
     track-type="navMenu"
     track-metadata-eventDetail="globalMenu"
     track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip >
      Gemini Enterprise
   </span>
    
  
  </a>
  

</li>

            
              
<li class="devsite-nav-item">

  
  <a href="/kubernetes-engine"
    
       class="devsite-nav-title gc-analytics-event
              
              "
    

    
     data-category="Site-Wide Custom Events"
     data-label="Responsive Tab: Google Kubernetes Engine"
     track-type="navMenu"
     track-metadata-eventDetail="globalMenu"
     track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip >
      Google Kubernetes Engine
   </span>
    
  
  </a>
  

</li>

            
              
<li class="devsite-nav-item">

  
  <a href="/looker"
    
       class="devsite-nav-title gc-analytics-event
              
              "
    

    
     data-category="Site-Wide Custom Events"
     data-label="Responsive Tab: Looker"
     track-type="navMenu"
     track-metadata-eventDetail="globalMenu"
     track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip >
      Looker
   </span>
    
  
  </a>
  

</li>

            
          
        
          
            
              
<li class="devsite-nav-item devsite-nav-heading">

  
  <span
    
       class="devsite-nav-title"
       tooltip
    
    >
  
    <span class="devsite-nav-text" tooltip >
      Cross-product Tools
   </span>
    
  
  </span>
  

</li>

            
            
          
            
            
              
<li class="devsite-nav-item">

  
  <a href="/docs/access-resources"
    
       class="devsite-nav-title gc-analytics-event
              
              "
    

    
     data-category="Site-Wide Custom Events"
     data-label="Responsive Tab: Access and resources management"
     track-type="navMenu"
     track-metadata-eventDetail="globalMenu"
     track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip >
      Access and resources management
   </span>
    
  
  </a>
  

</li>

            
              
<li class="devsite-nav-item">

  
  <a href="/docs/costs-usage"
    
       class="devsite-nav-title gc-analytics-event
              
              "
    

    
     data-category="Site-Wide Custom Events"
     data-label="Responsive Tab: Costs and usage management"
     track-type="navMenu"
     track-metadata-eventDetail="globalMenu"
     track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip >
      Costs and usage management
   </span>
    
  
  </a>
  

</li>

            
              
<li class="devsite-nav-item">

  
  <a href="/docs/iac"
    
       class="devsite-nav-title gc-analytics-event
              
              "
    

    
     data-category="Site-Wide Custom Events"
     data-label="Responsive Tab: Infrastructure as code"
     track-type="navMenu"
     track-metadata-eventDetail="globalMenu"
     track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip >
      Infrastructure as code
   </span>
    
  
  </a>
  

</li>

            
              
<li class="devsite-nav-item">

  
  <a href="/docs/devtools"
    
       class="devsite-nav-title gc-analytics-event
              
              "
    

    
     data-category="Site-Wide Custom Events"
     data-label="Responsive Tab: SDK, languages, frameworks, and tools"
     track-type="navMenu"
     track-metadata-eventDetail="globalMenu"
     track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip >
      SDK, languages, frameworks, and tools
   </span>
    
  
  </a>
  

</li>

            
          
        
          
            
              
<li class="devsite-nav-item devsite-nav-heading">

  
  <span
    
       class="devsite-nav-title"
       tooltip
    
    >
  
    <span class="devsite-nav-text" tooltip >
      Technology Areas
   </span>
    
  
  </span>
  

</li>

            
            
          
            
            
              
<li class="devsite-nav-item">

  
  <a href="/docs/ai-ml"
    
       class="devsite-nav-title gc-analytics-event
              
              "
    

    
     data-category="Site-Wide Custom Events"
     data-label="Responsive Tab: AI and ML"
     track-type="navMenu"
     track-metadata-eventDetail="globalMenu"
     track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip >
      AI and ML
   </span>
    
  
  </a>
  

</li>

            
              
<li class="devsite-nav-item">

  
  <a href="/docs/application-development"
    
       class="devsite-nav-title gc-analytics-event
              
              "
    

    
     data-category="Site-Wide Custom Events"
     data-label="Responsive Tab: Application development"
     track-type="navMenu"
     track-metadata-eventDetail="globalMenu"
     track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip >
      Application development
   </span>
    
  
  </a>
  

</li>

            
              
<li class="devsite-nav-item">

  
  <a href="/docs/application-hosting"
    
       class="devsite-nav-title gc-analytics-event
              
              "
    

    
     data-category="Site-Wide Custom Events"
     data-label="Responsive Tab: Application hosting"
     track-type="navMenu"
     track-metadata-eventDetail="globalMenu"
     track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip >
      Application hosting
   </span>
    
  
  </a>
  

</li>

            
              
<li class="devsite-nav-item">

  
  <a href="/docs/compute-area"
    
       class="devsite-nav-title gc-analytics-event
              
              "
    

    
     data-category="Site-Wide Custom Events"
     data-label="Responsive Tab: Compute"
     track-type="navMenu"
     track-metadata-eventDetail="globalMenu"
     track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip >
      Compute
   </span>
    
  
  </a>
  

</li>

            
              
<li class="devsite-nav-item">

  
  <a href="/docs/data"
    
       class="devsite-nav-title gc-analytics-event
              
              "
    

    
     data-category="Site-Wide Custom Events"
     data-label="Responsive Tab: Data analytics and pipelines"
     track-type="navMenu"
     track-metadata-eventDetail="globalMenu"
     track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip >
      Data analytics and pipelines
   </span>
    
  
  </a>
  

</li>

            
              
<li class="devsite-nav-item">

  
  <a href="/docs/databases"
    
       class="devsite-nav-title gc-analytics-event
              
              "
    

    
     data-category="Site-Wide Custom Events"
     data-label="Responsive Tab: Databases"
     track-type="navMenu"
     track-metadata-eventDetail="globalMenu"
     track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip >
      Databases
   </span>
    
  
  </a>
  

</li>

            
              
<li class="devsite-nav-item">

  
  <a href="/docs/dhm-cloud"
    
       class="devsite-nav-title gc-analytics-event
              
              "
    

    
     data-category="Site-Wide Custom Events"
     data-label="Responsive Tab: Distributed, hybrid, and multicloud"
     track-type="navMenu"
     track-metadata-eventDetail="globalMenu"
     track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip >
      Distributed, hybrid, and multicloud
   </span>
    
  
  </a>
  

</li>

            
              
<li class="devsite-nav-item">

  
  <a href="/docs/industry"
    
       class="devsite-nav-title gc-analytics-event
              
              "
    

    
     data-category="Site-Wide Custom Events"
     data-label="Responsive Tab: Industry solutions"
     track-type="navMenu"
     track-metadata-eventDetail="globalMenu"
     track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip >
      Industry solutions
   </span>
    
  
  </a>
  

</li>

            
              
<li class="devsite-nav-item">

  
  <a href="/docs/migration"
    
       class="devsite-nav-title gc-analytics-event
              
              "
    

    
     data-category="Site-Wide Custom Events"
     data-label="Responsive Tab: Migration"
     track-type="navMenu"
     track-metadata-eventDetail="globalMenu"
     track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip >
      Migration
   </span>
    
  
  </a>
  

</li>

            
              
<li class="devsite-nav-item">

  
  <a href="/docs/networking"
    
       class="devsite-nav-title gc-analytics-event
              
              "
    

    
     data-category="Site-Wide Custom Events"
     data-label="Responsive Tab: Networking"
     track-type="navMenu"
     track-metadata-eventDetail="globalMenu"
     track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip >
      Networking
   </span>
    
  
  </a>
  

</li>

            
              
<li class="devsite-nav-item">

  
  <a href="/docs/observability"
    
       class="devsite-nav-title gc-analytics-event
              
              "
    

    
     data-category="Site-Wide Custom Events"
     data-label="Responsive Tab: Observability and monitoring"
     track-type="navMenu"
     track-metadata-eventDetail="globalMenu"
     track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip >
      Observability and monitoring
   </span>
    
  
  </a>
  

</li>

            
              
<li class="devsite-nav-item">

  
  <a href="/docs/security"
    
       class="devsite-nav-title gc-analytics-event
              
              "
    

    
     data-category="Site-Wide Custom Events"
     data-label="Responsive Tab: Security"
     track-type="navMenu"
     track-metadata-eventDetail="globalMenu"
     track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip >
      Security
   </span>
    
  
  </a>
  

</li>

            
              
<li class="devsite-nav-item">

  
  <a href="/docs/storage"
    
       class="devsite-nav-title gc-analytics-event
              
              "
    

    
     data-category="Site-Wide Custom Events"
     data-label="Responsive Tab: Storage"
     track-type="navMenu"
     track-metadata-eventDetail="globalMenu"
     track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip >
      Storage
   </span>
    
  
  </a>
  

</li>

            
          
        
      </ul>
    
  
        
        
          
    
  
    
  
    
  
    
  
    
  
    
  
        
      </div>
    
  </div>
</nav>
          
        </devsite-book-nav>
      
      <section id="gc-wrapper">
        <main role="main" id="main-content" class="devsite-main-content"
            
              has-book-nav
              has-sidebar
            >
          <div class="devsite-sidebar">
            <div class="devsite-sidebar-content">
                
                <devsite-toc class="devsite-nav"
                            role="navigation"
                            aria-label="On this page"
                            depth="2"
                            scrollbars
                            data-nosnippet
                  ></devsite-toc>
                <devsite-recommendations-sidebar class="nocontent devsite-nav" data-nosnippet>
                </devsite-recommendations-sidebar>
            </div>
          </div>
          <devsite-content>
            
              










<article class="devsite-article">
  
  
  
  
  

  <div class="devsite-article-meta nocontent" role="navigation" data-nosnippet>
    
    
    <ul class="devsite-breadcrumb-list"
  
    aria-label="Breadcrumb">
  
  <li class="devsite-breadcrumb-item
             ">
    
    
    
      
        
  <a href="https://docs.cloud.google.com/"
      
        class="devsite-breadcrumb-link gc-analytics-event"
      
        data-category="Site-Wide Custom Events"
      
        data-label="Breadcrumbs"
      
        data-value="1"
      
        track-type="globalNav"
      
        track-name="breadcrumb"
      
        track-metadata-position="1"
      
        track-metadata-eventdetail="Google Cloud Documentation"
      
    >
    
          Home
        
  </a>
  
      
    
  </li>
  
  <li class="devsite-breadcrumb-item
             ">
    
      
      <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div>
    
    
    
      
        
  <a href="https://docs.cloud.google.com/docs"
      
        class="devsite-breadcrumb-link gc-analytics-event"
      
        data-category="Site-Wide Custom Events"
      
        data-label="Breadcrumbs"
      
        data-value="2"
      
        track-type="globalNav"
      
        track-name="breadcrumb"
      
        track-metadata-position="2"
      
        track-metadata-eventdetail="Documentation"
      
    >
    
          Documentation
        
  </a>
  
      
    
  </li>
  
  <li class="devsite-breadcrumb-item
             ">
    
      
      <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div>
    
    
    
      
        
  <a href="https://docs.cloud.google.com/docs/databases"
      
        class="devsite-breadcrumb-link gc-analytics-event"
      
        data-category="Site-Wide Custom Events"
      
        data-label="Breadcrumbs"
      
        data-value="3"
      
        track-type="globalNav"
      
        track-name="breadcrumb"
      
        track-metadata-position="3"
      
        track-metadata-eventdetail="Databases"
      
    >
    
          Databases
        
  </a>
  
      
    
  </li>
  
  <li class="devsite-breadcrumb-item
             ">
    
      
      <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div>
    
    
    
      
        
  <a href="https://docs.cloud.google.com/spanner/docs"
      
        class="devsite-breadcrumb-link gc-analytics-event"
      
        data-category="Site-Wide Custom Events"
      
        data-label="Breadcrumbs"
      
        data-value="4"
      
        track-type="globalNav"
      
        track-name="breadcrumb"
      
        track-metadata-position="4"
      
        track-metadata-eventdetail="Spanner"
      
    >
    
          Spanner
        
  </a>
  
      
    
  </li>
  
  <li class="devsite-breadcrumb-item
             ">
    
      
      <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div>
    
    
    
      
        
  <a href="https://docs.cloud.google.com/spanner/docs/create-query-database-console"
      
        class="devsite-breadcrumb-link gc-analytics-event"
      
        data-category="Site-Wide Custom Events"
      
        data-label="Breadcrumbs"
      
        data-value="5"
      
        track-type="globalNav"
      
        track-name="breadcrumb"
      
        track-metadata-position="5"
      
        track-metadata-eventdetail=""
      
    >
    
          Guides
        
  </a>
  
      
    
  </li>
  
</ul>
    
      
    <devsite-thumb-rating position="header">
    </devsite-thumb-rating>
  
    
  </div>
  
    <devsite-feedback
  position="header"
  project-name="Spanner"
  product-id="720192"
  bucket="documentation"
  context="Spanner docs feedback link"
  version="t-devsite-webserver-20260908-r00-rc00.480264207338033273"
  data-label="Send Feedback Button"
  track-type="feedback"
  track-name="sendFeedbackLink"
  track-metadata-position="header"
  class="nocontent"
  data-nosnippet
  
  
    project-feedback-url="https://issuetracker.google.com/issues/new?component=190851"
  
  
    
      project-icon="https://docs.cloud.google.com/_static/clouddocs/images/icons/products/spanner-color.svg"
    
  
  
    project-support-url="https://docs.cloud.google.com/spanner/docs/support"
  
  
  >

  <button>
  
    
    Send feedback
  
  </button>
</devsite-feedback>
  
    <h1 class="devsite-page-title" tabindex="-1">
      Compare DML and Mutations<devsite-actions hidden data-nosnippet><devsite-feature-tooltip
      ack-key="AckCollectionsBookmarkTooltipDismiss"
      analytics-category="Site-Wide Custom Events"
      analytics-action-show="Callout Profile displayed"
      analytics-action-close="Callout Profile dismissed"
      analytics-label="Create Collection Callout"
      class="devsite-page-bookmark-tooltip nocontent"
      data-nosnippet
      dismiss-button="true"
      id="devsite-collections-dropdown"
      
      dismiss-button-text="Dismiss"

      
      close-button-text="Got it">

    
    
      <devsite-bookmark></devsite-bookmark>
    

    <span slot="popout-heading">
      
      Stay organized with collections
    </span>
    <span slot="popout-contents">
      
      Save and categorize content based on your preferences.
    </span>
  </devsite-feature-tooltip>
    <devsite-llm-tools></devsite-llm-tools></devsite-actions>
  
      
    </h1>
  

  <devsite-toc class="devsite-nav"
    depth="2"
    devsite-toc-embedded
    >
  </devsite-toc>
  
    
  <div class="devsite-article-body clearfix
  ">

  
    
    
    


<p>








 Data Manipulation
Language (DML) and Mutations are two APIs in Spanner that you can use
to modify data. Each offer similar data manipulation features. This page
compares both approaches.</p>

<h2 id="what_is_data_manipulation_language_dml" data-text="What is Data Manipulation Language (DML)?" tabindex="-1">What is Data Manipulation Language (DML)?</h2>

<p>The Data Manipulation Language (DML) in Spanner lets you
manipulate data in your database tables using <code translate="no" dir="ltr">INSERT</code>, <code translate="no" dir="ltr">UPDATE</code>, and <code translate="no" dir="ltr">DELETE</code>
statements. You can run DML statements using the
<a href="/spanner/docs/reference/libraries">client libraries</a>, the
<a href="/spanner/docs/create-query-database-console#run_a_query">Google Cloud console</a>, and <a href="/sdk/gcloud/reference/spanner#execute_sql_statements">gcloud spanner</a>.</p>

<p>Spanner offers the following two implementations of DML execution, each with different
properties.</p>

<ul>
<li><p><strong>Standard DML</strong> - suitable for standard <a href="https://en.wikipedia.org/wiki/Online_transaction_processing">Online Transaction Processing (OLTP)</a>
workloads.</p>

<p>For more information, including code samples, see <a href="/spanner/docs/dml-tasks#using-dml">Using DML</a></p></li>
<li><p><strong>Partitioned DML</strong> - designed for bulk updates and deletes as in the following
examples.</p>

<ul>
<li><p>Periodic cleanup and garbage collection. Examples are deleting old rows or
setting columns to NULL.</p></li>
<li><p>Backfilling new columns with default values. An example is using an UPDATE
statement to set a new column&#39;s value to False where it is NULL.</p></li>
</ul>

<p>For more information, including code samples, see <a href="/spanner/docs/dml-tasks#partitioned-dml">Using Partitioned DML</a>.</p>

<p>You can use batch writes for a large number of write operations without read
 operations that don&#39;t require atomic transactions. For more information,
 see <a href="/spanner/docs/batch-write">Modify data using batch writes</a>.</p></li>
</ul>

<h2 id="mutations-concept" data-text="What are mutations?" tabindex="-1">What are mutations?</h2>

<p>A mutation represents a sequence of inserts, updates, and deletes that Spanner applies atomically to different rows and tables in a database.
You can include operations that apply to different rows, or different tables, in
a mutation. After you define one or more mutations that contain one or more
writes, you must apply the mutation to commit the write(s). Each change is
applied in the order in which they were added to the mutation.</p>

<p>For more information, including code samples, see
<a href="/spanner/docs/modify-mutation-api">Inserting, updating, and deleting data using mutations</a>.</p>

<h2 id="feature_comparison_between_dml_and_mutations" data-text="Feature comparison between DML and mutations" tabindex="-1">Feature comparison between DML and mutations</h2>

<p>The following table summarizes DML and mutation support of common database
operation and features.</p>

<table>
<thead>
<tr>
<th>Operations</th>
<th style="text-align: center">DML</th>
<th style="text-align: center">Mutations</th>
</tr>
</thead>

<tbody>
<tr>
<td>Insert Data</td>
<td style="text-align: center">Supported</td>
<td style="text-align: center">Supported</td>
</tr>
<tr>
<td>Delete Data</td>
<td style="text-align: center">Supported</td>
<td style="text-align: center">Supported</td>
</tr>
<tr>
<td>Update Data</td>
<td style="text-align: center">Supported</td>
<td style="text-align: center">Supported</td>
</tr>
<tr>
<td>Insert or Ignore Data</td>
<td style="text-align: center">Supported</td>
<td style="text-align: center">Unsupported</td>
</tr>
<tr>
<td>Read Your Writes (RYW)</td>
<td style="text-align: center">Supported</td>
<td style="text-align: center">Unsupported</td>
</tr>
<tr>
<td>Insert or Update Data (Upsert)</td>
<td style="text-align: center">Supported</td>
<td style="text-align: center">Supported</td>
</tr>
<tr>
<td>SQL Syntax</td>
<td style="text-align: center">Supported</td>
<td style="text-align: center">Unsupported</td>
</tr>
<tr>
<td>Constraint checking</td>
<td style="text-align: center">After every statement</td>
<td style="text-align: center">At commit time</td>
</tr>
<tr>
<td>Mutation limit enforcement (including indexes)</td>
<td style="text-align: center">Per statement (resets after execution)</td>
<td style="text-align: center">Per commit (cumulative)</td>
</tr>
</tbody>
</table>

<p>DML and mutations diverge in their support for the following features:</p>

<ul>
<li><p><strong>Read Your Writes</strong>: Reading uncommitted results within an active
transaction. Changes you make using DML statements are visible to
subsequent statements in the same transaction. This is
different from using mutations, where changes are not visible in any reads
(including reads done in the same transaction) until the transaction commits.
This is because mutations in a transaction are buffered client-side (locally)
and sent to the server as part of the commit operation. As a result, mutations
in the commit request are not visible to SQL or DML statements within the same
transaction.</p></li>
<li><p><strong>Constraint Checking</strong>: Spanner checks constraints after every
DML statement. This is different from using mutations, where Spanner
buffers mutations in the client until commit and checks constraints at commit
time. Evaluating constraints after each DML statement allows Spanner
to guarantee that the data returned by a subsequent query in the same
transaction returns data that is consistent with the schema.</p></li>
<li><p><strong>Mutation Limit Enforcement</strong>: For DML, the mutation limit of 80,000 (including indexes) is applied per statement and resets after the statement executes. This allows a single transaction to execute multiple DML statements that collectively exceed 80,000 mutations, as long as no single statement exceeds the limit. For the Mutation API, which can only be used as part of the commit operation, the limit of 80,000 mutations (including indexes) is cumulative across all mutations in the commit. Both methods are subject to the 100 MiB transaction size limit.</p></li>
<li><p><strong>SQL Syntax</strong>: DML provides a conventional way to manipulate data. You can
reuse SQL skills to alter the data using the DML API.</p></li>
</ul>

<h2 id="best_practice_-_avoid_mixing_dml_and_mutation_in_the_same_transaction" data-text="Best practice - avoid mixing DML and mutation in the same transaction" tabindex="-1">Best practice - avoid mixing DML and mutation in the same transaction</h2>

<p>If a transaction contains both DML statements and mutations in the commit
request, Spanner executes the DML statements before the mutations. To avoid
having to account for the order of execution in your client library code, you
should use either DML statements or the mutations in a single transaction, but
not both.</p>

<p>The following Java example illustrates potentially surprising behavior. The code
inserts two rows into Albums using the Mutation API. The snippet, then calls
<code translate="no" dir="ltr">executeUpdate()</code> to update the newly inserted rows and calls <code translate="no" dir="ltr">executeQuery()</code>
to read updated albums.</p>
<div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="Java"><code translate="no" dir="ltr"><span class="devsite-syntax-kd">static</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">void</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nf">updateMarketingBudget</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">DatabaseClient</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">dbClient</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-n">dbClient</span>
<span class="devsite-syntax-w">      </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">readWriteTransaction</span><span class="devsite-syntax-p">()</span>
<span class="devsite-syntax-w">      </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">run</span><span class="devsite-syntax-p">(</span>
<span class="devsite-syntax-w">          </span><span class="devsite-syntax-k">new</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">TransactionCallable&lt;Void&gt;</span><span class="devsite-syntax-p">()</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">            </span><span class="devsite-syntax-nd">@Override</span>
<span class="devsite-syntax-w">            </span><span class="devsite-syntax-kd">public</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Void</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nf">run</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">TransactionContext</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">transaction</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kd">throws</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">Exception</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">               </span><span class="devsite-syntax-n">transaction</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">buffer</span><span class="devsite-syntax-p">(</span>
<span class="devsite-syntax-w">                    </span><span class="devsite-syntax-n">Mutation</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">newInsertBuilder</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"Albums"</span><span class="devsite-syntax-p">)</span>
<span class="devsite-syntax-w">                        </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">set</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"SingerId"</span><span class="devsite-syntax-p">)</span>
<span class="devsite-syntax-w">                        </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">to</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-mi">1</span><span class="devsite-syntax-p">)</span>
<span class="devsite-syntax-w">                        </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">set</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"AlbumId"</span><span class="devsite-syntax-p">)</span>
<span class="devsite-syntax-w">                        </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">to</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-mi">1</span><span class="devsite-syntax-p">)</span>
<span class="devsite-syntax-w">                        </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">set</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"AlbumTitle"</span><span class="devsite-syntax-p">)</span>
<span class="devsite-syntax-w">                        </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">to</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"Total Junk"</span><span class="devsite-syntax-p">)</span>
<span class="devsite-syntax-w">                        </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">set</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"MarketingBudget"</span><span class="devsite-syntax-p">)</span>
<span class="devsite-syntax-w">                        </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">to</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-mi">800</span><span class="devsite-syntax-p">)</span>
<span class="devsite-syntax-w">                        </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">build</span><span class="devsite-syntax-p">());</span>
<span class="devsite-syntax-w">               </span><span class="devsite-syntax-n">transaction</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">buffer</span><span class="devsite-syntax-p">(</span>
<span class="devsite-syntax-w">                    </span><span class="devsite-syntax-n">Mutation</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">newInsertBuilder</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"Albums"</span><span class="devsite-syntax-p">)</span>
<span class="devsite-syntax-w">                        </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">set</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"SingerId"</span><span class="devsite-syntax-p">)</span>
<span class="devsite-syntax-w">                        </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">to</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-mi">1</span><span class="devsite-syntax-p">)</span>
<span class="devsite-syntax-w">                        </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">set</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"AlbumId"</span><span class="devsite-syntax-p">)</span>
<span class="devsite-syntax-w">                        </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">to</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-mi">2</span><span class="devsite-syntax-p">)</span>
<span class="devsite-syntax-w">                        </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">set</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"AlbumTitle"</span><span class="devsite-syntax-p">)</span>
<span class="devsite-syntax-w">                        </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">to</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"Go Go Go"</span><span class="devsite-syntax-p">)</span>
<span class="devsite-syntax-w">                        </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">set</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"MarketingBudget"</span><span class="devsite-syntax-p">)</span>
<span class="devsite-syntax-w">                        </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">to</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-mi">200</span><span class="devsite-syntax-p">)</span>
<span class="devsite-syntax-w">                        </span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">build</span><span class="devsite-syntax-p">());</span>

<span class="devsite-syntax-w">                </span><span class="devsite-syntax-c1">// This UPDATE will not include the Albums inserted above.</span>
<span class="devsite-syntax-w">                </span><span class="devsite-syntax-n">String</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">sql</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span>
<span class="devsite-syntax-w">                  </span><span class="devsite-syntax-s">"UPDATE Albums SET MarketingBudget = MarketingBudget * 2"</span>
<span class="devsite-syntax-w">                      </span><span class="devsite-syntax-o">+</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">" WHERE SingerId = 1"</span><span class="devsite-syntax-p">;</span>
<span class="devsite-syntax-w">                </span><span class="devsite-syntax-kt">long</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">rowCount</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">transaction</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">executeUpdate</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">Statement</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">of</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">sql</span><span class="devsite-syntax-p">));</span>
<span class="devsite-syntax-w">                </span><span class="devsite-syntax-n">System</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">out</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">printf</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"%d records updated.\n"</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">rowCount</span><span class="devsite-syntax-p">);</span>

<span class="devsite-syntax-w">                </span><span class="devsite-syntax-c1">// Read a newly updated record.</span>
<span class="devsite-syntax-w">                </span><span class="devsite-syntax-n">sql</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span>
<span class="devsite-syntax-w">                  </span><span class="devsite-syntax-s">"SELECT SingerId, AlbumId, AlbumTitle FROM Albums"</span>
<span class="devsite-syntax-w">                      </span><span class="devsite-syntax-o">+</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s">" WHERE SingerId = 1 AND MarketingBudget &lt; 1000"</span><span class="devsite-syntax-p">;</span>
<span class="devsite-syntax-w">                </span><span class="devsite-syntax-n">ResultSet</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">resultSet</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span>
<span class="devsite-syntax-w">                                 </span><span class="devsite-syntax-n">transaction</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">executeQuery</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">Statement</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">of</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">sql</span><span class="devsite-syntax-p">));</span>
<span class="devsite-syntax-w">                </span><span class="devsite-syntax-k">while</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">resultSet</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">next</span><span class="devsite-syntax-p">())</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">                   </span><span class="devsite-syntax-n">System</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">out</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">printf</span><span class="devsite-syntax-p">(</span>
<span class="devsite-syntax-w">                        </span><span class="devsite-syntax-s">"%s %s\n"</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-w">                        </span><span class="devsite-syntax-n">resultSet</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">getString</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"FirstName"</span><span class="devsite-syntax-p">),</span>
<span class="devsite-syntax-w">                        </span><span class="devsite-syntax-n">resultSet</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-na">getString</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s">"LastName"</span><span class="devsite-syntax-p">));</span>
<span class="devsite-syntax-w">                </span><span class="devsite-syntax-p">}</span>
<span class="devsite-syntax-w">                </span><span class="devsite-syntax-k">return</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">null</span><span class="devsite-syntax-p">;</span>
<span class="devsite-syntax-w">              </span><span class="devsite-syntax-p">}</span>
<span class="devsite-syntax-w">            </span><span class="devsite-syntax-p">});</span>
<span class="devsite-syntax-p">}</span>
</code></pre></devsite-code>
<p>If you were to execute this code, you&#39;d see <em>0 records updated</em>. Why? This
happens because the changes we made using Mutations are not visible to
subsequent statements until the transaction commits. Ideally, we should have
buffered writes only at the very end of the transaction.</p>

<h2 id="whats_next" data-text="What's next?" tabindex="-1">What's next?</h2>

<ul>
<li><p>Learn how to modify data <a href="/spanner/docs/dml-tasks#using-dml">Using DML</a>.</p></li>
<li><p>Learn how to modify data <a href="/spanner/docs/modify-mutation-api">Using mutations</a>.</p></li>
<li><p>To find the mutation count for a transaction, see
<a href="/spanner/docs/commit-statistics">Retrieving commit statistics for a transaction</a>.</p></li>
<li><p>Learn about <a href="/spanner/docs/dml-best-practices">Data Manipulation Language (DML) best practices</a>.</p></li>
</ul>


  

  
    <devsite-hats-survey class="nocontent" data-nosnippet
      hats-id="mwETRvWii0eU5NUYprb0Y9z5GVbc"
      listnr-id="83405"></devsite-hats-survey>
  

  
</div>

  
    
    
      
    <devsite-thumb-rating position="footer">
    </devsite-thumb-rating>
  
       
         <devsite-feedback
  position="footer"
  project-name="Spanner"
  product-id="720192"
  bucket="documentation"
  context="Spanner docs feedback link"
  version="t-devsite-webserver-20260908-r00-rc00.480264207338033273"
  data-label="Send Feedback Button"
  track-type="feedback"
  track-name="sendFeedbackLink"
  track-metadata-position="footer"
  class="nocontent"
  data-nosnippet
  
  
    project-feedback-url="https://issuetracker.google.com/issues/new?component=190851"
  
  
    
      project-icon="https://docs.cloud.google.com/_static/clouddocs/images/icons/products/spanner-color.svg"
    
  
  
    project-support-url="https://docs.cloud.google.com/spanner/docs/support"
  
  
  >

  <button>
  
    
    Send feedback
  
  </button>
</devsite-feedback>
       
    
    
  

  <div class="devsite-floating-action-buttons"></div></article>


<devsite-content-footer class="nocontent" data-nosnippet>
  <p>Except as otherwise noted, the content of this page is licensed under the <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 License</a>, and code samples are licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0 License</a>. For details, see the <a href="https://developers.google.com/site-policies">Google Developers Site Policies</a>. Java is a registered trademark of Oracle and/or its affiliates.</p>
  <p>Last updated 2026-09-09 UTC.</p>
</devsite-content-footer>


<devsite-notification
>
</devsite-notification>


  
<div class="devsite-content-data">
  
    
    
    <template class="devsite-thumb-rating-feedback">
      <devsite-feedback
  position="thumb-rating"
  project-name="Spanner"
  product-id="720192"
  bucket="documentation"
  context="Spanner docs feedback link"
  version="t-devsite-webserver-20260908-r00-rc00.480264207338033273"
  data-label="Send Feedback Button"
  track-type="feedback"
  track-name="sendFeedbackLink"
  track-metadata-position="thumb-rating"
  class="nocontent"
  data-nosnippet
  
  
    project-feedback-url="https://issuetracker.google.com/issues/new?component=190851"
  
  
    
      project-icon="https://docs.cloud.google.com/_static/clouddocs/images/icons/products/spanner-color.svg"
    
  
  
    project-support-url="https://docs.cloud.google.com/spanner/docs/support"
  
  
  >

  <button>
  
    Need to tell us more?
  
  </button>
</devsite-feedback>
    </template>
  
  
    <template class="devsite-content-data-template">
      [[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2026-09-09 UTC."],[],[]]
    </template>
  
</div>
            
          </devsite-content>
        </main>
        <devsite-footer-promos class="devsite-footer">
          
            
          
        </devsite-footer-promos>
        <devsite-footer-linkboxes class="devsite-footer">
          
            
<nav class="devsite-footer-linkboxes nocontent"
     aria-label="Footer links"
     data-nosnippet>
  
  <ul class="devsite-footer-linkboxes-list">
    
    <li class="devsite-footer-linkbox ">
    <h3 class="devsite-footer-linkbox-heading no-link">Products and pricing</h3>
      <ul class="devsite-footer-linkbox-list">
        
        <li class="devsite-footer-linkbox-item">
          
          <a href="//cloud.google.com/products/"
             class="devsite-footer-linkbox-link gc-analytics-event"
             data-category="Site-Wide Custom Events"
            
             data-label="Footer Link (index 1)"
            track-metadata-child_headline="products and pricing"track-name="see all products"track-metadata-position="footer"track-metadata-module="footer"track-type="footer link"track-metadata-eventDetail="cloud.google.com/products/">
            
          
            See all products
          
          </a>
          
          
        </li>
        
        <li class="devsite-footer-linkbox-item">
          
          <a href="//cloud.google.com/pricing/"
             class="devsite-footer-linkbox-link gc-analytics-event"
             data-category="Site-Wide Custom Events"
            
             data-label="Footer Link (index 2)"
            track-type="footer link"track-metadata-eventDetail="cloud.google.com/pricing/"track-name="google cloud pricing"track-metadata-position="footer"track-metadata-module="footer"track-metadata-child_headline="products and pricing">
            
          
            Google Cloud pricing
          
          </a>
          
          
        </li>
        
        <li class="devsite-footer-linkbox-item">
          
          <a href="//cloud.google.com/marketplace/"
             class="devsite-footer-linkbox-link gc-analytics-event"
             data-category="Site-Wide Custom Events"
            
             data-label="Footer Link (index 3)"
            track-metadata-module="footer"track-metadata-child_headline="resources"track-name="google cloud marketplace"track-type="footer link"track-metadata-eventDetail="cloud.google.com/marketplace/"track-metadata-position="footer">
            
          
            Google Cloud Marketplace
          
          </a>
          
          
        </li>
        
        <li class="devsite-footer-linkbox-item">
          
          <a href="//cloud.google.com/contact/"
             class="devsite-footer-linkbox-link gc-analytics-event"
             data-category="Site-Wide Custom Events"
            
             data-label="Footer Link (index 4)"
            track-type="footer link"track-name="contact sales"track-metadata-module="footer"track-metadata-position="footer"track-metadata-child_headline="engage"track-metadata-eventDetail="cloud.google.com/contact/">
            
              
              
            
          
            Contact sales
          
          </a>
          
          
        </li>
        
      </ul>
    </li>
    
    <li class="devsite-footer-linkbox ">
    <h3 class="devsite-footer-linkbox-heading no-link">Support</h3>
      <ul class="devsite-footer-linkbox-list">
        
        <li class="devsite-footer-linkbox-item">
          
          <a href="//discuss.google.dev/c/google-cloud/14/"
             class="devsite-footer-linkbox-link gc-analytics-event"
             data-category="Site-Wide Custom Events"
            
             data-label="Footer Link (index 1)"
            track-metadata-eventDetail="www.googlecloudcommunity.com"track-type="footer link"track-metadata-child_headline="engage"target="_blank"track-name="google cloud community"rel="noopener"track-metadata-module="footer"track-metadata-position="footer">
            
          
            Community forums
          
          </a>
          
          
        </li>
        
        <li class="devsite-footer-linkbox-item">
          
          <a href="//cloud.google.com/support-hub/"
             class="devsite-footer-linkbox-link gc-analytics-event"
             data-category="Site-Wide Custom Events"
            
             data-label="Footer Link (index 2)"
            track-metadata-module="footer"track-metadata-position="footer"track-metadata-child_headline="resources"track-name="support"track-metadata-eventDetail="cloud.google.com/support-hub/"track-type="footer link">
            
          
            Support
          
          </a>
          
          
        </li>
        
        <li class="devsite-footer-linkbox-item">
          
          <a href="//docs.cloud.google.com/release-notes"
             class="devsite-footer-linkbox-link gc-analytics-event"
             data-category="Site-Wide Custom Events"
            
             data-label="Footer Link (index 3)"
            track-name="release notes"track-type="footer link"track-metadata-position="footer"track-metadata-module="footer"track-metadata-eventDetail="cloud.google.com/release-notes/"track-metadata-child_headline="resources">
            
          
            Release Notes
          
          </a>
          
          
        </li>
        
        <li class="devsite-footer-linkbox-item">
          
          <a href="//status.cloud.google.com"
             class="devsite-footer-linkbox-link gc-analytics-event"
             data-category="Site-Wide Custom Events"
            
             data-label="Footer Link (index 4)"
            track-metadata-child_headline="resources"target="_blank"track-metadata-module="footer"track-metadata-eventDetail="status.cloud.google.com"track-metadata-position="footer"track-type="footer link"track-name="system status">
            
              
              
            
          
            System status
          
          </a>
          
          
        </li>
        
      </ul>
    </li>
    
    <li class="devsite-footer-linkbox ">
    <h3 class="devsite-footer-linkbox-heading no-link">Resources</h3>
      <ul class="devsite-footer-linkbox-list">
        
        <li class="devsite-footer-linkbox-item">
          
          <a href="//github.com/googlecloudPlatform/"
             class="devsite-footer-linkbox-link gc-analytics-event"
             data-category="Site-Wide Custom Events"
            
             data-label="Footer Link (index 1)"
            track-name="github"track-metadata-position="footer"track-type="footer link"track-metadata-child_headline="resources"track-metadata-eventDetail="github.com/googlecloudPlatform/"track-metadata-module="footer">
            
          
            GitHub
          
          </a>
          
          
        </li>
        
        <li class="devsite-footer-linkbox-item">
          
          <a href="/docs/get-started/"
             class="devsite-footer-linkbox-link gc-analytics-event"
             data-category="Site-Wide Custom Events"
            
             data-label="Footer Link (index 2)"
            track-metadata-module="footer"track-type="footer link"track-name="google cloud quickstarts"track-metadata-child_headline="resources"track-metadata-eventDetail="cloud.google.com/docs/get-started/"track-metadata-position="footer">
            
          
            Getting Started with Google Cloud
          
          </a>
          
          
        </li>
        
        <li class="devsite-footer-linkbox-item">
          
          <a href="/docs/samples"
             class="devsite-footer-linkbox-link gc-analytics-event"
             data-category="Site-Wide Custom Events"
            
             data-label="Footer Link (index 3)"
            track-metadata-position="footer"track-metadata-eventDetail="cloud.google.com/docs/samples"track-metadata-module="footer"track-metadata-child_headline="resources"track-name="code samples"track-type="footer link">
            
          
            Code samples
          
          </a>
          
          
        </li>
        
        <li class="devsite-footer-linkbox-item">
          
          <a href="/architecture/"
             class="devsite-footer-linkbox-link gc-analytics-event"
             data-category="Site-Wide Custom Events"
            
             data-label="Footer Link (index 4)"
            track-metadata-position="footer"track-metadata-child_headline="resources"track-metadata-eventDetail="cloud.google.com/architecture/"track-type="footer link"track-metadata-module="footer"track-name="cloud architecture center">
            
          
            Cloud Architecture Center
          
          </a>
          
          
        </li>
        
        <li class="devsite-footer-linkbox-item">
          
          <a href="//cloud.google.com/learn/training/"
             class="devsite-footer-linkbox-link gc-analytics-event"
             data-category="Site-Wide Custom Events"
            
             data-label="Footer Link (index 5)"
            track-metadata-eventDetail="cloud.google.com/learn/training/"track-metadata-position="footer"track-name="training"track-metadata-module="footer"track-type="footer link"track-metadata-child_headline="resources">
            
              
              
            
          
            Training and Certification
          
          </a>
          
          
        </li>
        
      </ul>
    </li>
    
    <li class="devsite-footer-linkbox ">
    <h3 class="devsite-footer-linkbox-heading no-link">Engage</h3>
      <ul class="devsite-footer-linkbox-list">
        
        <li class="devsite-footer-linkbox-item">
          
          <a href="//cloud.google.com/blog/"
             class="devsite-footer-linkbox-link gc-analytics-event"
             data-category="Site-Wide Custom Events"
            
             data-label="Footer Link (index 1)"
            track-type="footer link"track-metadata-position="footer"track-name="blog"track-metadata-eventDetail="cloud.google.com/blog/"track-metadata-module="footer"track-metadata-child_headline="engage">
            
          
            Blog
          
          </a>
          
          
        </li>
        
        <li class="devsite-footer-linkbox-item">
          
          <a href="//cloud.google.com/events/"
             class="devsite-footer-linkbox-link gc-analytics-event"
             data-category="Site-Wide Custom Events"
            
             data-label="Footer Link (index 2)"
            track-type="footer link"track-metadata-position="footer"track-name="events"track-metadata-child_headline="engage"track-metadata-module="footer"track-metadata-eventDetail="cloud.google.com/events/">
            
          
            Events
          
          </a>
          
          
        </li>
        
        <li class="devsite-footer-linkbox-item">
          
          <a href="//x.com/googlecloud"
             class="devsite-footer-linkbox-link gc-analytics-event"
             data-category="Site-Wide Custom Events"
            
             data-label="Footer Link (index 3)"
            rel="noopener"track-metadata-child_headline="engage"track-metadata-module="footer"track-metadata-eventDetail="x.com/googlecloud"target="_blank"track-type="footer link"track-metadata-position="footer"track-name="follow on x">
            
          
            X (Twitter)
          
          </a>
          
          
        </li>
        
        <li class="devsite-footer-linkbox-item">
          
          <a href="//www.youtube.com/googlecloud"
             class="devsite-footer-linkbox-link gc-analytics-event"
             data-category="Site-Wide Custom Events"
            
             data-label="Footer Link (index 4)"
            rel="noopener"target="_blank"track-type="footer link"track-metadata-child_headline="engage"track-metadata-position="footer"track-name="google cloud on youtube"track-metadata-eventDetail="www.youtube.com/googlecloud"track-metadata-module="footer">
            
          
            Google Cloud on YouTube
          
          </a>
          
          
        </li>
        
        <li class="devsite-footer-linkbox-item">
          
          <a href="//www.youtube.com/googlecloudplatform"
             class="devsite-footer-linkbox-link gc-analytics-event"
             data-category="Site-Wide Custom Events"
            
             data-label="Footer Link (index 5)"
            track-metadata-position="footer"track-name="google cloud tech on youtube"track-type="footer link"target="_blank"track-metadata-module="footer"rel="noopener"track-metadata-eventDetail="www.youtube.com/googlecloudplatform"track-metadata-child_headline="engage">
            
              
              
            
          
            Google Cloud Tech on YouTube
          
          </a>
          
          
        </li>
        
      </ul>
    </li>
    
  </ul>
  
</nav>
          
        </devsite-footer-linkboxes>
        <devsite-footer-utility class="devsite-footer">
          
            

<div class="devsite-footer-utility nocontent" data-nosnippet>
  
  
  <nav class="devsite-footer-sites" aria-label="Other Google Developers websites">
    <a href="https://developers.google.com/"
       class="devsite-footer-sites-logo-link gc-analytics-event"
       data-category="Site-Wide Custom Events"
       data-label="Footer Google Developers Link">
      <picture>
        
        <source srcset="https://www.gstatic.com/devrel-devsite/prod/veec7311b6c5f99ef32994eb65aab7022195f72bfa4f3d934bdc7556da7fa7c3b/clouddocs/images/lockup-google-for-developers-dark-theme.svg"
                media="(prefers-color-scheme: none)"
                class="devsite-dark-theme">
        
        <img class="devsite-footer-sites-logo"
             src="https://www.gstatic.com/devrel-devsite/prod/veec7311b6c5f99ef32994eb65aab7022195f72bfa4f3d934bdc7556da7fa7c3b/clouddocs/images/lockup-google-for-developers.svg"
             loading="lazy"
             alt="Google Developers">
      </picture>
    </a>
    <ul class="devsite-footer-sites-list">
      
      <li class="devsite-footer-sites-item">
        <a href="https://developer.android.com/"
           class="devsite-footer-sites-link
                  gc-analytics-event"
           data-category="Site-Wide Custom Events"
         
         
           data-label="Footer Android Developers Link"
         >
          Android
        </a>
      </li>
      
      <li class="devsite-footer-sites-item">
        <a href="https://developer.chrome.com/"
           class="devsite-footer-sites-link
                  gc-analytics-event"
           data-category="Site-Wide Custom Events"
         
         
           data-label="Footer Chrome Link"
         >
          Chrome
        </a>
      </li>
      
      <li class="devsite-footer-sites-item">
        <a href="https://firebase.google.com/"
           class="devsite-footer-sites-link
                  gc-analytics-event"
           data-category="Site-Wide Custom Events"
         
         
           data-label="Footer Firebase Link"
         >
          Firebase
        </a>
      </li>
      
      <li class="devsite-footer-sites-item">
        <a href="https://ai.google.com/"
           class="devsite-footer-sites-link
                  gc-analytics-event"
           data-category="Site-Wide Custom Events"
         
         
           data-label="Footer Google AI Link"
         >
          Google AI
        </a>
      </li>
      
    </ul>
  </nav>
  

  
  <nav class="devsite-footer-utility-links" aria-label="Utility links">
    
    <ul class="devsite-footer-utility-list">
      
      <li class="devsite-footer-utility-item
                 ">
        
        
        <a class="devsite-footer-utility-link gc-analytics-event"
           href="//about.google/"
           data-category="Site-Wide Custom Events"
           data-label="Footer About Google link"
         
           track-name="about google"
         
           track-metadata-module="utility footer"
         
           track-type="footer link"
         
           track-metadata-position="footer"
         
           target="_blank"
         
           track-metadata-eventDetail="//about.google/"
         >
          About Google
        </a>
        
      </li>
      
      <li class="devsite-footer-utility-item
                 devsite-footer-privacy-link">
        
        
        <a class="devsite-footer-utility-link gc-analytics-event"
           href="//policies.google.com/privacy"
           data-category="Site-Wide Custom Events"
           data-label="Footer Privacy link"
         
           track-metadata-module="utility footer"
         
           track-type="footer link"
         
           target="_blank"
         
           track-name="privacy"
         
           track-metadata-eventDetail="//policies.google.com/privacy"
         
           track-metadata-position="footer"
         >
          Privacy
        </a>
        
      </li>
      
      <li class="devsite-footer-utility-item
                 ">
        
        
        <a class="devsite-footer-utility-link gc-analytics-event"
           href="//policies.google.com/terms?hl=en"
           data-category="Site-Wide Custom Events"
           data-label="Footer Site terms link"
         
           track-metadata-eventDetail="//www.google.com/intl/en/policies/terms/regional.html"
         
           track-name="site terms"
         
           target="_blank"
         
           track-type="footer link"
         
           track-metadata-module="utility footer"
         
           track-metadata-position="footer"
         >
          Site terms
        </a>
        
      </li>
      
      <li class="devsite-footer-utility-item
                 ">
        
        
        <a class="devsite-footer-utility-link gc-analytics-event"
           href="//cloud.google.com/product-terms"
           data-category="Site-Wide Custom Events"
           data-label="Footer Google Cloud terms link"
         
           track-type="footer link"
         
           track-metadata-module="utility footer"
         
           track-name="google cloud terms"
         
           track-metadata-eventDetail="//cloud.google.com/product-terms"
         
           track-metadata-position="footer"
         >
          Google Cloud terms
        </a>
        
      </li>
      
      <li class="devsite-footer-utility-item
                 glue-cookie-notification-bar-control">
        
        
        <a class="devsite-footer-utility-link gc-analytics-event"
           href="#"
           data-category="Site-Wide Custom Events"
           data-label="Footer Manage cookies link"
         
           track-metadata-module="utility footer"
         
           track-metadata-position="footer"
         
           aria-hidden="true"
         
           track-name="Manage cookies"
         
           track-type="footer link"
         
           track-metadata-eventDetail="#"
         >
          Manage cookies
        </a>
        
      </li>
      
      <li class="devsite-footer-utility-item
                 devsite-footer-carbon-button">
        
        
        <a class="devsite-footer-utility-link gc-analytics-event"
           href="//cloud.google.com/sustainability"
           data-category="Site-Wide Custom Events"
           data-label="Footer Our third decade of climate action: join us link"
         
           track-metadata-position="footer"
         
           track-name="Our third decade of climate action: join us"
         
           track-type="footer link"
         
           track-metadata-eventDetail="/sustainability/"
         
           track-metadata-module="utility footer"
         >
          Our third decade of climate action: join us
        </a>
        
      </li>
      
      <li class="devsite-footer-utility-item
                 devsite-footer-utility-button">
        
        <span class="devsite-footer-utility-description">Sign up for the Google Cloud newsletter</span>
        
        
        <a class="devsite-footer-utility-link gc-analytics-event"
           href="//cloud.google.com/newsletter/"
           data-category="Site-Wide Custom Events"
           data-label="Footer Subscribe link"
         
           track-metadata-position="footer"
         
           track-metadata-module="utility footer"
         
           track-metadata-eventDetail="/newsletter/"
         
           track-type="footer link"
         
           track-name="subscribe"
         >
          Subscribe
        </a>
        
      </li>
      
    </ul>
    
    
<devsite-language-selector>
  <ul role="presentation">
    
    
    <li role="presentation">
      <a role="menuitem" lang="en"
        >English</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="de"
        >Deutsch</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="es"
        >Español</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="es_419"
        >Español – América Latina</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="fr"
        >Français</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="id"
        >Indonesia</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="it"
        >Italiano</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="pt"
        >Português</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="pt_br"
        >Português – Brasil</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="he"
        >עברית</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="zh_cn"
        >中文 – 简体</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="zh_tw"
        >中文 – 繁體</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="ja"
        >日本語</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="ko"
        >한국어</a>
    </li>
    
  </ul>
</devsite-language-selector>

  </nav>
</div>
          
        </devsite-footer-utility>
        <devsite-panel>
          
        </devsite-panel>
        
      </section>
      </section>
    <devsite-sitemask></devsite-sitemask>
    <devsite-snackbar></devsite-snackbar>
    <devsite-tooltip ></devsite-tooltip>
    <devsite-heading-link></devsite-heading-link>
    <devsite-analytics>
      
        <script type="application/json" analytics>[]</script>
<script type="application/json" tag-management>{&#34;at&#34;: &#34;True&#34;, &#34;ga4&#34;: [], &#34;ga4p&#34;: [], &#34;gtm&#34;: [{&#34;id&#34;: &#34;GTM-5CVQBG&#34;, &#34;purpose&#34;: 1}], &#34;parameters&#34;: {&#34;internalUser&#34;: &#34;False&#34;, &#34;language&#34;: {&#34;machineTranslated&#34;: &#34;False&#34;, &#34;requested&#34;: &#34;en&#34;, &#34;served&#34;: &#34;en&#34;}, &#34;pageType&#34;: &#34;article&#34;, &#34;projectName&#34;: &#34;Spanner&#34;, &#34;signedIn&#34;: &#34;False&#34;, &#34;tenant&#34;: &#34;clouddocs&#34;, &#34;recommendations&#34;: {&#34;sourcePage&#34;: &#34;&#34;, &#34;sourceType&#34;: 0, &#34;sourceRank&#34;: 0, &#34;sourceIdenticalDescriptions&#34;: 0, &#34;sourceTitleWords&#34;: 0, &#34;sourceDescriptionWords&#34;: 0, &#34;experiment&#34;: &#34;&#34;}, &#34;experiment&#34;: {&#34;ids&#34;: &#34;&#34;}}}</script>
      
    </devsite-analytics>
    
      <devsite-badger></devsite-badger>
    
    
    
<cloudx-user></cloudx-user>




  
    <cloudx-free-trial-eligible-store freeTrialEligible="true"></cloudx-free-trial-eligible-store>
  

    
<script nonce="u+r5hoNNGQm9MkzmWDQBWWWjvY6Zlh">
  
  (function(d,e,v,s,i,t,E){d['GoogleDevelopersObject']=i;
    t=e.createElement(v);t.async=1;t.src=s;E=e.getElementsByTagName(v)[0];
    E.parentNode.insertBefore(t,E);})(window, document, 'script',
    'https://www.gstatic.com/devrel-devsite/prod/veec7311b6c5f99ef32994eb65aab7022195f72bfa4f3d934bdc7556da7fa7c3b/clouddocs/js/app_loader.js', '[39,"en",null,"/js/devsite_app_module.js","https://www.gstatic.com/devrel-devsite/prod/veec7311b6c5f99ef32994eb65aab7022195f72bfa4f3d934bdc7556da7fa7c3b","https://www.gstatic.com/devrel-devsite/prod/veec7311b6c5f99ef32994eb65aab7022195f72bfa4f3d934bdc7556da7fa7c3b/clouddocs","https://clouddocs-dot-devsite-v2-prod.appspot.com",null,null,["/_pwa/clouddocs/manifest.json","https://www.gstatic.com/devrel-devsite/prod/veec7311b6c5f99ef32994eb65aab7022195f72bfa4f3d934bdc7556da7fa7c3b/images/video-placeholder.svg","https://www.gstatic.com/devrel-devsite/prod/veec7311b6c5f99ef32994eb65aab7022195f72bfa4f3d934bdc7556da7fa7c3b/clouddocs/images/favicons/onecloud/favicon.ico","https://www.gstatic.com/devrel-devsite/prod/veec7311b6c5f99ef32994eb65aab7022195f72bfa4f3d934bdc7556da7fa7c3b/clouddocs/images/lockup_full_color.svg","https://fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"],1,null,[1,6,8,12,14,17,21,25,50,52,63,70,75,76,80,87,91,92,93,97,98,100,101,102,103,104,105,107,108,109,110,112,113,116,117,118,120,122,124,125,126,127,129,130,131,132,133,134,135,136,138,140,141,147,148,149,151,152,156,157,158,159,161,163,164,168,169,170,179,180,182,183,186,191,193,196],"AIzaSyAP-jjEJBzmIyKR4F-3XITp8yM9T1gEEI8","AIzaSyB6xiKGDR5O3Ak2okS4rLkauxGUG7XP0hg","docs.cloud.google.com","AIzaSyAQk0fBONSGUqCNznf6Krs82Ap1-NV6J4o","AIzaSyCCxcqdrZ_7QMeLCRY20bh_SXdAYqy70KY",null,null,null,["Profiles__enable_user_type","SignIn__enable_l1_signup_flow","DevPro__enable_enterprise","Concierge__enable_actions_menu","Cloud__cache_serialized_dynamic_content","Profiles__enable_purchase_prompts","EngEduTelemetry__enable_engedu_telemetry","MiscFeatureFlags__enable_dark_theme","MiscFeatureFlags__developers_footer_image","Profiles__enable_completequiz_endpoint","Profiles__enable_targeted_hero","Profiles__enable_completecodelab_endpoint","MiscFeatureFlags__enable_project_variables","Search__enable_page_map","Cloud__enable_cloud_shell_fte_user_flow","OnSwitch__enable","Concierge__enable_concierge_restricted","DevPro__enable_devsite_captcha","Profiles__enable_callout_notifications","Search__enable_ai_search_summaries_for_all","DevPro__remove_eu_tax_intake_form","Profiles__enable_page_saving","DevPro__enable_payments_first_batch","Analytics__enable_clearcut_logging","TpcFeatures__proxy_prod_host","DevPro__enable_devpro_offers","DevPro__enable_vertex_credit_card","MiscFeatureFlags__remove_cross_domain_tracking_params","Profiles__enable_join_program_group_endpoint","Concierge__enable_pushui","MiscFeatureFlags__enable_variable_operator","Profiles__enable_developer_profiles_callout","Profiles__enable_auto_apply_credits","DevPro__enable_google_payments_buyflow","BookNav__enable_tenant_cache_key","MiscFeatureFlags__enable_variable_operator_index_yaml","DevPro__enable_g1_integration","TpcFeatures__enable_unmirrored_page_left_nav","MiscFeatureFlags__developers_footer_dark_image","DevPro__enable_firebase_workspaces_card","Profiles__require_profile_eligibility_for_signin","Profiles__enable_complete_playlist_endpoint","Profiles__enable_public_developer_profiles","Profiles__enable_recognition_badges","Profiles__enable_developer_profile_benefits_ui_redesign","Cloud__enable_free_trial_server_call","DevPro__enable_free_benefits","DevPro__enable_g1_ineligible_redirect","MiscFeatureFlags__enable_appearance_cookies","MiscFeatureFlags__enable_explicit_template_dependencies","Concierge__enable_remove_info_panel_tags","Concierge__enable_devsite_llm_tools","Profiles__enable_dashboard_curated_recommendations","DevPro__enable_developer_subscriptions","MiscFeatureFlags__enable_framebox_badge_methods","Search__enable_ai_eligibility_checks","DevPro__enable_google_one_card","Profiles__enable_playlist_community_acl","Cloud__fast_free_trial","MiscFeatureFlags__fix_lower_breadcrumbs","Cloud__enable_cloud_shell","Profiles__enable_awarding_url","MiscFeatureFlags__enable_firebase_utm","DevPro__enable_code_assist","CloudShell__cloud_shell_button","Profiles__enable_stripe_subscription_management","Analytics__enable_devpro_interaction_logging","AIStudioInteractionsToggle__interactions_are_default","MiscFeatureFlags__enable_explain_this_code","Cloud__enable_cloudx_experiment_ids","Cloud__enable_cloud_dlp_service","MiscFeatureFlags__enable_view_transitions","Experiments__reqs_query_experiments","Search__enable_dynamic_content_confidential_banner","DevPro__enable_credits_banner","Profiles__enable_developer_profile_pages_as_content","DevPro__enable_cloud_innovators_plus","Profiles__enable_profile_collections","Search__enable_suggestions_from_borg","Cloud__enable_legacy_calculator_redirect","DevPro__enable_embed_profile_creation","CloudShell__cloud_code_overflow_menu","DevPro__enable_nvidia_credits_card","MiscFeatureFlags__gdp_dashboard_reskin_enabled"],null,null,"AIzaSyBLEMok-5suZ67qRPzx0qUtbnLmyT_kCVE","https://developerscontentserving-pa.clients6.google.com","AIzaSyCM4QpTRSqP5qI4Dvjt4OAScIN8sOUlO-k","https://developerscontentsearch-pa.clients6.google.com",1,4,1,"https://developerprofiles-pa.clients6.google.com",[39,"clouddocs","Google Cloud Documentation","docs.cloud.google.com",null,"clouddocs-dot-devsite-v2-prod.appspot.com",null,null,[1,1,null,null,null,null,null,null,null,null,null,[1],null,null,null,null,null,1,[1],[null,null,null,[1,20],"/terms/recommendations"],[1],null,[1],[1,null,1],null,[1]],null,[54,null,null,null,null,null,"/images/lockup_full_color.svg","/images/favicons/onecloud/apple-icon.png",null,null,null,1,1,1,1,null,[],null,null,[[],[],[],[],[],[],[],[]],null,1,null,null,null,"/images/lockup_dark_theme.svg",[]],[],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[6,1,14,15,22,23,29,37],null,[[null,null,null,null,null,null,[1,[["docType","Choose a content type",[["ApiReference",null,null,null,null,null,null,null,null,"API reference"],["Sample",null,null,null,null,null,null,null,null,"Code sample"],["ReferenceArchitecture",null,null,null,null,null,null,null,null,"Reference architecture"],["Tutorial",null,null,null,null,null,null,null,null,"Tutorial"]]],["category","Choose a topic",[["AiAndMachineLearning",null,null,null,null,null,null,null,null,"Artificial intelligence and machine learning (AI/ML)"],["ApplicationDevelopment",null,null,null,null,null,null,null,null,"Application development"],["BigDataAndAnalytics",null,null,null,null,null,null,null,null,"Big data and analytics"],["Compute",null,null,null,null,null,null,null,null,"Compute"],["Containers",null,null,null,null,null,null,null,null,"Containers"],["Databases",null,null,null,null,null,null,null,null,"Databases"],["HybridCloud",null,null,null,null,null,null,null,null,"Hybrid and multicloud"],["LoggingAndMonitoring",null,null,null,null,null,null,null,null,"Logging and monitoring"],["Migrations",null,null,null,null,null,null,null,null,"Migrations"],["Networking",null,null,null,null,null,null,null,null,"Networking"],["SecurityAndCompliance",null,null,null,null,null,null,null,null,"Security and compliance"],["Serverless",null,null,null,null,null,null,null,null,"Serverless"],["Storage",null,null,null,null,null,null,null,null,"Storage"]]]]]],[1],null,1],[[null,null,null,null,null,["GTM-5CVQBG"],null,null,null,null,null,[["GTM-5CVQBG",2]],1],null,null,null,null,null,1],"mwETRvWii0eU5NUYprb0Y9z5GVbc",4],1,"pk_live_5170syrHvgGVmSx9sBrnWtA5luvk9BwnVcvIi7HizpwauFG96WedXsuXh790rtij9AmGllqPtMLfhe2RSwD6Pn38V00uBCydV4m",1,1,"https://developerscontentinsights-pa.clients6.google.com","AIzaSyCg-ZUslalsEbXMfIo9ZP8qufZgo3LSBDU","AIzaSyDxT0vkxnY_KeINtA4LSePJO-4MAZPMRsE","https://developers.clients6.google.com",null,null,"AIzaSyBQom12tzI-rybN7Sf-KfeL4nwm-Rf7PmI\n",null,null,"https://developers.googleapis.com"]')
  
</script>

    <devsite-a11y-announce></devsite-a11y-announce>
  </body>
</html>