MySQL การใช้งานฟังก์ชัน CONNECTION_ID()

ฟังก์ชัน CONNECTION_ID() ใน MySQL ใช้เพื่อคืนค่า “หมายเลขการเชื่อมต่อ” (Connection ID) ของการเชื่อมต่อปัจจุบันกับเซิร์ฟเวอร์ MySQL

ทุกครั้งที่มีการเชื่อมต่อใหม่ (เช่น ผ่าน phpMyAdmin, MySQL CLI, หรือแอปพลิเคชัน) ระบบจะกำหนดหมายเลขเฉพาะให้หนึ่งตัว

ฟังก์ชันนี้เหมาะสำหรับใช้ในการตรวจสอบการเชื่อมต่อ, การดีบัก, หรือใช้คู่กับ INFORMATION_SCHEMA.PROCESSLIST เพื่อดูรายละเอียด connection อื่น ๆ

ประโยชน์ของฟังก์ชัน CONNECTION_ID()

  • ตรวจสอบหมายเลขการเชื่อมต่อของ session ปัจจุบัน
  • ใช้ร่วมกับ SHOW PROCESSLIST เพื่อตรวจสอบหรือ kill connection ตัวเอง
  • เหมาะสำหรับการติดตาม session ของผู้ใช้ในระบบที่มีการเชื่อมต่อพร้อมกันจำนวนมาก
  • ใช้ตรวจสอบปัญหาการเชื่อมต่อหรือ lock ที่เกิดขึ้น
  • ใช้บันทึก session log ในระบบ audit trail

รูปแบบการใช้งาน

CONNECTION_ID()

ตัวอย่างการใช้งาน

SQL
SELECT CONNECTION_ID() AS my_connection;
-- ตัวอย่างผลลัพธ์: 1082

ตัวอย่างการประยุกต์ใช้งาน

สมมติว่ามีตารางชื่อ user_logs ซึ่งเก็บข้อมูลดังนี้

log_id user_id login_time conn_id
11012024-04-10 09:30:001056
21022024-04-10 09:31:451061

แทรก session log พร้อมหมายเลข connection เข้าไปในตาราง

SQL
INSERT INTO user_logs (user_id, login_time, conn_id)
VALUES (103, NOW(), CONNECTION_ID());

ดูหมายเลข connection ของตัวเอง

SQL
SELECT CONNECTION_ID() AS current_connection;

หมายเหตุ

  • หมายเลข CONNECTION_ID() จะเปลี่ยนใหม่ทุกครั้งที่มีการเชื่อมต่อ
  • หากเปิดหลาย connection พร้อมกัน (เช่น MySQL CLI + phpMyAdmin) แต่ละหน้าจะมี connection_id ต่างกัน
  • CONNECTION_ID() เป็นของ session ปัจจุบันเท่านั้น ไม่สามารถใช้ดู session อื่นได้โดยตรง (ต้องใช้ SHOW PROCESSLIST)
  • อย่าใช้ CONNECTION_ID() เป็น PRIMARY KEY หรือ ID สำหรับการอ้างอิงข้อมูลถาวร เพราะมันไม่ถาวรและเปลี่ยนทุกครั้ง
แชร์เรื่องนี้