ค้นหาเว็บไซต์

MySQL คืออะไร? MySQL ทำงานอย่างไร?


MySQL คือระบบจัดการฐานข้อมูลเชิงสัมพันธ์โอเพ่นซอร์สระดับองค์กรที่ได้รับความนิยมมากที่สุดในโลก (RDBMS) ซึ่งใช้งานบน Facebook, Google, Adobe, Alcatel Lucent และ Zappos และจากเว็บไซต์/แอปพลิเคชันออนไลน์มากมาย

ได้รับการพัฒนา จัดจำหน่าย และสนับสนุนโดย Oracle Corporation เป็นฐานข้อมูลเชิงสัมพันธ์ข้ามแพลตฟอร์ม มีประสิทธิภาพ ยืดหยุ่น และขยายได้ ซึ่งใช้ภาษามาตรฐาน SQL (Structured Query Language) ที่ใช้ในการสร้างและจัดการฐานข้อมูล

MySQL เวอร์ชันล่าสุด (เวอร์ชัน 8.0 ณ เวลาที่เขียน) มาพร้อมกับการรองรับ NoSQL (“Not Only SQL) ”) ฐานข้อมูลเอกสาร สามารถติดตั้งได้ใน Linux, macOS และระบบปฏิบัติการที่คล้าย UNIX อื่นๆ และ Windows

ดาวน์โหลด MySQL

  • ดาวน์โหลด MySQL Community Edition
  • ดาวน์โหลด MySQL Enterprise Edition

ซอฟต์แวร์ฐานข้อมูล MySQL เป็นโอเพ่นซอร์ส ใช้ GPL (GNU General Public License) ที่สำคัญ มีให้บริการในสองรุ่นที่แตกต่างกัน: MySQL Community Server แบบโอเพ่นซอร์สซึ่งคุณสามารถดาวน์โหลด เข้าถึงซอร์สโค้ด และใช้งานได้ฟรี และ MySQL Enterprise ที่เป็นกรรมสิทธิ์ รุ่นและผลิตภัณฑ์เชิงพาณิชย์อื่น ๆ ที่ต้องสมัครสมาชิกรายปี และรวมถึงการสนับสนุนอย่างมืออาชีพและสิทธิประโยชน์อื่น ๆ อีกมากมาย

MySQL ใช้เพื่อวัตถุประสงค์ที่หลากหลาย รวมถึงฐานข้อมูลบนเว็บ (การใช้งานทั่วไปที่สุด) คลังข้อมูล อีคอมเมิร์ซ และแอปพลิเคชันการบันทึก เป็นหนึ่งในซอฟต์แวร์ที่ติดตั้งโดยทั่วไปเพื่อตั้งค่า LAMP (Linux + Apache + MySQL + PHP) หรือ LEMP (Linux + Engine-X + MySQL + PHP ) สแต็กที่ใช้สำหรับการพัฒนาเว็บและโฮสต์ระบบจัดการเนื้อหาออนไลน์ เช่น WordPress, Magneto, Joomla, Drupal< และอื่นๆ อีกมากมาย นอกจาก PHP แล้ว ยังรองรับภาษาอื่นๆ อีกหลายภาษา เช่น Perl, Node.js, Python และอื่นๆ

ดูคำแนะนำที่เกี่ยวข้องเหล่านี้ในการตั้งค่าแอปพลิเคชันของคุณด้วยฐานข้อมูล MySQL บน Linux

  • วิธีการติดตั้งเซิร์ฟเวอร์ LAMP บน CentOS 8
  • วิธีการติดตั้งเซิร์ฟเวอร์ LEMP บน CentOS 8
  • วิธีติดตั้ง LAMP Stack ด้วย PhpMyAdmin ใน Ubuntu 20.04
  • วิธีติดตั้ง LEMP Stack ด้วย PhpMyAdmin ใน Ubuntu 20.04
  • วิธีติดตั้ง WordPress ด้วย Apache ใน Ubuntu 20.04

MySQL ทำงานอย่างไร?

เช่นเดียวกับระบบการจัดการฐานข้อมูลส่วนใหญ่ MySQL มีสถาปัตยกรรมไคลเอ็นต์-เซิร์ฟเวอร์ และสามารถใช้ในสภาพแวดล้อมแบบเครือข่ายได้ โปรแกรมเซิร์ฟเวอร์อยู่บนระบบฟิสิคัลหรือเสมือนเดียวกันกับที่เก็บไฟล์ฐานข้อมูล และรับผิดชอบการโต้ตอบทั้งหมดกับฐานข้อมูล

โปรแกรมไคลเอนต์ต่างๆ เช่น เครื่องมือ MySQL สำหรับการดูแลฐานข้อมูลหรือแอปพลิเคชันใดๆ ที่เขียนในภาษาการเขียนโปรแกรมอื่น สามารถเชื่อมต่อกับเซิร์ฟเวอร์และทำการร้องขอฐานข้อมูลได้ เซิร์ฟเวอร์ประมวลผลคำขอของลูกค้าและส่งผลลัพธ์กลับไปยังไคลเอนต์

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

คุณสมบัติที่สำคัญของ MySQL

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

  • MySQL ใช้ตาราง B-tree ที่รวดเร็วมากพร้อมการบีบอัดดัชนี ซึ่งเป็นระบบการจัดสรรหน่วยความจำแบบเธรดที่รวดเร็วมาก และดำเนินการการรวมที่รวดเร็วมากโดยใช้การรวมแบบ Nested-Loop ที่ปรับให้เหมาะสม
  • รองรับข้อมูลหลายประเภท เช่น จำนวนเต็มที่มีเครื่องหมาย/ไม่ได้ลงนาม ประเภทจุดลอยตัว (ทศนิยมและสองเท่า) char และ varchar ไบนารีและ varbinary blob และข้อความ วันที่ DateTime และการประทับเวลา ปี ชุด enum และเชิงพื้นที่ของ OpenGIS ประเภท
  • MySQL ยังรองรับการสำรองข้อมูลและความพร้อมใช้งานสูง (HA) ผ่านการจำลองแบบมาสเตอร์-สเลฟ การทำคลัสเตอร์แบบหลายโหนด และการสำรองและกู้คืน/กู้คืน มีประเภทการสำรองข้อมูลและกลยุทธ์ที่หลากหลาย ซึ่งคุณสามารถเลือกวิธีการที่เหมาะสมกับความต้องการสำหรับการปรับใช้ของคุณได้มากที่สุด
  • คุณสมบัติด้านความปลอดภัยประกอบด้วยการจัดการบัญชีผู้ใช้และการควบคุมการเข้าถึง การตรวจสอบตามโฮสต์ การเชื่อมต่อที่เข้ารหัส ส่วนประกอบและปลั๊กอินต่างๆ (เช่น ปลั๊กอินการตรวจสอบสิทธิ์ ปลั๊กอินควบคุมการเชื่อมต่อ ส่วนประกอบการตรวจสอบรหัสผ่าน และอื่นๆ อีกมากมาย) ที่ใช้การรักษาความปลอดภัย เช่นเดียวกับ FIPS (Federal Information Processing Standards 140-2 (FIPS 140-2)) บนฝั่งเซิร์ฟเวอร์ซึ่งใช้กับการดำเนินการเข้ารหัสลับที่ดำเนินการโดยเซิร์ฟเวอร์

นอกจากนี้คุณยังสามารถรับประกันความปลอดภัยเพิ่มเติมได้โดยปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัยของ MySQL/MariaDB สำหรับ Linux แต่เช่นเคย ตรวจสอบให้แน่ใจว่าคุณได้ปรับใช้การรักษาความปลอดภัยเครือข่ายและเซิร์ฟเวอร์ที่ดี เพื่อให้มั่นใจถึงความปลอดภัยของเซิร์ฟเวอร์ฐานข้อมูลรอบด้าน

ไคลเอนต์ MySQL และเครื่องมือ

MySQL มาพร้อมกับโปรแกรมไคลเอนต์หลายโปรแกรม เช่น ยูทิลิตีบรรทัดคำสั่งยอดนิยม: mysql, mysqladmin และ mysqldump สำหรับการจัดการฐานข้อมูล ในการเชื่อมต่อกับเซิร์ฟเวอร์ MySQL ไคลเอนต์สามารถใช้หลายโปรโตคอล เช่น ซ็อกเก็ต TCP/IP บนแพลตฟอร์มใดๆ หรือซ็อกเก็ตโดเมน UNIX บนระบบ UNIX เช่น Linux

ในการเชื่อมต่อและดำเนินการคำสั่ง MySQL จากภาษาหรือสภาพแวดล้อมอื่น มีตัวเชื่อมต่อ MySQL ตามมาตรฐาน (ที่ให้การเชื่อมต่อกับเซิร์ฟเวอร์ MySQL สำหรับแอปพลิเคชันไคลเอนต์) และ API สำหรับภาษาการเขียนโปรแกรมยอดนิยมส่วนใหญ่ (เพื่อให้การเข้าถึงทรัพยากร MySQL ระดับต่ำโดยใช้ โปรโตคอล MySQL แบบคลาสสิกหรือโปรโตคอล X)

ตัวเชื่อมต่อและ API ที่ได้รับความนิยมบางตัว ได้แก่ ODBC (การเชื่อมต่อฐานข้อมูลแบบเปิด), Java (JDBC – การเชื่อมต่อฐานข้อมูล Java), Python, PHP, Node.js, C++, Perl, Ruby และ Native C และอินสแตนซ์ MySQL แบบฝัง

คุณจะพบว่าบทความเกี่ยวกับ MySQL ต่อไปนี้มีประโยชน์:

  • วิธีติดตั้ง MySQL 8 ล่าสุดบน Debian 10
  • 15 เคล็ดลับการปรับแต่งและเพิ่มประสิทธิภาพ MySQL/MariaDB ที่มีประโยชน์
  • เคล็ดลับที่เป็นประโยชน์ในการแก้ไขข้อผิดพลาดทั่วไปใน MySQL
  • วิธีรีเซ็ตรหัสผ่านรูทใน MySQL 8.0
  • วิธีการเปลี่ยนพอร์ต MySQL/MariaDB เริ่มต้นใน Linux
  • 4 เครื่องมือ Commandline ที่มีประโยชน์ในการตรวจสอบประสิทธิภาพ MySQL ใน Linux