มายเอสคิวเอล

MySQL (มายเอสคิวแอล) เป็นระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (Relational Database Management System) โดยใช้ภาษา SQL แม้ว่า MySQL เป็นซอฟต์แวร์โอเพนซอร์ส แต่แตกต่างจากซอฟต์แวร์โอเพนซอร์สทั่วไป โดยมีการพัฒนาภายใต้บริษัท MySQL AB ในประเทศสวีเดน โดยจัดการ MySQL ทั้งในแบบที่ให้ใช้ฟรี และแบบที่ใช้ในเชิงธุรกิจ
เมื่อปี ค.ศ. 2008 บริษัทซันไมโครซิสเต็มส์ (Sun Microsystems, Inc.) เข้าซื้อกิจการของ MySQL AB  และ บริษัทออราเคิลคอร์ปอเรชัน (Oracle Corporation) ได้เข้าซื้อกิจการของบริษัทซันไมโครซิสเต็มส์ อีกทอดหนึ่ง เมื่อปี ค.ศ. 2010
MySQL สร้างขึ้นโดยชาวสวีเดน 2 คน และชาวฟินแลนด์ ชื่อ David Axmark, Allan Larsson และ Michael "Monty" Widenius.
ชื่อ "MySQL" อ่านออกเสียงว่า "มายเอสคิวเอล"   หรือ "มายเอสคิวแอล" (ในการอ่านอักษร L ในภาษาไทย)  ซึ่งทางซอฟต์แวร์ไม่ได้อ่าน มายซีเควล หรือ มายซีควล เหมือนกับซอฟต์แวร์จัดการฐานข้อมูลตัวอื่น
== รุ่นของผลิตภัณฑ์ ==
รุ่นของผลิตภัณฑ์นั้นแบ่งออกมาได้สามสายการผลิต ได้แก่ เวอร์ชันใช้ฟรี เวอร์ชันการค้า และเวอร์ชันที่สนับสนุนกับผลิตภัณฑ์ SAP (MAX DB) ความแตกต่างคือเวอร์ชันคอมมิวนิตี้นั้นสามารถนำไปใช้งานได้ฟรีแต่ขาดการสนับสนุนหรือการช่วยเหลือเมื่อมีปัญหาเกิดขึ้น, เวอร์ชันที่เป็นคอมเมอร์เชียลนั้นให้บริการด้านความสนับสนุนเมื่อมีปัญหา (ซื้อบริการ) สรุปคร่าวๆ ประเภทดาต้าเบสให้เลือกใช้ดังนี้
MySQL เอนเทอร์ไพรส์ Enterprise
MySQL คลัสเตอร์ Cluster
MySQL Embedded
MySQL Community (opensource เวอร์ชัน)
=== ความสามารถที่เพิ่มขึ้น ===
ในเวอร์ชัน 5.0 มีความสามารถหลายอย่างที่สำคัญสำหรับระบบฐานข้อมูลขนาดใหญ่หรือระดับองค์กร (EnterPrise Feature) เช่น Store Procedure,  database trigger, database view, database schema ซึ่งได้มีการปรับเพิ่มประสิทธิภาพในส่วนของตารางและการทำดัชนี (index) ขึ้นมาอีก ปัจจุบันเวอร์ชัน community หรือเวอร์ชันที่เสถียร (stable) 5.0 และเวอร์ชันทดสอบคือ 5.1 beta release และ 5.2 Alpha
ตั้งแต่เวอร์ชัน 5.1 เริ่มสนับสนุนการทำ Parttion Database, ตารางเวลาสำหรับเหตุการณ์ต่างๆ (Event schedule)111
=== ประเภทการจัดเก็บข้อมูล (Database Storage Engine) ที่สนับสนุน  ===
MyISAM  ค่าปกติ (default)
InnoDB สนับสนุนการทำ ทรานแซคชั่น (transaction) แบบ ACID
Memory การจัดเก็บในหน่วยความจำ ใช้เป็นตารางชั่วคราวเพื่อความรวดเร็ว เนื่องจากเก็บไว้ในหน่วยความจำ ทำให้มีความเร็วในการทำงานสูงมาก
Merge เป็นการรวม Table หลาย ๆ ตัวให้แสดงผล หรือแก้ไข เสมือนเป็นข้อมูลจาก Table เดียว
Archive เหมาะสำหรับการจัดเก็บข้อมูลพวก log file,ข้อมูลที่ไม่ต้องมีการ คิวรี่ (query) หรือใช้บ่อยๆ เช่น log file เพื่อประโยชน์ในการตรวจสอบย้อนหลัง (Security Audit Information)
Federated สำหรับการจัดเก็บแบบปลายทาง (remote server) แทนที่จะเป็นการจัดเก็บแบบ local เหมือนการจัดเก็บ (Storage) แบบอื่นๆ
NDB สำหรับการจัดเก็บแบบ คลัสเตอร์ (cluster)
CSV เก็บข้อมูลจาก Text ไฟล์โดยอาศัยเครื่องหมาย คอมมา (comma) เป็นตัวแบ่งฟิลด์
Blackhole
Example
=== ชนิดของข้อมูลที่สนับสนุน ===
ชนิดข้อมูลที่ MySQL สนับสนุนแบ่งเป็นสามประเภทหลักใหญ่ๆ
ชนิดข้อมูลที่เป็นตัวเลข
* BIT (มีใช้ได้กับ MyISAM, InnoDB, Memory)
* TINYINT
* SMALLINT
* MEDIUMINT
* INT
* BIGINT
* Float
ชนิดข้อมูลที่เกี่ยวกับวันที่และเวลา
* DATETIME
* DATE
* TIMESTAMP
* TIME
* YEAR
ชนิดข้อมูลที่เกี่ยวกับตัวอักษร
* CHAR
* VARCHAR
* BINARY
* VARBINARY
* BLOB
* TEXT
* ENUM
* SET
== การใช้งาน ==
MySQL เป็นที่นิยมใช้กันมากสำหรับฐานข้อมูลสำหรับเว็บไซต์ เช่น มีเดียวิกิ และ phpBB และนิยมใช้งานร่วมกับภาษาโปรแกรม PHP ซึ่งมักจะได้ชื่อว่าเป็นคู่ จะเห็นได้จากคู่มือคอมพิวเตอร์ต่างๆ ที่จะสอนการใช้งาน MySQL และ PHP ควบคู่กันไป นอกจากนี้ หลายภาษาโปรแกรมที่สามารถทำงานร่วมกับฐานข้อมูล MySQL ซึ่งรวมถึง ภาษาซี ซีพลัสพลัส ปาสคาล ซีชาร์ป ภาษาจาวา ภาษาเพิร์ล พีเอชพี ไพทอน รูบี และภาษาอื่น ใช้งานผ่าน API สำหรับโปรแกรมที่ติดต่อผ่าน ODBC หรือ ส่วนเชื่อมต่อกับภาษาอื่น (database connector) เช่น เอเอสพี สามารถเรียกใช้ MySQL ผ่านทาง MyODBC,ADO,ADO.NET เป็นต้น
=== โปรแกรมช่วยในการจัดการฐานข้อมูล และ ทำงานกับฐานข้อมูล ===
ในการจัดการฐานข้อมูล MySQL คุณสามารถใช้โปรแกรมแบบ command-line เพื่อจัดการฐานข้อมูล (โดยใช้คำสั่ง: mysql และ mysqladmin เป็นต้น) หรือจะดาวน์โหลดโปรแกรมจัดการฐานข้อมูลแบบ GUI จากเว็บไซต์ของ MySQL ซึ่งคือโปรแกรม: MySQL Administrator และ MySQL Query Browser เป็นต้น
=== ส่วนเชื่อมต่อกับภาษาการพัฒนาอื่น (database connector) ===
มีส่วนติดต่อ (interface) เพื่อเชื่อมต่อกับภาษาในการพัฒนา อื่นๆ เพื่อให้เข้าถึงฟังก์ชันการทำงานกับฐานข้อมูล MySQL ได้เช่น ODBC (Open Database Connector) อันเป็นมาตรฐานกลางที่กำหนดมาเพื่อให้ใช้เป็นสะพานในการเชื่อมต่อกับโปรแกรมหรือระบบอื่นๆ เช่น MyODBC อันเป็นไดรเวอร์เพื่อใช้สำหรับการเชื่อมต่อในระบบปฏิบัติการวินโดว์, JDBC คลาสส่วนเชื่อมต่อสำหรับ Java เพื่อใช้ในการติดต่อกับ MySQL  และมี API (Application Programming Interface) ต่างๆมีให้เลือกใช้มากมายในการที่เข้าถึง MySQL โดยไม่ขึ้นอยู่กับภาษาการพัฒนาใดภาษาหนึ่ง
นอกเหนือจาก ตัวเชื่อมต่อกับภาษาอื่น (Connector) ที่ได้กล่าวมาแล้ว ยังมี  API  ที่สนับสนุนในขณะนี้คือ
DBI สำหรับการเชื่อมต่อกับ ภาษา perl
Ruby สำหรับการเชื่อมต่อกับ ภาษา ruby
Python สำหรับการเชื่อมต่อกับภาษา python
.NET สำหรับการเชื่อมกับภาษา .NET framework
MySQL++ สำหรับเชื่อมต่อกับภาษา C++
Ch สำหรับการเชื่อมต่อกับ  Ch (C/C++ interpreter)
PHP สำหรับการเชื่อมต่อกับภาษาPHP
ยังมีโปรแกรมอีกตัว เป็นโปรแกรมบริหารพัฒนาโดยผู้อื่น ซึ่งใช้กันอย่างแพร่หลายและนิยมกันเขียนในภาษาพีเอชพี เป็นโปรแกรมเว็บแอปพลิเคชัน ชื่อ phpMyAdmin
ทั้ง  MySQL server และ client libraries ถูกเผยแพร่ในลิขสิทธิ์ 2 แบบ ผู้ใช้สามารถเลือกได้ระหว่างลิขสิทธิ์ GNU General Public License  หรือลิขสิทธิ์