ข้อมูลเบื้องต้นเกี่ยวกับข้อมูลเชิงลึกของการค้นหาสำหรับ Cloud SQL

1. ก่อนเริ่มต้น

ข้อมูลเชิงลึกของการค้นหาสำหรับ Cloud SQL ช่วยให้คุณตรวจหา วินิจฉัย และป้องกันปัญหาด้านประสิทธิภาพการค้นหาสำหรับฐานข้อมูล Cloud SQL เครื่องมือนี้มีแบบบริการตนเอง การตรวจสอบที่ใช้งานง่าย และการวินิจฉัยที่นอกเหนือจากการตรวจจับ เพื่อช่วยให้คุณระบุสาเหตุที่แท้จริงของปัญหาด้านประสิทธิภาพได้

ใน Codelab นี้ คุณจะได้ดูวิธีตั้งค่า Cloud SQL สำหรับอินสแตนซ์ PostgreSQL, ทำให้แอป Node.js ใช้งานได้เพื่อใช้อินสแตนซ์ Cloud SQL เป็นพื้นที่เก็บข้อมูลแบ็กเอนด์ รวมถึงใช้ข้อมูลเชิงลึกของการค้นหาเพื่อดูและตรวจสอบการค้นหา

ข้อกำหนดเบื้องต้น

  • มีความคุ้นเคยกับภาษาและเครื่องมือในการเขียนโปรแกรม Node.js ในระดับพื้นฐาน

สิ่งที่คุณจะต้องทำ

  • ใช้ Cloud SQL ในแอป Node.js
  • เปิดใช้เครื่องมือแสดงความคิดเห็น SQL ในแอป Node.js
  • ใช้ข้อมูลเชิงลึกของการค้นหาสำหรับ Cloud SQL เพื่อตรวจสอบและตรวจสอบประสิทธิภาพการค้นหา

สิ่งที่คุณต้องมี

  • บัญชี Google Cloud ที่คุณมีสิทธิ์เปิดใช้ API และสร้างบริการ

2. การตั้งค่าและข้อกำหนด

การตั้งค่าสภาพแวดล้อมตามเวลาที่สะดวก

  1. ลงชื่อเข้าใช้ Cloud Console แล้วสร้างโปรเจ็กต์ใหม่หรือใช้โปรเจ็กต์ที่มีอยู่ซ้ำ (หากยังไม่มีบัญชี Gmail หรือ Google Workspace คุณต้องสร้างบัญชี)

จำรหัสโปรเจ็กต์สําหรับโปรเจ็กต์ที่คุณใช้อยู่ และจะมีการอ้างอิงใน Codelab ว่า PROJECT-ID ในภายหลัง

  1. ถัดไป คุณจะต้องเปิดใช้การเรียกเก็บเงินใน Cloud Console เพื่อใช้ทรัพยากร Google Cloud

การใช้งาน Codelab นี้น่าจะไม่มีค่าใช้จ่ายใดๆ หากมี ตรวจสอบว่าคุณได้ทำตามวิธีการใน "ล้างข้อมูลและดูข้อมูลเพิ่มเติม" ซึ่งจะแนะนำคุณเกี่ยวกับวิธีปิดทรัพยากรเพื่อไม่ให้มีการเรียกเก็บเงินนอกเหนือจากบทแนะนำนี้ ผู้ใช้ใหม่ของ Google Cloud จะมีสิทธิ์เข้าร่วมโปรแกรมทดลองใช้ฟรี$300 USD

เปิดใช้งาน Cloud Shell

  1. คลิกเปิดใช้งาน Cloud Shell จาก Cloud Console

เปิดใช้งาน Cloud Shell

หากคุณไม่เคยเริ่มต้นใช้งาน Cloud Shell มาก่อน คุณจะเห็นหน้าจอตรงกลาง (ครึ่งหน้าล่าง) ซึ่งอธิบายว่านี่คืออะไร หากเป็นเช่นนั้น ให้คลิกดำเนินการต่อ (คุณจะไม่เห็นการดำเนินการนี้อีก) หน้าจอแบบครั้งเดียวมีลักษณะดังนี้

หน้าต่างกล่องโต้ตอบ Cloud Shell

การจัดสรรและเชื่อมต่อกับ Cloud Shell ใช้เวลาเพียงไม่กี่นาที

เทอร์มินัล Cloud Shell

เครื่องเสมือนนี้เต็มไปด้วยเครื่องมือการพัฒนาทั้งหมดที่คุณต้องการ โดยมีไดเรกทอรีหลักขนาด 5 GB ที่ทำงานอย่างต่อเนื่องใน Google Cloud ซึ่งจะช่วยเพิ่มประสิทธิภาพของเครือข่ายและการตรวจสอบสิทธิ์ได้อย่างมาก

  1. เรียกใช้คำสั่งต่อไปนี้ใน Cloud Shell เพื่อยืนยันว่าคุณกำลังใช้โปรเจ็กต์ที่ถูกต้อง

เมื่อเชื่อมต่อกับ Cloud Shell คุณควรเห็นว่าได้รับการตรวจสอบสิทธิ์แล้ว และโปรเจ็กต์ได้รับการตั้งค่าเป็นรหัสโปรเจ็กต์แล้ว

เรียกใช้คำสั่งต่อไปนี้เพื่อยืนยันว่าคุณกำลังใช้โปรเจ็กต์ที่ถูกต้อง

gcloud config list project

หากต้องการใช้โปรเจ็กต์อื่นที่ไม่ใช่โปรเจ็กต์ที่เลือกไว้เมื่อเปิด Cloud Shell คุณตั้งค่าโปรเจ็กต์ใหม่ได้โดยเรียกใช้

gcloud config set project <PROJECT-ID>;

3. ตั้งค่า Cloud SQL สำหรับอินสแตนซ์ PostgreSQL ที่เปิดใช้ข้อมูลเชิงลึกของการค้นหา

  1. หลังจากเปิดตัว Cloud Shell คุณสามารถใช้บรรทัดคำสั่งเพื่อสร้างอินสแตนซ์ Cloud SQL ใหม่ชื่อ my-instance ที่เปิดใช้ข้อมูลเชิงลึกการค้นหาได้
gcloud sql instances create my-instance --tier db-f1-micro --database-version=POSTGRES_12 --region=us-central --root-password=<PASSWORD> --insights-config-query-insights-enabled --insights-config-record-application-tags --insights-config-record-client-address

ต่อไปนี้เป็นคำอธิบายโดยย่อเกี่ยวกับการแจ้งว่าไม่เหมาะสมและความหมายของการทำเครื่องหมายดังกล่าว

  • แฟล็ก --tier db-f1-micro ระบุประเภทเครื่องที่มีทรัพยากรน้อยที่สุด เนื่องจากมีไว้เพื่อการพัฒนา และคุณไม่จำเป็นต้องใช้ทรัพยากรจำนวนมากสำหรับ Codelab ดูข้อมูลเพิ่มเติมเกี่ยวกับระดับได้ที่นี่
  • แฟล็ก --database-version=POSTGRES_12 จะสร้างอินสแตนซ์ที่จะเป็น PostgreSQL เวอร์ชัน 12
  • แฟล็ก --region=us-central จะระบุภูมิภาคที่จะสร้างอินสแตนซ์
  • แฟล็ก --root-password=<PASSWORD> จะช่วยให้คุณระบุรหัสผ่านสำหรับผู้ใช้รูท postgres ได้ อย่าลืมเปลี่ยน <รหัสผ่าน> ด้วยรหัสผ่านที่คุณเลือก
  • แฟล็ก --insights-config-query-insights-enabled จะเปิดใช้ข้อมูลเชิงลึกของการค้นหาบนอินสแตนซ์
  • แฟล็ก --insights-config-record-application-tags จะอนุญาตให้บันทึกแท็กแอปพลิเคชัน คุณจะได้ดูข้อมูลเพิ่มเติมเกี่ยวกับแท็กแอปพลิเคชันในส่วนต่อไป
  • แฟล็ก --insights-config-record-client-address จะช่วยให้ข้อมูลเชิงลึกของการค้นหาบันทึกที่อยู่ IP ของไคลเอ็นต์ได้

คุณอาจได้รับแจ้งให้เปิดใช้ API sqladmin.googleapis.com สำหรับโปรเจ็กต์ของคุณ หากมีข้อความแจ้ง ให้เลือก y เพื่อเปิดใช้ API

การสร้างอินสแตนซ์อาจใช้เวลาหลายนาที เมื่อการดำเนินการนี้เสร็จสิ้น อินสแตนซ์ของคุณจะพร้อมใช้งาน

  1. ทีนี้สร้างฐานข้อมูลที่คุณจะใช้สำหรับแอปตัวอย่าง ดังนี้
gcloud sql databases create votesdb --instance my-instance

นอกจากนี้ยังเข้าถึงและกำหนดค่าอินสแตนซ์ผ่าน Cloud Console ได้ด้วย

  1. ดูชื่อการเชื่อมต่ออินสแตนซ์ในรูปแบบ PROJECT-ID:ZONE-ID:INSTANCE-ID โดยเรียกใช้คำสั่งต่อไปนี้ คุณจะต้องใช้ชื่อนี้ในภายหลังในการกำหนดค่าแอป Node.js
gcloud sql instances describe my-instance | grep connectionName

4. สร้างบัญชีบริการเพื่อใช้กับแอป

บัญชีบริการมีไว้เพื่อให้สิทธิ์การใช้บริการต่างๆ ภายในโปรเจ็กต์ GCP ของคุณ สำหรับ Codelab นี้ คุณต้องมีผู้ดูแลระบบจึงจะให้สิทธิ์พร็อกซี Cloud SQL ในการเชื่อมต่อกับอินสแตนซ์ Cloud SQL ได้

สร้างบัญชีบริการในคอนโซล

  1. ไปที่หน้าบัญชีบริการ IAM และคลิกปุ่ม -PCvKR3aQ2zKaUcml8w9lW4JNlmYtN5-r2--mC6kMUp6HOXW8wT1wUvLoYEPU-aA-oGskT3XkAqfNwRAKkZkllwTe6ugdrUVFwaeKT0M9Y1RwHA8JPZeGmCWYBfr8d9TSycNMIRsLw ที่ด้านบนของหน้า
  2. ตั้งชื่อและรหัสที่ไม่ซ้ำกันให้บัญชีบริการ แล้วคลิกสร้าง
  3. ในหน้าถัดไป ให้คลิกเมนูแบบเลื่อนลงสำหรับ "เลือกบทบาท" ตัวกรองสำหรับ "Cloud SQL" แล้วเลือกบทบาทไคลเอ็นต์ Cloud SQL คลิกดำเนินการต่อ แล้วคลิกเสร็จสิ้น
  4. หลังจากสร้างบัญชีบริการแล้ว ให้คลิกจุด 3 จุดในส่วนการดำเนินการสำหรับบัญชีบริการใหม่ แล้วเลือก "จัดการคีย์" ในหน้าถัดไป ให้เลือกเพิ่มคีย์ แล้วเลือกสร้างคีย์ใหม่ ระบบจะเลือก JSON เก็บค่าเริ่มต้นนั้นไว้ แล้วคลิกสร้าง การดำเนินการนี้จะดาวน์โหลดไฟล์คีย์ส่วนตัว .json คลิกปิด
  5. ใน Cloud Shell ให้คลิกจุด 3 จุดของเมนูเพิ่มเติม แล้วเลือกอัปโหลดไฟล์ เรียกดูไฟล์ .json ที่คุณดาวน์โหลดในเครื่องของคุณแล้วเลือกไฟล์นั้น การดำเนินการนี้จะอัปโหลดไฟล์ .json ไปยังไดเรกทอรีหน้าแรกใน Cloud Shell

5. ติดตั้งและเปิดใช้งานพร็อกซี Cloud SQL

คุณจะใช้พร็อกซี Cloud SQL เพื่อสื่อสารระหว่างแอปพลิเคชันกับอินสแตนซ์ฐานข้อมูล

  1. ดาวน์โหลดพร็อกซี Cloud SQL ใน Cloud Shell คุณจะเรียกใช้สิ่งต่อไปนี้ได้
wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy && chmod +x cloud_sql_proxy
  1. เรียกใช้พร็อกซีตามขั้นตอนต่อไปนี้หลังจากแทนที่ <INSTANCE_CONNECTION_NAME> ด้วยชื่อการเชื่อมต่ออินสแตนซ์ที่คุณคัดลอกจากหน้าภาพรวมอินสแตนซ์ Cloud SQL
./cloud_sql_proxy -instances=<INSTANCE_CONNECTION_NAME>=tcp:5432 &

หากสำเร็จ คุณควรเห็นเอาต์พุต 2-3 บรรทัดลงท้ายด้วยข้อความ Ready for new connections

6. โคลนและทดสอบแอปในเครื่อง

  1. โคลนที่เก็บสำหรับแอปพลิเคชันตัวอย่าง และติดตั้งแพ็กเกจที่จำเป็นต่อการเรียกใช้แอป
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples/

cd nodejs-docs-samples/cloud-sql/postgres/knex

npm install
  1. ตั้งค่าตัวแปรสภาพแวดล้อมต่อไปนี้
export INSTANCE_CONNECTION_NAME='<PROJECT-ID>:<ZONE-ID>:<INSTANCE-ID>'
export DB_HOST='127.0.0.1:5432'
export DB_USER='postgres'
export DB_PASS='<PASSWORD>'
export DB_NAME='votesdb'
  1. เปิดแอปตัวอย่าง
npm start
  1. คลิกตัวอย่างเว็บไอคอนการแสดงตัวอย่างเว็บ ใน Cloud Shell จากนั้นเลือกแสดงตัวอย่างบนพอร์ต 8080

แสดงตัวอย่างในรายการเมนูของพอร์ต 8080

คุณควรเห็นแอปโหวต "แท็บเทียบกับพื้นที่ทำงาน" ดังที่แสดงไว้ที่นี่ในเบราว์เซอร์ของคุณ

ภาพหน้าจอของแอปโหวตในแท็บเทียบกับพื้นที่ทำงาน

  1. คลิกปุ่มเพื่อโหวตและบันทึกข้อมูลบางอย่างในฐานข้อมูล

7. เพิ่มหน้าเพื่อดูคะแนนเสียงทั้งหมด

เนื่องจากแอปพลิเคชันตัวอย่างนี้ใช้งานง่ายมาก คุณจะเพิ่มหน้าเว็บเพิ่มเติมที่แสดงการลงคะแนนทั้งหมด เหตุผลหลักที่ทำเช่นนี้ก็เพื่อให้คุณมีข้อมูลที่ต้องดูมากขึ้นเมื่อใช้ข้อมูลเชิงลึกของการค้นหาในภายหลัง

  1. ป้อน Ctrl+c ใน Cloud Shell เพื่อหยุดแอปตัวอย่าง
  2. ใน Cloud Shell ให้คลิกปุ่ม ปุ่มเปิดเครื่องมือแก้ไข เพื่อเปิดใช้ Cloud Shell Editor
  3. ในโปรแกรมสำรวจไฟล์ ให้ค้นหา nodejs-docs-samples/cloud-sql/postgres/knex/server.js แล้วคลิกเพื่อโหลดไฟล์ server.js ในตัวแก้ไข

เพิ่มโค้ดต่อไปนี้หลังจากกำหนดฟังก์ชัน getVotes แล้ว

/**
 * Retrieve all vote records from the database.
 *
 * @param {object} pool The Knex connection object.
 * @returns {Promise}
 */
const getAllVotes = async pool => {
  return await pool
    .select('candidate', 'time_cast')
    .from('votes')
    .orderBy('time_cast', 'desc');
};
  1. เพิ่มโค้ดต่อไปนี้สำหรับเส้นทาง '/getAllVotes' ด้านล่างที่มีการกำหนดเส้นทางอื่นๆ ไว้
app.get('/getAllVotes', async (req, res) => {
  pool = pool || createPool();
  try {
    // Query all votes from the database.
    const votes = await getAllVotes(pool);

    res.render('allvotes.pug', {
      votes: votes,
    });
  } catch (err) {
    console.error(err);
    res
      .status(500)
      .send('Unable to load page; see logs for more details.')
      .end();
  }
});
  1. สร้างไฟล์ใหม่ในไดเรกทอรี nodejs-docs-samples/cloud-sql/postgres/knex/views ชื่อ allvotes.pug วางรหัสต่อไปนี้
doctype html
html(lang="en")
  head
    title Tabs VS Spaces

    link(rel="stylesheet", href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css")
    link(rel="stylesheet", href="https://fonts.googleapis.com/icon?family=Material+Icons")
    script(src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js")
  body

    nav(class="red lighten-1")
      div(class="nav-wrapper")
        a(href="#" class="brand-logo center") Tabs VS Spaces

    div(class="section")

      h4(class="header center") Recent Votes
      ul(class="container collection center")
        each vote in votes
          li(class="collection-item avatar")
            if vote.candidate.trim() === 'TABS'
              i(class="material-icons circle green") keyboard_tab
            else
              i(class="material-icons circle blue") space_bar
            span(class="title") A vote for <b>#{vote.candidate}</b>
            p was cast at #{vote.time_cast}.
  1. คลิกปุ่ม ปุ่มเปิดเทอร์มินัล เพื่อกลับไปยัง Cloud Shell และเรียกใช้:
npm start
  1. เปิดแอปจากตัวอย่างเว็บเพื่อตรวจสอบว่าใช้งานได้ เพิ่ม /getAllVotes ใน URL ในเบราว์เซอร์เพื่อดูหน้าเว็บใหม่ที่คุณเพิ่ม

8. เปิดใช้ผู้แสดงความคิดเห็น SQL ในแอป

ตอนนี้คุณจะต้องติดตั้งและเปิดใช้ผู้แสดงความคิดเห็น SQL ซึ่งเป็นไลบรารีโอเพนซอร์สที่เปิดใช้ ORM เพื่อเพิ่มคำสั่ง SQL ที่มีความคิดเห็นก่อนการเรียกใช้ SQLcommenter รองรับ ORM และเฟรมเวิร์กมากมาย รวมถึงแบบที่แอปตัวอย่างใช้: Knex.js ข้อมูลเชิงลึกของการค้นหาจะใช้ข้อมูลในความคิดเห็นเหล่านี้ เพื่อให้มุมมองด้านประสิทธิภาพของฐานข้อมูลที่เน้นแอปพลิเคชันเป็นหลัก และระบุโค้ดของแอปพลิเคชันที่ทำให้เกิดปัญหา คาดว่าค่าใช้จ่ายด้านประสิทธิภาพจะมีเพียงเล็กน้อย ดูเอกสารประกอบข้อมูลเชิงลึกของการค้นหา

  1. ป้อน Ctrl+c ใน Cloud Shell เพื่อหยุดแอปตัวอย่าง
  2. เรียกใช้คำสั่งต่อไปนี้เพื่อติดตั้งแพ็กเกจที่ SQLcommenter ต้องการ
  npm install @google-cloud/sqlcommenter-knex @opencensus/nodejs @opencensus/propagation-tracecontext @opentelemetry/api @opentelemetry/core --save
  1. ใน Cloud Shell ให้คลิกปุ่ม ปุ่มเปิดเครื่องมือแก้ไข เพื่อเปิดใช้ Cloud Shell Editor
  2. ในโปรแกรมสำรวจไฟล์ ให้ค้นหา nodejs-docs-samples/cloud-sql/postgres/knex/server.js แล้วคลิกเพื่อโหลดไฟล์ server.js ในตัวแก้ไข
  3. ค้นหาโค้ดนี้ในไฟล์:
const process = require('process');

เพิ่มโค้ดต่อไปนี้ไว้ที่ด้านล่าง

const {wrapMainKnexAsMiddleware} = require('@google-cloud/sqlcommenter-knex');
  1. ค้นหาโค้ดนี้ในไฟล์:
// Set Content-Type for all responses for these routes.
app.use((req, res, next) => {
  res.set('Content-Type', 'text/html');
  next();
});

เพิ่มโค้ดต่อไปนี้ไว้ที่ด้านล่าง

app.use(wrapMainKnexAsMiddleware(Knex, {
    traceparent: true,
    tracestate: true,
    route: true,
    db_driver: true
}));

เมื่อดำเนินการเสร็จแล้ว โค้ดของคุณควรมีลักษณะเช่นนี้

...
// Require process, so we can mock environment variables.
const process = require('process');

const {wrapMainKnexAsMiddleware} = require('@google-cloud/sqlcommenter-knex');
const express = require('express');
const Knex = require('knex');
const fs = require('fs');

const app = express();
app.set('view engine', 'pug');
app.enable('trust proxy');

// Automatically parse request body as form data.
app.use(express.urlencoded({extended: false}));
// This middleware is available in Express v4.16.0 onwards
app.use(express.json());

// Set Content-Type for all responses for these routes.
app.use((req, res, next) => {
  res.set('Content-Type', 'text/html');
  next();
});

app.use(wrapMainKnexAsMiddleware(Knex, {
    traceparent: true,
    tracestate: true,
    route: true,
    db_driver: true
}));
...
  1. คลิกปุ่ม ปุ่มเปิดเทอร์มินัล เพื่อกลับไปยัง Cloud Shell และเรียกใช้:
npm start
  1. คลิกปุ่มต่างๆ ในแอปพลิเคชัน "แท็บเทียบกับพื้นที่ทำงาน" เพื่อโหวตเพิ่มคะแนนเพื่อเพิ่มข้อมูลในฐานข้อมูล

9. ใช้ข้อมูลเชิงลึกเพื่อดูประสิทธิภาพของการค้นหาและการติดตามจากต้นทางถึงปลายทาง

หน้าแดชบอร์ดข้อมูลเชิงลึกของการค้นหาช่วยคุณแก้ปัญหาการค้นหา Cloud SQL เพื่อตรวจหาปัญหาด้านประสิทธิภาพ หากต้องการเข้าถึงข้อมูลเชิงลึก ให้เลือกข้อมูลเชิงลึกของการค้นหาในการนําทางด้านซ้ายสำหรับอินสแตนซ์ Cloud SQL

ภาระงานของฐานข้อมูล - กราฟคำค้นหาทั้งหมด

แดชบอร์ดข้อมูลเชิงลึกของการค้นหาระดับบนสุดแสดงกราฟภาระงานของฐานข้อมูล - คำค้นหาทั้งหมด

กราฟคำค้นหาทั้งหมด

กราฟจะมีข้อมูลความจุของ CPU, การรอ CPU และ CPU, การรอ IO และการรอล็อก ดูข้อมูลเพิ่มเติมเกี่ยวกับความหมายของเมตริกเหล่านี้ ตำแหน่งที่จัดเก็บเมตริก และดูตัวอย่างลักษณะของกราฟนี้สำหรับคำค้นหาที่เป็นปัญหาได้ในเอกสารประกอบ ในกรณีของแอปพลิเคชันตัวอย่างนี้ ภาระงานของการค้นหาฐานข้อมูลอยู่ในระดับต่ำ ดังนั้นจึงไม่มีช่วงที่เพิ่มขึ้นอย่างมากบนกราฟ

คำค้นหาใดทำให้มีการโหลดมากที่สุด

ด้านล่างกราฟ คุณจะเห็นตาราง "ข้อความค้นหา" ที่มีข้อความค้นหาที่ปรับให้เป็นมาตรฐานสำหรับช่วงเวลาที่คุณเลือก การค้นหาในตารางจะจัดเรียงตามเวลาดำเนินการทั้งหมด

ตารางคำค้นหายอดนิยม

คุณสามารถคลิกการค้นหาแต่ละรายการเพื่อดูข้อมูลโดยละเอียดเกี่ยวกับการค้นหา เช่น จำนวนฐานข้อมูลสำหรับการค้นหานี้ เวลาในการตอบสนองของการค้นหา ตัวอย่างแผนการค้นหา และผู้ใช้ยอดนิยม หากแอปพลิเคชันสร้างโดยใช้ ORM เช่นเดียวกับกรณีของแอปพลิเคชันตัวอย่าง คุณอาจไม่ทราบว่าส่วนใดของแอปพลิเคชันทำให้เกิดการค้นหาใด ส่วน "แท็กยอดนิยม" สามารถช่วยคุณได้

การโหลดการค้นหาเกิดขึ้นที่ใดในแอปพลิเคชัน

สลับจากตาราง "ข้อความค้นหา" เป็นตาราง "แท็ก" เพื่อดูรายการคำค้นหาที่แท็กด้วยตรรกะทางธุรกิจ ซึ่งจะช่วยให้คุณมองเห็นแอปพลิเคชันเป็นศูนย์กลางมากขึ้น

ตารางแท็กยอดนิยม

ในตารางแท็ก คุณสามารถดูโหลดของฐานข้อมูลที่แจกแจงตามเส้นทางที่สร้างการโหลดนั้นได้ ในภาพหน้าจอด้านบน คุณจะเห็นว่าเส้นทาง '/getAllVotes' มีเวลาดำเนินการโดยเฉลี่ยสูงกว่าและมีแถวที่แสดงผลโดยเฉลี่ยมากกว่า แม้ว่าเวลาดำเนินการที่เห็นในตารางจะไม่เป็นปัญหาในกรณีนี้ แต่เราลองคลิกแถวของ '/getAllVotes' เพื่อดูรายละเอียดเพิ่มเติม

ทำไมการค้นหาจึงทำงานช้า

คลิกที่จุดในกราฟตัวอย่างแผนการค้นหาเพื่อดูแผนการค้นหา

ตัวอย่างแพ็กเกจคำสั่ง

แผนการค้นหาจะแสดงวิธีที่ PostgreSQL ดำเนินการกับการค้นหาภายใต้ส่วนที่ครอบคลุม ทำให้ง่ายขึ้นในการระบุว่ามีการดำเนินงานที่ทำให้ทำงานช้าหรือไม่

โค้ดแอปพลิเคชันใดทำให้แอปทำงานช้า

ข้อมูลเชิงลึกของการค้นหายังแสดงภาพในบริบทของการติดตามจากต้นทางถึงปลายทางได้ ซึ่งมีประโยชน์สําหรับการตรวจสอบเพิ่มเติมว่าส่วนใดของแอปพลิเคชันทําให้เกิดการค้นหาที่ช้า

คลิกแท็บจากต้นทางถึงปลายทางเพื่อดูการติดตามในบริบท

การติดตามต้นทางถึงปลายทาง

10. ล้างข้อมูลและดูข้อมูลเพิ่มเติม

คุณได้เรียนรู้วิธีใช้ข้อมูลเชิงลึกของการค้นหาเพื่อตรวจสอบและตรวจสอบประสิทธิภาพการค้นหาด้วยแอป Node.js และฐานข้อมูล Cloud SQL PostgreSQL แล้ว

ล้างข้อมูล

หากคุณไม่ต้องการให้อินสแตนซ์ Cloud SQL ทำงานต่อไป คุณสามารถลบอินสแตนซ์ดังกล่าวได้

gcloud sql instances delete my-instance

ดูข้อมูลเพิ่มเติม