MySQL เลือกเวอร์ชันและวิธีค้นหาเวอร์ชัน MySQL MySQL เลือกเวอร์ชันและวิธีค้นหาเวอร์ชัน MySQL Ubuntu ค้นหาเวอร์ชัน mysql

  • ความปลอดภัย
  • คุณภาพ
  • ราคา
  • ความน่าเชื่อถือ
  • ความเรียบง่าย
  • ความมั่นคง
  • สนับสนุน
  • ความเร็ว
  • แผงควบคุม

ส่วนช่วยเหลือคำถามที่พบบ่อย

รีวิวโฮสติ้งวิดีโอ

วิธีอัพโหลดเซิร์ฟเวอร์ไปยัง FTP

ความสนใจ:คุณจะต้องอัปโหลด 3 โฟลเดอร์เท่านั้น ( filterscripts, gamemodes, scriptfiles) และ 1 ไฟล์ เซิร์ฟเวอร์.cfgจากนั้นเขียนบรรทัดใน server.cfg (หากไม่มี) ปลั๊กอิน streamer.so sscanf.so CRP.so mysql.so คุณต้องตรวจสอบให้แน่ใจด้วยว่ามี mod ในรูปแบบ .amx อยู่ในโฟลเดอร์ gamemodes และ ชื่อของ mod เขียนอย่างถูกต้องใน server.cfg (config)

ไคลเอนต์ FileZilla
เข้า เจ้าภาพ ตัวอย่าง: 194.58.88.74 - เข้าสู่ระบบ *****- รหัสผ่าน******** ห้ามเข้าไปในสนามพอร์ตเด็ดขาด!!!

ความสนใจ:หากไม่มีการเชื่อมต่อ FTP ผ่าน FileZilla ให้ดาวน์โหลด ผู้บัญชาการรวมและเชื่อมต่อผ่านมัน!

ผู้บัญชาการรวม- สำหรับการอัพโหลดไฟล์ตัวอย่างของคุณไปยัง FTP
เข้า เจ้าภาพ ตัวอย่าง: 194.58.88.74 - เข้าสู่ระบบ 173104911- รหัสผ่าน g1KdN7D3q

เข้าได้ที่ไหน? คำตอบ: เรียกใช้ Total Commander > เครือข่าย > เชื่อมต่อกับเซิร์ฟเวอร์ FTP > เพิ่ม จากนั้นป้อนข้อมูลของคุณตามที่แสดงในภาพหน้าจอตัวอย่าง:

ไม่ทราบม็อด

หากฟิลด์โหมดเกมของคุณระบุว่า "ไม่ทราบ" ให้ทำตามขั้นตอนเหล่านี้:
1. ขั้นแรก ปิดเซิร์ฟเวอร์ของคุณ
2.ไปที่แผงควบคุมในแท็บตัวเลือกเซิร์ฟเวอร์ > การตั้งค่า
3.เพิ่มบรรทัดด้านล่าง ปลั๊กอิน streamer.so sscanf.so CRP.so mysql.so
เปลี่ยนชื่อปลั๊กอินหากไม่รู้จัก mod เช่น: ปลั๊กอิน streamer.so sscanf.so CRP.so mysql.so บนปลั๊กอิน streamer2.7.2.so sscanf.so CRP.so mysqlR34.so
*โฟลเดอร์ปลั๊กอินจะถูกติดตั้งตามค่าเริ่มต้นและมีปลั๊กอินที่จำเป็นทั้งหมด
*คุณสามารถติดตั้งปลั๊กอินใดๆ ของคุณบน FTP จากนั้นลงทะเบียนปลั๊กอินเหล่านั้นในแผงควบคุมในส่วนการตั้งค่า ปลั๊กอินที่จำเป็นสำหรับเซิร์ฟเวอร์
*หากต้องการคอมไพล์และอัปเดตสตรีมเมอร์ ให้ใช้โปรแกรม PAWNO
4.ในโฟลเดอร์ ปลั๊กอินควรมีปลั๊กอินที่มีส่วนขยาย ดังนั้นสำหรับ Linux: เลือกปลั๊กอินที่ต้องการสำหรับเซิร์ฟเวอร์ของคุณและเขียนชื่อลงในการตั้งค่าพาเนลในบรรทัด ปลั๊กอิน ตัวอย่าง: ปลั๊กอิน streamer.so
5.อย่าลืมว่าเราใช้ OS Linux ซึ่งหมายถึงในการตั้งค่าแผงควบคุม
เขียนบรรทัดสำหรับปลั๊กอินปลั๊กอิน: streamer.so sscanf.so CRP.so พร้อมส่วนขยาย .ดังนั้นมิฉะนั้นเซิร์ฟเวอร์ของคุณจะทำงานไม่ถูกต้อง

สำหรับ ระบบปฏิบัติการ ลินุกซ์ลงทะเบียนใน server.cfg เป็น: ปลั๊กอิน streamer.so sscanf.so CRP.so mysql.so antiattack.so
หนึ่งในปลั๊กอิน libmysqlclient.so.15 libmysqlclient.so.16 libmysqlclient_r.so.16 ควรอยู่ในโฟลเดอร์เซิร์ฟเวอร์

ข้อควรสนใจ: หากเซิร์ฟเวอร์ทำงานอย่างถูกต้องบน Windows OS ไม่ได้หมายความว่าเซิร์ฟเวอร์จะทำงานอย่างถูกต้องบน Linux

จะทำอย่างไรถ้าหลังจากกรอกแล้วไม่มีไอคอน, บ้าน, ธุรกิจ ฯลฯ?

เขียน streamer2.5.so ในการกำหนดค่า บันทึกและรีบูตเซิร์ฟเวอร์
ตัวอย่าง:

ปลั๊กอิน streamer2.5.so sscanf.so CRP.so mysql.so regex.so

จะหาเวอร์ชั่นปลั๊กอินได้อย่างไร?
บน คอมพิวเตอร์ท้องถิ่นเริ่มต้นเซิร์ฟเวอร์ จากนั้นดูในบันทึก เวอร์ชันปลั๊กอินจะถูกระบุที่นั่น และลงทะเบียนเวอร์ชันนี้บนโฮสต์ในการกำหนดค่าเซิร์ฟเวอร์
ตัวอย่าง:


ปลั๊กอินเซิร์ฟเวอร์
--------------
กำลังโหลดปลั๊กอิน: streamer.so
*** Streamer Plugin v2.6.1 โดยโหลดแบบไม่ระบุตัวตน ***

ซึ่งหมายความว่าคุณต้องระบุเวอร์ชัน streamer2.6.1.so ในการกำหนดค่าเซิร์ฟเวอร์

ช่วยเหลือ - การเชื่อมต่อ mod กับเซิร์ฟเวอร์ mysql

เปิด mod (file.PWN) ด้วยโปรแกรม PAWNO ระบุข้อมูลของคุณจากส่วน MYSQL


ตัวอย่าง:

#define mysql_host "host.site"
#define mysql_db "s20000"
#define mysql_user "s20000"
#define mysql_pass "lazyrich"

หลังจากรวบรวม mod ใน .AMX และนำเข้าแบบสอบถาม sql ลงในฐานข้อมูล

ความสนใจ! หากไม่ทราบปรากฏขึ้นในระหว่างกระบวนการคอมไพล์ ม็อดจะไม่ถูกตรวจพบ
วิธีแก้ไขคือค้นหาสคริปต์เกอร์เพื่อแก้ไขข้อผิดพลาด

หากต้องการเปลี่ยนชื่อของ mod หรือพารามิเตอร์ชื่อโฮสต์ คุณต้องเข้าสู่แผงควบคุมเซิร์ฟเวอร์ในส่วน -การตั้งค่า (นี่คือการกำหนดค่าเซิร์ฟเวอร์ sever.cfg) และในบรรทัดชื่อโฮสต์ทางด้านขวา ให้เขียนชื่อเซิร์ฟเวอร์ของคุณ ตัวอย่างเช่น: *** เซิร์ฟเวอร์ของเราดีที่สุด * **
บันทึกข้อมูลในแผงควบคุมและอย่าลืมรีสตาร์ทเซิร์ฟเวอร์เพื่อให้พารามิเตอร์ใหม่มีผล
หากชื่อของคุณไม่เปลี่ยนแปลงหลังจากทั้งหมดข้างต้น คุณจะต้องเปลี่ยนชื่อใน mod ด้วยโปรแกรม PAWNO และนี่คือเรื่องราวที่แตกต่างไปจากเดิมอย่างสิ้นเชิงบนอินเทอร์เน็ต

เซิร์ฟเวอร์.cfg









คำถามที่ 1 – เราไม่เปลี่ยนแปลง

maxnpc 10 – เราไม่เปลี่ยนแปลง
onfoot_rate 40 – ห้ามเปลี่ยนแปลง
incar_rate 40 – เราไม่เปลี่ยนแปลง
weapon_rate 40 – ห้ามเปลี่ยนแปลง




- บรรทัดปลั๊กอินมาตรฐานสำหรับการกำหนดค่า samp

วิธีมอบบัญชีผู้ดูแลระบบให้กับตัวเอง

ไปที่เซิร์ฟเวอร์ในโฟลเดอร์ ไฟล์สคริปต์ค้นหาของคุณ นิค
ตัวอย่าง: Aldo_ Mangano เปิดไฟล์โดยใช้ Notepad
ค้นหาบรรทัด ระดับผู้ดูแลระบบระบุ 1999 จากนั้นบันทึกไฟล์และรีสตาร์ทเซิร์ฟเวอร์

เซิร์ฟเวอร์.cfg

echo กำลังดำเนินการกำหนดค่าเซิร์ฟเวอร์...
lanmode 0 – 0 – เกมผ่านอินเทอร์เน็ต, 1 – เกมผ่านเครือข่ายท้องถิ่น
rcon_password 123 – “123” – รหัสผ่านจากแผงผู้ดูแลระบบบนเซิร์ฟเวอร์
maxplayers 50 – ตามที่คุณเข้าใจแล้ว จำนวนสูงสุดคือผู้เล่น ในเวอร์ชัน 0.3a สูงสุด 500
พอร์ต 7777 – พอร์ตที่แสดงต่อท้ายที่อยู่เซิร์ฟเวอร์ของคุณ (เปิดเผยตัวเองบนโฮสติ้ง)
ชื่อโฮสต์ NameServer – ชื่อของเซิร์ฟเวอร์ในอนาคตของคุณ
โหมด gamemode0 - ม็อดเกมสำหรับเซิร์ฟเวอร์ในอนาคตของคุณ เพิ่มเติมเกี่ยวกับเรื่องนี้ด้านล่าง...
ประกาศ 0 – 1 เซิร์ฟเวอร์ปรากฏในแท็บอินเทอร์เน็ต / 0 ไม่สามารถมองเห็นได้
คำถามที่ 1 – เราไม่เปลี่ยนแปลง
ไซต์ weburl – ไซต์เซิร์ฟเวอร์ หากมี
maxnpc 10 – เราไม่เปลี่ยนแปลง
onfoot_rate 40 – ห้ามเปลี่ยนแปลง
incar_rate 40 – เราไม่เปลี่ยนแปลง
weapon_rate 40 – ห้ามเปลี่ยนแปลง
stream_distance 300.0 – ห้ามเปลี่ยนแปลง
stream_rate 1,000 – ห้ามเปลี่ยนแปลง
รหัสผ่าน - your_password (เซิร์ฟเวอร์พร้อมรหัสผ่าน)
ภาษารัสเซีย - แผนที่สำหรับ 0.3.7 แทนที่แผนที่
ปลั๊กอิน streamer.so sscanf.so CRP.so mysql.so regex.so dc_cmd.so CVector.so Nativechecker.so- บรรทัดปลั๊กอินมาตรฐานสำหรับการกำหนดค่า samp

ใน MySQL เลือกเวอร์ชัน()— แบบสอบถามที่ส่งคืนชื่อของแพ็คเกจที่ใช้และเวอร์ชัน ชื่ออาจเป็น MySQL เองหรือทางแยกซึ่งพัฒนาอย่างอิสระ - MaraiDB ความแตกต่างระหว่างแพ็คเกจจะไม่สังเกตเห็นได้ชัดเจนเมื่อแก้ไขปัญหาส่วนใหญ่ MySQL 5.6 ตรงกับ MaraiDB 10

MySQL เลือกเวอร์ชันและวิธีค้นหา เวอร์ชัน MySQL

คุณสามารถค้นหาเวอร์ชันได้หลายวิธี วิธีที่ง่ายที่สุดไม่จำเป็นต้องรู้รหัสผ่านผู้ใช้เซิร์ฟเวอร์ฐานข้อมูล เพียงเข้าสู่ระบบผ่าน SSH และเรียกใช้ mysql --version

mysql Ver 14.14 Distrib 5.5.55 สำหรับ debian-linux-gnu (x86_64) โดยใช้ readline 6.3

หากต้องการใช้วิธีการที่ให้ไว้ในชื่อ คุณต้องส่งคำขอ SQL เพื่อดำเนินการนี้ โดยเข้าสู่ระบบคอนโซล (คุณสามารถทำได้โดยใช้สคริปต์)

ใส่รหัสผ่าน:
ยินดีต้อนรับสู่การตรวจสอบ MySQL คำสั่งลงท้ายด้วย ; หรือ\ก.
รหัสการเชื่อมต่อ MySQL ของคุณคือ 41
เวอร์ชันเซิร์ฟเวอร์: 5.5.55-0ubuntu0.14.04.1 (Ubuntu)

ลิขสิทธิ์ (c) 2000, 2017, Oracle และ/หรือบริษัทในเครือ สงวนลิขสิทธิ์.

Oracle เป็นเครื่องหมายการค้าจดทะเบียนของ Oracle Corporation และ/หรือของบริษัท
บริษัทในเครือ ชื่ออื่นๆ อาจเป็นเครื่องหมายการค้าของตน
เจ้าของ

พิมพ์ "ช่วยเหลือ" หรือ "\h" เพื่อขอความช่วยเหลือ พิมพ์ "\c" เพื่อล้างคำสั่งอินพุตปัจจุบัน

ข้อมูลที่จำเป็นมีอยู่ในเอาต์พุตที่ปรากฏขึ้นหลังจากการอนุญาตสำเร็จ ในกรณีนี้ จะใช้ MySQL Server เวอร์ชัน 5.5.55-0

นอกจากนี้ เมื่ออยู่ในคอนโซลเซิร์ฟเวอร์ฐานข้อมูล คุณสามารถขอเวอร์ชันได้ดังต่อไปนี้:

+————————-+
- รุ่น() |
+————————-+
- 5.5.55-0ubuntu0.14.04.1 |
+————————-+
1 แถวในชุด (0.00 วินาที)

พิจารณาแล้วได้ข้อมูลครบถ้วนเท่าเทียมกันทุกกรณี

อ่านบทความชุดที่อธิบายพื้นฐานการทำงานกับ MySQL ()

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

การเปลี่ยนเวอร์ชันเซิร์ฟเวอร์ฐานข้อมูลเป็น Debian

1) การใช้ยูทิลิตี้ mysqldump จะมีการสร้างดัมพ์ของตารางทั้งหมด (รวมถึงตารางบริการ)

2) แพ็คเกจจะถูกลบออก apt-get ลบ mysql-server* && apt-get ล้าง mysql-server*คุณต้องลบ /var/lib/mysql และ /etc/mysql หลังจากทำการคัดลอกด้วย

3) พื้นที่เก็บข้อมูลที่แสดงบนเว็บไซต์อย่างเป็นทางการถูกเพิ่มใน /etc/apt/source.list (เช่น สำหรับ MariaDB 10 บน Debian 8) ข้อมูลจะได้รับการอัปเดต ฉลาดรับการปรับปรุง

3) ผ่านด้วย ฉลาดรับมีการติดตั้งแพ็คเกจใหม่ จากนั้นจึงโหลดดัมพ์ฐานข้อมูล

คุณควรมีสำเนาไว้เสมอในกรณีที่เกิดสถานการณ์ที่ไม่คาดฝัน สำหรับ รุ่นที่แตกต่างกันมีการใช้คำสั่งที่แตกต่างกัน ไฟล์การกำหนดค่าและอาจต้องมีการแก้ไขด้วยตนเอง

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

ขั้นแรก คุณต้องตัดสินใจว่าคุณต้องการรุ่นทดลองล่าสุดหรือเวอร์ชันเสถียรล่าสุด:

  • หากคุณกำลังจะใช้ MySQL เป็นครั้งแรก หรือกำลังพยายามพอร์ต MySQL ไปยังระบบที่ไม่มีการแจกแจงแบบไบนารี โดยทั่วไปเราแนะนำให้เริ่มต้นด้วยเวอร์ชันเสถียร (ปัจจุบันคือเวอร์ชัน 3.23) โปรดทราบว่า MySQL รีลีสทั้งหมดได้รับการทดสอบโดยใช้เกณฑ์มาตรฐาน MySQL และชุดทดสอบที่ครอบคลุมก่อนรีลีสแต่ละครั้ง (แม้แต่รุ่นทดลองด้วยซ้ำ)
  • หากคุณกำลังทำงานกับระบบเก่าและต้องการอัปเกรด แต่ต้องการหลีกเลี่ยงความไม่สอดคล้องที่อาจเกิดขึ้นระหว่างการอัพเกรด คุณจะต้องแทนที่ด้วยเวอร์ชันใหม่ล่าสุดในสาขาเดียวกับที่คุณใช้ (โดยที่หมายเลขเวอร์ชันล่าสุดเท่านั้นคือ ใหม่กว่าของคุณ) ในเวอร์ชันดังกล่าว เราพยายามแก้ไขเฉพาะข้อผิดพลาดร้ายแรงและทำการเปลี่ยนแปลงเพียงเล็กน้อยและปลอดภัยเท่านั้น

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

การติดตั้งจากแหล่งที่มาอาจจะดีกว่าในกรณีต่อไปนี้:

  • หากคุณต้องการติดตั้ง MySQL ในตำแหน่งที่ระบุอย่างชัดเจน (การส่งมอบไบนารี่มาตรฐานนั้น ``พร้อมที่จะทำงาน'' ทุกที่ แต่คุณอาจต้องการความยืดหยุ่นมากกว่านี้)
  • เพื่อตอบสนองความต้องการของผู้ใช้ที่แตกต่างกัน เราจึงจัดเตรียมไบนารีเวอร์ชันที่แตกต่างกันสองเวอร์ชัน: เวอร์ชันหนึ่งคอมไพล์ด้วยตัวจัดการตารางที่ไม่ใช่ธุรกรรม (รหัสไบนารี่ขนาดเล็กและรวดเร็ว) และเวอร์ชันที่สองกำหนดค่าด้วยความสามารถในการขยายที่สำคัญที่สุด เช่น ตารางการรับรู้ธุรกรรม ทั้งสองเวอร์ชันรวบรวมจากซอร์สโค้ดเดียวกัน ไคลเอ็นต์เนทิฟ MySQL ทั้งหมดสามารถเชื่อมต่อกับทั้งสองเวอร์ชันได้ การแจกแจงไบนารีเวอร์ชัน MySQL Extended ถูกทำเครื่องหมายด้วยส่วนต่อท้าย -max และได้รับการกำหนดค่าด้วยตัวเลือกเดียวกันกับ mysqld-max ดูหัวข้อ 4.7.5 mysqld-max ซึ่งเป็นเซิร์ฟเวอร์ขยาย mysqld หากคุณต้องการใช้แพ็คเกจ MySQL-Max RPM คุณต้องติดตั้งแพ็คเกจ MySQL RPM มาตรฐานก่อน
  • หากคุณต้องการกำหนดค่า mysqld ด้วยคุณสมบัติเพิ่มเติมบางอย่างที่ไม่มีอยู่ในการแจกแจงแบบไบนารีมาตรฐาน ด้านล่างนี้คือรายการตัวเลือกเพิ่มเติมทั่วไปที่คุณอาจต้องการใช้:
    • --with-innodb
    • --with-เบิร์กลีย์-db
    • --with-raid
    • --with-libwrap
    • --with-named-z-lib (ทำได้สำหรับการแจกแจงแบบไบนารี่)
    • --with-debug[=เต็ม]
  • ตามค่าเริ่มต้น การแจกแจงแบบไบนารีมักจะคอมไพล์พร้อมรองรับการเข้ารหัสทั้งหมด และควรทำงานบนโปรเซสเซอร์ที่แตกต่างจากตระกูลโปรเซสเซอร์เดียวกัน หากคุณต้องการเซิร์ฟเวอร์ MySQL ที่เร็วขึ้น คุณสามารถคอมไพล์ใหม่เพื่อรองรับการเข้ารหัสเดียวที่คุณต้องการ ใช้คอมไพเลอร์ที่ดีกว่า (เช่น pgcc) หรือใช้ตัวเลือกคอมไพเลอร์ที่ปรับให้เหมาะสมที่สุดสำหรับโปรเซสเซอร์ของคุณ
  • หากคุณพบข้อบกพร่องและรายงานไปยังทีมพัฒนา MySQL คุณควรส่งแพตช์ที่ควรใช้กับการกระจายซอร์สโค้ดเพื่อแก้ไขข้อบกพร่อง
  • หากคุณต้องการอ่าน (และ/หรือแก้ไข) ซอร์สโค้ด MySQL (ใน C และ C++) คุณต้องมีการแจกจ่ายซอร์สโค้ด ซอร์สโค้ดเป็นเอกสารที่ดีที่สุดเสมอ การแจกแจงแหล่งที่มายังมีการทดสอบและตัวอย่างมากกว่าการแจกแจงแบบไบนารี

ระบบการตั้งชื่อของ MySQL ใช้หมายเลขรุ่นซึ่งประกอบด้วยตัวเลขสามตัวและส่วนต่อท้าย ตัวอย่างเช่น รุ่น mysql-3.21.17-beta จะถูกตีความดังนี้:

  • ตัวเลขตัวแรก (3) อธิบายรูปแบบไฟล์ เวอร์ชัน 3 ทั้งหมดมีรูปแบบไฟล์เหมือนกัน
  • ตัวเลขตัวที่สอง (21) แสดงถึงระดับเอาต์พุต มักจะมีทางเลือกสองทาง อันหนึ่งแสดงถึงการเปิดตัวสาขาที่เสถียร (ปัจจุบันคือ 23) และอันที่สองแสดงถึงสาขาทดลอง (ปัจจุบันคือ 4.0) โดยทั่วไปแล้วทั้งสองสาขาจะเสถียร แต่เวอร์ชันทดลองอาจมีข้อบกพร่องบางประการ อาจขาดเอกสารประกอบสำหรับคุณสมบัติใหม่ หรืออาจไม่คอมไพล์ในบางระบบ
  • หมายเลขที่สาม (17) คือหมายเลขเวอร์ชันภายในระดับการเปิดตัว จำนวนนี้จะเพิ่มขึ้นสำหรับการแจกจ่ายใหม่แต่ละครั้ง มักจะสมเหตุสมผลที่จะเลือกมากที่สุด เวอร์ชันล่าสุดสำหรับระดับการปล่อยที่เลือก
  • ส่วนต่อท้าย (เบต้า) บ่งบอกถึงระดับความเสถียรของรุ่นที่กำหนด คำต่อท้ายต่อไปนี้เป็นไปได้:
    • alpha บ่งชี้ว่าการเผยแพร่ประกอบด้วยโค้ดใหม่ส่วนใหญ่ที่ไม่ได้ทดสอบ 100% ข้อผิดพลาดที่พบ (โดยปกติจะไม่มีเลย) ควรบันทึกไว้ในส่วน ``ข่าว'' ดูดูส่วน D ประวัติการเปลี่ยนแปลงและการอัพเดต MySQL รุ่นอัลฟ่าส่วนใหญ่ยังมีคำสั่งและส่วนขยายใหม่ด้วย ในขณะที่ดำเนินการรุ่นอัลฟ่า อาจมีการพัฒนาอย่างต่อเนื่องซึ่งเกี่ยวข้องกับการเปลี่ยนแปลงโค้ดที่สำคัญ แต่ทุกอย่างจะได้รับการทดสอบก่อนการเปิดตัว MySQL ทุกเวอร์ชันจะต้องไม่มีจุดบกพร่องที่ทราบ
    • เบต้าหมายความว่าโค้ดใหม่ทั้งหมดได้รับการทดสอบแล้ว ไม่มีการเพิ่มคุณสมบัติใหม่ที่อาจทำให้โค้ดเก่าเสียหาย ไม่ควรมีข้อผิดพลาดที่ทราบ เวอร์ชันจะเปลี่ยนจากอัลฟ่าเป็นเบต้าเมื่อไม่มีรายงานข้อบกพร่องที่สำคัญในเวอร์ชันอัลฟ่าเป็นเวลาอย่างน้อยหนึ่งเดือน และเราไม่ได้วางแผนที่จะเพิ่มคุณสมบัติใหม่ใด ๆ ที่อาจลดความน่าเชื่อถือของคำสั่งก่อนหน้า
    • gamma เป็นเวอร์ชันเบต้าที่ใกล้จะเสร็จสมบูรณ์และดูเหมือนว่าจะทำงานได้ดี มีการเพิ่มการแก้ไขเล็กน้อยเท่านั้น นี่คือสิ่งที่บริษัทอื่นๆ หลายแห่งเรียกว่าการเปิดตัว
    • หากไม่มีคำต่อท้ายก็หมายความว่าเวอร์ชันนี้วิ่งไปหลายตัว ระบบคอมพิวเตอร์ไม่มีข้อความแสดงข้อผิดพลาดยกเว้นข้อผิดพลาดเฉพาะแพลตฟอร์ม เนื่องจากอนุญาตให้แก้ไขข้อผิดพลาดร้ายแรงเท่านั้น นั่นคือเหตุผลที่เราเรียกรุ่นนี้ว่ามีเสถียรภาพ

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

โปรดทราบว่าการเผยแพร่ทั้งหมดได้รับการทดสอบด้วยการทดสอบต่อไปนี้เป็นอย่างน้อย:

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

ฟังก์ชั่น

รองรับฐานข้อมูลและความสามารถและข้อจำกัดของมันคืออะไร ดูส่วนที่ 5.1.4 MySQL Benchmark Suite

มีการทดสอบอื่น ซึ่งหมายความว่าเรากำลังใช้งาน MySQL เวอร์ชันล่าสุดในสภาพแวดล้อมการผลิตภายในของเราบนเครื่องอย่างน้อยหนึ่งเครื่อง เรามีข้อมูลมากกว่า 100 กิกะไบต์ที่จะใช้งานได้กับเวอร์ชันนี้ การเปิดตัว MySQL เวอร์ชัน 5.6.1 ที่เสถียร มีการทำงานมากมายในเวอร์ชันใหม่ ความพยายามหลักมุ่งเป้าไปที่การปรับปรุงประสิทธิภาพ ความสามารถในการขยายขนาด และความยืดหยุ่น กลไก InnoDB มีการเปลี่ยนแปลงที่สำคัญการปรับปรุงที่สำคัญ ได้แก่: การรองรับเครื่องมือค้นหาข้อความแบบเต็ม ความสามารถในการเข้าถึงข้อมูลผ่าน memcached API ประสิทธิภาพที่เพิ่มขึ้นในระหว่างการบันทึกข้อมูลอย่างเข้มข้น และความสามารถในการขยายขนาดที่เพิ่มขึ้นระหว่างการประมวลผล

จำนวนมาก

คำขอพร้อมกัน

นวัตกรรมอีกอย่างหนึ่งในเวอร์ชัน 5.6 คือความสามารถในการดำเนินการ DDL (Data Definition Language) โดยไม่ต้องใช้ DBMS ออฟไลน์และรบกวนการเข้าถึงตาราง ผู้ดูแลระบบสามารถดำเนินการที่เกี่ยวข้องกับการรีเซ็ตสคีมา การเพิ่มหรือลบคอลัมน์ข้อมูล หรือการเปลี่ยนชื่อคอลัมน์โดยไม่ต้องปิด DBMS ก่อนหน้านี้ คุณลักษณะดังกล่าวมีเฉพาะในผลิตภัณฑ์ NoSQL เท่านั้น

  • เมื่อเปรียบเทียบกับเวอร์ชัน 5.5 ผลิตภัณฑ์ใหม่สามารถทำงานได้บนเซิร์ฟเวอร์ 48 คอร์ เทียบกับ 32 คอร์ใน MySQL 5.5
  • ขณะนี้คุณสามารถสร้างดัชนีข้อความแบบเต็มสำหรับองค์กรใน InnoDB ได้แล้ว ค้นหาอย่างรวดเร็วตามรูปแบบคำในเนื้อหาข้อความที่เก็บไว้ในตาราง InnoDB ก่อนหน้านี้ การค้นหาข้อความแบบเต็มใช้ได้เฉพาะกับตาราง MyISAM เท่านั้น
  • การปรับปรุงประสิทธิภาพของเครื่องมือเพิ่มประสิทธิภาพแบบสอบถาม เพิ่มประสิทธิภาพกระบวนการในการเลือกชุดผลลัพธ์ของค่า การเรียงลำดับและดำเนินการแบบสอบถาม ใหม่ การเพิ่มประสิทธิภาพ Index Condition Pushdown (ICP) และ Batch Key Access (BKA) ช่วยให้สามารถเพิ่มประสิทธิภาพได้สูงสุด 280x ปริมาณงานตอบสนองคำขอบางอย่าง ประสิทธิภาพของการดำเนินการค้นหาเช่น “SELECT... FROM single_table... ORDER BY non_index_column LIMIT N;” ได้รับการเพิ่มขึ้น ประสิทธิภาพของแบบสอบถาม “SELECT... LIMIT N” ที่แสดงเพียงบางส่วนของแถวจากตัวอย่างขนาดใหญ่ได้รับการปรับปรุงแล้ว
  • เครื่องมือวินิจฉัยเครื่องมือเพิ่มประสิทธิภาพได้รับการขยาย เพิ่มการสนับสนุน EXPLAIN สำหรับการดำเนินการ INSERT, UPDATE และ DELETE ขณะนี้ผลลัพธ์ EXPLAIN สามารถส่งออกในรูปแบบ JSON ได้ โหมดใหม่การติดตามของเครื่องมือเพิ่มประสิทธิภาพทำให้คุณสามารถติดตามทุกการตัดสินใจที่เกิดขึ้นในระหว่างการเพิ่มประสิทธิภาพแบบสอบถาม
  • การเพิ่มประสิทธิภาพเพิ่มเติมสำหรับการดำเนินการของแบบสอบถามย่อย ซึ่งแบบสอบถามแบบซ้อนของแบบฟอร์ม "SELECT... FROM table1 WHERE... IN (SELECT... FROM table2 ...))" จะถูกแปลเป็นการนำเสนอที่เหมาะสมที่สุดในระยะนั้น ก่อนที่แบบสอบถามจะถูกดำเนินการโดยตรง เช่น แทนที่ด้วย JOIN ที่มีประสิทธิภาพมากขึ้น
  • ส่วนขยายของการนำระบบวินิจฉัย PERFORMANCE_SCHEMA ไปใช้ ซึ่งมีเครื่องมือระดับต่ำสำหรับตรวจสอบการดำเนินการของแบบสอบถามและเหตุการณ์ต่างๆ ระหว่างการทำงานของ DBMS PERFORMANCE_SCHEMA ให้ข้อมูลเชิงลึกโดยละเอียดเกี่ยวกับปัญหาคอขวดในการสืบค้นที่ใช้เวลานาน รวมถึงสถิติสรุปที่จัดกลุ่มตามการสืบค้น เธรด ผู้ใช้ โฮสต์ และออบเจ็กต์
  • การใช้งานกลไก InnoDB ได้รับการปรับปรุง มีประสิทธิภาพเพิ่มขึ้นเมื่อดำเนินธุรกรรมและระหว่างกิจกรรมโดยมีความโดดเด่นในการดำเนินการอ่านข้อมูล - ในบางสถานการณ์ความเร่งจะสูงถึง 230%
  • โหมดการจำลองแบบเลื่อนออกไป ซึ่งช่วยให้คุณจำลองข้อมูลไม่ได้ในทันที แต่ด้วยความล่าช้าบางประการ ซึ่งช่วยให้คุณสามารถป้องกันข้อผิดพลาดของผู้ปฏิบัติงานได้ (เช่น การลบเนื้อหาตารางโดยไม่ตั้งใจ)
  • การเพิ่มขนาดสูงสุดของไฟล์ที่มีบันทึกการเปลี่ยนแปลง (InnoDB Redo Log) จาก 4 GB เป็น 2 TB
  • การปรับปรุงความปลอดภัย: รองรับการระบุพารามิเตอร์การตรวจสอบสิทธิ์ในไฟล์ .mylogin.cnf ในรูปแบบที่เข้ารหัส การเพิ่มปลั๊กอิน sha256_password สำหรับจัดเก็บแฮชรหัสผ่านโดยใช้อัลกอริทึม SHA-256 การเพิ่มฟิลด์ที่มีเวลาหมดอายุของรหัสผ่านลงในตาราง mysql.user ฟังก์ชัน SQL ใหม่ VALIDATE_PASSWORD_STRENGTH() เพื่อประเมินความแข็งแกร่งของรหัสผ่าน
  • รองรับการใช้งานเซิร์ฟเวอร์ในโหมดอ่านอย่างเดียว (ตัวเลือก --innodb-read-only, InnoDB เท่านั้น)
  • รองรับการระบุเศษส่วนวินาทีในฟังก์ชัน TIME, DATETIME และ TIMESTAMP เพื่อระบุไมโครวินาที
  • รองรับตัวเลือก "--log", "--log-slow-queries", "--one-thread", "--safe-mode", "--skip-thread-priority", "--table- " ถูกยกเลิกแคชแล้ว"
คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับนวัตกรรมบน MySQL (ย่อมาจากระบบจัดการฐานข้อมูลเชิงสัมพันธ์ฟรี) ซึ่งเป็นเซิร์ฟเวอร์ฐานข้อมูลแบบมัลติเธรดขนาดกะทัดรัดที่โดดเด่นด้วยความเร็วสูง ความเสถียร และใช้งานง่าย

พัฒนาขึ้นครั้งแรกโดย TcX เพื่อแก้ไขปัญหาภายใน - การประมวลผลฐานข้อมูลขนาดใหญ่ที่เร็วที่สุดเท่าที่จะเป็นไปได้ ใช้ภายในตั้งแต่ปี 1996 บนเซิร์ฟเวอร์ที่มีฐานข้อมูลมากกว่า 40 ฐานข้อมูลที่มี 10,000 ตาราง ซึ่งมากกว่า 500 มีมากกว่า 7 ล้านแถว

ปัจจุบัน MySQL ได้รับการพัฒนาและสนับสนุนโดย Oracle Corporation ซึ่งซื้อกิจการ Sun Microsystems เมื่อวันที่ 27 มกราคม 2553 หลังจากนั้นได้รวม MySQL ไว้ในสายผลิตภัณฑ์ของตน ก่อนหน้านี้ (26 กุมภาพันธ์ 2551) Sun Microsystems จ่ายเงิน 1 พันล้านดอลลาร์เพื่อซื้อ MySQL AB ผลิตภัณฑ์นี้จัดจำหน่ายภายใต้สัญญาอนุญาตสาธารณะทั่วไปของ GNU และใบอนุญาตเชิงพาณิชย์ของตัวเอง นอกจากนี้ นักพัฒนายังสร้างฟังก์ชันการทำงานตามคำขอของผู้ใช้ที่ได้รับใบอนุญาต ต้องขอบคุณคำสั่งนี้ที่ทำให้กลไกการจำลองแบบปรากฏในเวอร์ชันแรกสุดเกือบทั้งหมด

MySQL เป็นที่สุด ทางออกที่ดีที่สุดสำหรับการใช้งานขนาดเล็กและขนาดกลาง แหล่งที่มาของเซิร์ฟเวอร์ได้รับการรวบรวมบนหลายแพลตฟอร์ม ความสามารถของเซิร์ฟเวอร์แสดงให้เห็นอย่างเต็มที่ที่สุดบนเซิร์ฟเวอร์ Unix ซึ่งรองรับการทำงานแบบมัลติเธรด ซึ่งช่วยเพิ่มประสิทธิภาพได้อย่างมาก รวมอยู่ในเซิร์ฟเวอร์ WAMP, AppServ, LAMP และในเซิร์ฟเวอร์แบบพกพาบิวด์ Denver, XAMPP โดยทั่วไปแล้ว MySQL จะถูกใช้เป็นเซิร์ฟเวอร์ที่เข้าถึงโดยไคลเอนต์ภายในเครื่องหรือระยะไกล แต่การแจกจ่ายนั้นมีไลบรารีแบ็คเอนด์ที่อนุญาตให้รวม MySQL ไว้ในโปรแกรมสแตนด์อโลน
ด้วยการรองรับประเภทตารางจำนวนมาก MySQL จึงค่อนข้างยืดหยุ่น ผู้ใช้สามารถเลือกทั้งตารางการค้นหาข้อความแบบเต็มของ MyISAM และตารางธุรกรรม InnoDB แต่ละรายการ นอกจากนี้ MySQL ยังมาพร้อมกับประเภทตาราง EXAMPLE พิเศษที่สาธิตวิธีการสร้างตารางประเภทใหม่ ด้วยเหตุนี้ เช่นเดียวกับสถาปัตยกรรมแบบเปิดและใบอนุญาต GPL จึงเป็นไปได้ที่จะเพิ่มประเภทตารางใหม่ให้กับ MySQL แทบไม่สิ้นสุด

เซิร์ฟเวอร์ MySQL ฟรีสำหรับการใช้งานที่ไม่ใช่เชิงพาณิชย์ มิฉะนั้นคุณจะต้องซื้อใบอนุญาต ซึ่งราคาปัจจุบันอยู่ที่ 190 ยูโร

การฟอร์กโค้ดต่างๆ ถูกสร้างขึ้นโดยชุมชนนักพัฒนา MySQL เช่น Drizzle, OurDelta, Percona Server และ MariaDB สาขาทั้งหมดนี้มีอยู่แล้วในช่วงที่ Sun เข้าซื้อกิจการโดย Oracle

การเกิดขึ้นของ MySQL

ก่อนปี 1994 ตลาดส่วนใหญ่ประกอบด้วยฐานข้อมูลที่ออกแบบมาเพื่อจัดการข้อมูลจำนวนมากและความสัมพันธ์ที่ซับซ้อน ซึ่งมีความสามารถที่หลากหลาย แต่ในขณะเดียวกันก็จำเป็นต้องใช้ทรัพยากรการประมวลผลจำนวนมาก ฐานข้อมูลเหล่านี้ประกอบด้วย Oracle, Informix และ Sybase ไม่มี DBMS ที่รองรับ SQL และมีราคาไม่แพงในเวลาเดียวกัน

บริษัทขนาดใหญ่และมหาวิทยาลัยสามารถซื้อระบบคอมพิวเตอร์ที่ทรงพลังได้ ในขณะที่องค์กรขนาดเล็กและผู้ใช้ใช้ฐานข้อมูลเดสก์ท็อปที่ไม่มีประสิทธิภาพ เช่น Postgres ซึ่งใช้ภาษา QUEL ที่แตกต่างกัน (PostQUEL) แต่น่าเสียดายที่ต้องใช้ทรัพยากรแบบเดียวกัน อะนาล็อกของมัน แต่ไม่ได้ให้ข้อได้เปรียบ โดยใช้ SQLเป็นภาษาคิวรี

จากนั้น David Hughes คนหนึ่ง (ซึ่งต่อมากลายเป็นที่รู้จักในชื่อ Bamby หลังจากเผยแพร่ผลงานของเขาบนอินเทอร์เน็ต) ซึ่งกำลังเขียนวิทยานิพนธ์ที่ Bond University (ออสเตรเลีย) ในเวลานั้นได้เริ่มพัฒนาโครงการ Minerva Network Management System - การตรวจสอบและควบคุม ระบบจากจุดหนึ่งหรือหลายจุดเหนือกลุ่มของระบบ องค์ประกอบหลักของโครงการคือการเป็นฐานข้อมูลเพื่อจัดเก็บข้อมูลเกี่ยวกับคอมพิวเตอร์ทุกเครื่องในเครือข่าย Hughes ตัดสินใจใช้ Postgres เป็นครั้งแรก อย่างไรก็ตาม เพื่อนร่วมงานแนะนำให้ใช้ SQL เป็นภาษาคิวรีสำหรับ Minerva เนื่องจาก SQL เป็นภาษาคิวรีที่ใช้กันมากที่สุด และเมื่อใช้ SQL Minerva ก็สามารถใช้งานได้ทุกที่ในโลกที่มี RDBMS ที่รองรับ SQL นี่เป็นแรงผลักดันให้เกิดการสร้าง MySQL

Hughes ตัดสินใจสร้างโปรแกรมด้วยตัวเองที่จะแปล SQL เป็น PostQUEL แบบเรียลไทม์ เขาเรียกโปรแกรมของเขาว่า miniSQL หรือ mSQL มันสกัดกั้นคำสั่ง SQL ที่ส่งโดย Minerva แปลงเป็น PostQUEL และส่งผลลัพธ์ไปยัง Postgres สถานการณ์นี้เหมาะกับฮิวจ์มาระยะหนึ่งแล้ว อย่างไรก็ตาม จากการเติบโตเพิ่มเติมของ Minerva เห็นได้ชัดว่าด้วยทรัพยากรที่มีอยู่อย่างจำกัด ทั้ง Postgres และ RDBMS ขนาดใหญ่อื่นๆ ก็ไม่สามารถรองรับชุดคุณลักษณะเล็กๆ น้อยๆ ที่ต้องการได้ ตัวอย่างเช่น เพื่อที่จะใช้ความสามารถในการเชื่อมต่อ Minerva กับฐานข้อมูลหลายฐานข้อมูลพร้อมกัน Postgres จำเป็นต้องมีการเปิดใช้งานเซิร์ฟเวอร์ฐานข้อมูลหลายอินสแตนซ์พร้อมกัน

เพื่อแก้ไขปัญหาเหล่านี้ Hughes ได้วิเคราะห์งานของ Minerva และปรากฎว่าข้อความค้นหาหลักที่สร้างโดย Minerva คือ: "insert", "delete" และ "select" เนื่องจาก Hughes มี mSQL ทำหน้าที่แปล SQL อยู่แล้ว เขาเพียงแต่ต้องสร้างเซิร์ฟเวอร์ฐานข้อมูลเพื่อให้เหมาะกับความต้องการของเขาเท่านั้น

และนี่คือจุดที่ Michael Monty Widenius ซึ่งถือเป็นผู้ประดิษฐ์ MySQL เข้ามามีบทบาท ในปี 1979 เขาได้พัฒนาเครื่องมือจัดการฐานข้อมูลชื่อ UNIREG ต่อมา UNIREG ได้รับการขยายเพื่อรองรับฐานข้อมูลขนาดใหญ่ และถูกเขียนใหม่ในหลายภาษา ในปี 1994 TcX เริ่มพัฒนาแอปพลิเคชัน www โดยใช้ UNIREG อย่างไรก็ตาม เนื่องจากมีค่าใช้จ่ายสูง UNIREG จึงไม่สามารถนำมาใช้สำหรับการสร้างเว็บเพจแบบไดนามิกได้สำเร็จ ดังนั้น Widenius จึงตัดสินใจติดต่อ Hughes ผู้เขียน mSQL เพื่อแนะนำให้เขาเชื่อมต่อ mSQL กับตัวจัดการ B+ ISAM ใน UNIREG อย่างไรก็ตาม Hughes มีความก้าวหน้าไปมากบนเส้นทางสู่ mSQL 2 และบริษัทได้ตัดสินใจสร้างเซิร์ฟเวอร์ฐานข้อมูลเพื่อให้เหมาะกับความต้องการ

TcX ใช้ UNIREG เป็นพื้นฐานและใช้ยูทิลิตี้ของบุคคลที่สามสำหรับ mSQL เขียน API สำหรับระบบของพวกเขา ซึ่งในตอนแรกคล้ายกับ API สำหรับ mSQL มาก อย่างไรก็ตาม การดำเนินการนี้อนุญาตให้ผู้ใช้ mSQL ที่ต้องการย้ายไปยังเซิร์ฟเวอร์ฐานข้อมูล TcX เพื่อทำการเปลี่ยนแปลงโค้ดเล็กน้อย ซอร์สโค้ดของฐานข้อมูลใหม่เป็นต้นฉบับโดยสมบูรณ์ ดังนั้นในเดือนพฤษภาคม ปี 1995 บริษัทจึงมีฐานข้อมูล MySQL 1.0 ที่ตอบสนองความต้องการของบริษัทได้อย่างเต็มที่

ในปี 1995 David Oxmark ซึ่งทำงานให้กับ Detron HB และเป็นหุ้นส่วนธุรกิจของบริษัท ได้เริ่มเชิญ TcX อย่างแข็งขันให้เผยแพร่ MySQL DBMS ผ่านทางอินเทอร์เน็ต เดวิดยังมีส่วนร่วมในการจัดทำเอกสารด้วย ด้วยเหตุนี้ MySQL DBMS เวอร์ชัน 3.11.1 จึงเปิดตัวในปี 1996 ในรูปแบบการกระจายไบนารีสำหรับการรัน Linux และ Solaris ปัจจุบัน MySQL ทำงานบนหลายแพลตฟอร์มและมีให้บริการทั้งเวอร์ชันไบนารีและซอร์ส

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

นโยบายการออกใบอนุญาตของ MySQL มีความยืดหยุ่นมากกว่าเซิร์ฟเวอร์ฐานข้อมูลอื่นๆ โดยพื้นฐานแล้ว MySQL นั้นฟรี เว้นแต่ว่าคุณตั้งใจจะขายหรือขายบริการที่สร้างด้วย MySQL

MySQL พกพาสะดวกมากและสามารถใช้งานได้ดีพอๆ กันบนระบบปฏิบัติการเชิงพาณิชย์ เช่น Solaris, Irix หรือ Windows และบนฮาร์ดแวร์ใดๆ ก็ตามจนถึงเซิร์ฟเวอร์ที่ทรงพลัง ยิ่งไปกว่านั้น เช่นเดียวกับคู่แข่งที่มีราคาแพงกว่า มันสามารถจัดการฐานข้อมูลขนาดใหญ่ที่มีบันทึกนับล้านรายการได้

ชื่อและโลโก้

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

เวอร์ชันที่สองซึ่งมีอารมณ์อ่อนไหวมากกว่านั้นมีพื้นฐานมาจากการที่ Michael Monty Widenius ตั้งชื่อผลิตภัณฑ์ใหม่ MySQL ตามชื่อลูกสาวของเขา - My ลูกสาวของ Videnius ชื่อของฉันจริงๆ และตัวเขาเองไม่ได้ปฏิเสธทั้งเวอร์ชันแรกหรือเวอร์ชันที่สอง

โลโก้โลมาของ MySQL มีชื่อว่า "Sakila" มันถูกเลือกจากรายการ "ชื่อปลาโลมา" ที่ผู้ใช้แนะนำจำนวนมาก ชื่อ "Sakila" ถูกส่งโดย Ambrose Twebaze ผู้พัฒนาโอเพ่นซอร์ส

คุณสมบัติ MySQL

คุณสมบัติหลักของ MySQL คือรองรับภาษา แบบสอบถาม SQLในมาตรฐาน ANSI 92 และยังมีส่วนขยายอีกมากมายสำหรับมาตรฐานนี้ซึ่งไม่พบในระบบการจัดการฐานข้อมูลอื่น
รายการคุณสมบัติ MySQL สั้นๆ:

1. รักษาการดำเนินงานที่มีประสิทธิภาพ ปริมาณไม่จำกัดผู้ใช้ทำงานกับฐานข้อมูลไปพร้อม ๆ กัน

2. จำนวนแถวในตารางสามารถเข้าถึง 50 ล้าน

3. การดำเนินการคำสั่งที่เร็วที่สุดเท่าที่จะเป็นไปได้ มีความเห็นว่า MySQL เป็นเซิร์ฟเวอร์ที่เร็วที่สุดที่มีอยู่

4. ระบบรักษาความปลอดภัยที่ง่ายและมีประสิทธิภาพ

ตัวอย่างแผนภูมิใน MySQL


ข้อเสียของ MySQL

อย่างไรก็ตาม MySQL ก็มีข้อเสียอยู่บ้างเช่นกัน สาเหตุหลักมาจากความจริงที่ว่าเพื่อให้บรรลุความเร็วสูงดังกล่าว นักพัฒนาต้องเสียสละข้อกำหนดบางประการสำหรับระบบการจัดการฐานข้อมูลเชิงสัมพันธ์

ดังนั้น MySQL ขาด:

1. รองรับการสืบค้นแบบซ้อน เช่น SELECT * FROM table1 WHERE id IN (SELECT id FROM table2) (ในเวอร์ชันก่อนหน้า)

2. ไม่มีการใช้การสนับสนุนธุรกรรม ขอเสนอให้ใช้ LOCK/UNLOCK TABLE แทน

3. ไม่มีการรองรับคีย์ต่างประเทศ

4. ไม่มีการรองรับทริกเกอร์และขั้นตอนการจัดเก็บ

5. ไม่รองรับมุมมอง (VIEW) ในเวอร์ชัน 3.23 มีการวางแผนให้สามารถสร้างมุมมองได้

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

การออกใบอนุญาต

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

แพลตฟอร์ม

MySQL ย้ายไปยัง จำนวนมากแพลตฟอร์ม: AIX, BSDi, FreeBSD, HP-UX, Linux, Mac OS X, NetBSD, OpenBSD, OS/2 Warp, SGI IRIX, Solaris, SunOS, SCO OpenServer, UnixWare, Tru64, Windows 95, Windows 98, Windows NT, วินโดว์ 2000, วินโดว์ XP, วินโดวส์เซิร์ฟเวอร์ 2003, WinCE, Windows Vista และ Windows 7 นอกจากนี้ยังมีพอร์ต MySQL ไปยัง OpenVMS สิ่งสำคัญที่ควรทราบคือบนเว็บไซต์ DBMS อย่างเป็นทางการ ไม่เพียงแต่ให้ซอร์สโค้ดสำหรับการดาวน์โหลดฟรี แต่ยังรวมถึงโมดูลปฏิบัติการ MySQL DBMS สำเร็จรูปที่คอมไพล์และปรับให้เหมาะสมสำหรับระบบปฏิบัติการเฉพาะ

ภาษาโปรแกรม

MySQL มี API สำหรับ Delphi, C, C++, Eiffel, Java, Lisp, Perl, PHP, Python, Ruby, Smalltalk, Component Pascal และ Tcl, ไลบรารีสำหรับภาษาแพลตฟอร์ม .NET และยังให้การสนับสนุน ODBC ผ่านไดรเวอร์ MyODBC ODBC

ประวัติเวอร์ชัน

MySQL เวอร์ชันภายในครั้งแรกเกิดขึ้นเมื่อวันที่ 23 พฤษภาคม พ.ศ. 2538 [ไม่ได้ระบุแหล่งที่มา 1224 วัน]
เวอร์ชันสำหรับระบบ Windows (Windows 95 และ NT) เปิดตัวเมื่อวันที่ 8 มกราคม 1998
เวอร์ชัน 3.23: เวอร์ชันเบต้าในเดือนมิถุนายน พ.ศ. 2543 เผยแพร่ในเดือนมกราคม พ.ศ. 2544
เวอร์ชัน 4.0: เบต้าในเดือนสิงหาคม พ.ศ. 2545 เผยแพร่ในเดือนมีนาคม พ.ศ. 2546
เวอร์ชัน 4.1: เบต้าในเดือนมิถุนายน พ.ศ. 2547 เผยแพร่ในเดือนตุลาคม พ.ศ. 2547
เวอร์ชัน 5.0: เบต้าในเดือนมีนาคม พ.ศ. 2548 เผยแพร่ในเดือนตุลาคม พ.ศ. 2548
เวอร์ชัน 5.1: การพัฒนาเริ่มในเดือนพฤศจิกายน พ.ศ. 2548 เผยแพร่ในเดือนพฤศจิกายน พ.ศ. 2551
เวอร์ชัน 5.4: เบต้าในเดือนเมษายน 2552 ไม่ได้รับการเผยแพร่
เวอร์ชัน 5.5: เปิดตัวธันวาคม 2010
เวอร์ชัน 5.6: อยู่ระหว่างการพัฒนา (5.6.6 m9 7 สิงหาคม 2555)

ประวัติเวอร์ชัน



มายเอสแอล 4.0

แม้ว่าเวอร์ชัน 4.0 จะล้าสมัย แต่ก็ยังมีการนำไปใช้ที่สำคัญ คุณสมบัติหลักของรุ่นนี้:

การใช้งาน ANSI SQL-99 เกือบเสร็จสมบูรณ์พร้อมส่วนขยาย
ความเข้ากันได้ข้ามแพลตฟอร์ม
ประเภทตารางอิสระ (MyISAM สำหรับการอ่านอย่างรวดเร็ว, InnoDB สำหรับธุรกรรมและ ความสมบูรณ์ของการอ้างอิง);
ธุรกรรม;
รองรับ SSL;
ขอแคช;
การจำลองแบบ: หนึ่งเฮดเซิร์ฟเวอร์ต่อทาส, ทาสจำนวนมากต่อหนึ่งหัว;
การจัดทำดัชนีข้อความแบบเต็มและการค้นหาโดยใช้ประเภทตาราง MyISAM
ไลบรารีฐานข้อมูลที่นำไปใช้
รองรับยูนิโค้ด (UTF-8);
ตาราง InnoDB ที่สอดคล้องกับ ACID;
เซิร์ฟเวอร์ในตัวที่อนุญาตให้รวม MySQL ในแอปพลิเคชันแบบสแตนด์อโลน

แบบสอบถามที่ซ้อนกันและตารางที่ได้รับ
ระบบใหม่การเข้ารหัสและการเรียงลำดับ
โปรโตคอลไคลเอนต์-เซิร์ฟเวอร์ที่เร็วและยืดหยุ่นมากขึ้นพร้อมรองรับการสืบค้นที่เตรียมไว้ ทำให้มั่นใจได้ถึงการดำเนินการที่เหมาะสมที่สุด
โปรแกรมใหม่การติดตั้งและการตั้งค่าสำหรับ ไมโครซอฟต์ วินโดวส์และลินุกซ์;
การเชื่อมต่อไคลเอนต์และเซิร์ฟเวอร์ที่ปลอดภัยผ่าน OpenSSL
ไลบรารีที่ได้รับการปรับปรุงให้เหมาะสมที่สุดที่สามารถใช้งานได้ โปรแกรมของบุคคลที่สาม;
รองรับ Unicode เต็มรูปแบบ (UTF-8 และ UCS2);
ประเภทข้อมูลเชิงพื้นที่ GIS มาตรฐานสำหรับการจัดเก็บข้อมูลทางภูมิศาสตร์
ปรับปรุงระบบการค้นหาและช่วยเหลือข้อความแบบเต็ม

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

เวอร์ชัน MySQL 5.0 เปิดตัวเมื่อวันที่ 24 ตุลาคม พ.ศ. 2548 เวอร์ชันนี้ได้ขยายฟังก์ชันการทำงานอย่างมาก ซึ่งทำให้ MySQL ทัดเทียมกับ DBMS เชิงพาณิชย์ หากก่อนหน้านี้ MySQL DBMS ถูกกล่าวหาว่ารองรับมาตรฐาน SQL ไม่เพียงพอ ดังนั้นเมื่อมีการเปิดตัวฐานข้อมูลยอดนิยมเวอร์ชันที่ 5 นี้ การสนับสนุนมาตรฐาน SQL เกือบทั้งหมดก็ปรากฏขึ้น MySQL 5.0 มีนวัตกรรมดังต่อไปนี้:
ขั้นตอนและฟังก์ชันการจัดเก็บ
ตัวจัดการข้อผิดพลาด
เคอร์เซอร์;
ทริกเกอร์;
การแสดง;
แผนภาพข้อมูล(พจนานุกรมระบบที่เรียกว่าประกอบด้วยข้อมูลเมตา)

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

MySQL 5.1 ยังคงเส้นทางสู่มาตรฐาน SQL:2003 MySQL 5.1 มีนวัตกรรมดังต่อไปนี้:

การแบ่งพาร์ติชันคือความสามารถในการแบ่งตารางขนาดใหญ่หนึ่งตารางออกเป็นหลายส่วนที่อยู่บนระบบไฟล์ที่แตกต่างกัน ขึ้นอยู่กับฟังก์ชันที่ผู้ใช้กำหนด ภายใต้เงื่อนไขบางประการ สิ่งนี้สามารถเพิ่มประสิทธิภาพได้อย่างมาก และยังช่วยให้ปรับขนาดตารางได้ง่ายขึ้นอีกด้วย
ลักษณะการทำงานของตัวดำเนินการจำนวนหนึ่งมีการเปลี่ยนแปลงเพื่อให้มั่นใจว่าเข้ากันได้กับมาตรฐาน SQL2003 มากขึ้น
การจำลองแบบตามแถว ซึ่งเฉพาะข้อมูลเกี่ยวกับแถวของตารางที่เปลี่ยนแปลงจริงเท่านั้นที่จะถูกเขียนลงในบันทึกไบนารี แทนที่จะเป็นข้อความค้นหาต้นฉบับ (และอาจช้า) การจำลองแบบแถวสามารถใช้ได้กับการสืบค้น SQL บางประเภทเท่านั้น ในแง่ MySQL - การจำลองแบบผสม
ตัวกำหนดเวลาในตัวของงานที่เปิดตัวเป็นระยะ ในแง่ของไวยากรณ์ การเพิ่มงานจะคล้ายกับการเพิ่มทริกเกอร์ลงในตาราง ในทางอุดมการณ์ จะคล้ายกับ crontab
ชุดฟังก์ชันเพิ่มเติมสำหรับการประมวลผล XML การใช้งานการสนับสนุน XPath
ยูทิลิตี้การวินิจฉัยปัญหาใหม่และการวิเคราะห์ประสิทธิภาพ ความสามารถในการจัดการเนื้อหาของไฟล์บันทึกได้รับการขยายแล้ว ขณะนี้สามารถบันทึกบันทึกในตาราง General_log และ slow_log ได้ ยูทิลิตี้ mysqlslap ช่วยให้คุณสามารถทำการทดสอบโหลดฐานข้อมูลและบันทึกเวลาตอบสนองสำหรับแต่ละคำขอ
เพื่อให้การดำเนินการอัปเกรดง่ายขึ้น เราได้เตรียมยูทิลิตี้ mysql_upgrade ซึ่งจะตรวจสอบตารางที่มีอยู่ทั้งหมดเพื่อดูความเข้ากันได้กับเวอร์ชันใหม่ และหากจำเป็น ให้ทำการปรับเปลี่ยนที่เหมาะสม
ขณะนี้ MySQL Cluster เปิดตัวเป็นผลิตภัณฑ์แยกต่างหากที่ใช้พื้นที่จัดเก็บข้อมูล MySQL 5.1 และ NDBCLUSTER
การเปลี่ยนแปลงที่สำคัญใน การทำงานของ MySQLคลัสเตอร์ เช่น ความสามารถในการจัดเก็บข้อมูลแบบตารางบนดิสก์
เปลี่ยนกลับไปใช้ไลบรารี libmysqld ในตัวซึ่งขาดหายไปใน MySQL 5.0
API สำหรับปลั๊กอินที่ช่วยให้คุณสามารถโหลดโมดูลของบริษัทอื่นที่ขยายฟังก์ชันการทำงาน (เช่น การค้นหาข้อความแบบเต็ม) โดยไม่ต้องรีสตาร์ทเซิร์ฟเวอร์
การใช้งาน parser ค้นหาข้อความแบบเต็มเป็นปลั๊กอิน
ประเภทตาราง Maria ใหม่ (โคลน MyISAM ที่ป้องกันการชน)

ประเภทโต๊ะมาเรีย

Maria (เริ่มจากเวอร์ชัน 5.2.x - Aria) - เวอร์ชันขยายของพื้นที่จัดเก็บข้อมูล MyISAM พร้อมด้วยเครื่องมือเพิ่มเติมสำหรับการรักษาความสมบูรณ์ของข้อมูลหลังจากเกิดข้อขัดข้อง
ข้อได้เปรียบหลักของมาเรีย:

ในกรณีที่เกิดข้อขัดข้อง ผลลัพธ์ของการดำเนินการปัจจุบันจะถูกย้อนกลับหรือกลับสู่สถานะก่อนคำสั่ง LOCK TABLES การดำเนินการผ่านการดำเนินการบันทึก
ความสามารถในการกู้คืนสถานะจากจุดใดก็ได้ในบันทึกการดำเนินการ รวมถึงการสนับสนุน CREATE/DROP/RENAME/TRUNCATE สามารถใช้เพื่อสร้างส่วนเพิ่มได้ สำเนาสำรองผ่านการคัดลอกบันทึกธุรกรรมเป็นระยะ
การสนับสนุนรูปแบบคอลัมน์ MyISAM ทั้งหมดได้รับการขยายด้วยรูปแบบ "แถวในบล็อก" ใหม่ซึ่งใช้วิธีการจัดเก็บข้อมูลแบบเพจซึ่งสามารถแคชข้อมูลในคอลัมน์ได้
ในอนาคต จะมีการใช้งานสองโหมด: การทำธุรกรรมและไม่มีการสะท้อนในบันทึกธุรกรรม สำหรับข้อมูลที่ไม่สำคัญ
ขนาดหน้าข้อมูลคือ 8 KB (ใน MyISAM 1 KB) ซึ่งช่วยให้มีประสิทธิภาพดีขึ้นสำหรับดัชนีบนฟิลด์ที่มีขนาดคงที่ แต่จะช้ากว่าในกรณีของคีย์ที่มีความยาวผันแปรได้

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

สาขา MySQL 5.5 มีพื้นฐานมาจากซีรีส์ MySQL 5.4 ที่ยังไม่เผยแพร่ และมีการปรับปรุงที่สำคัญหลายประการที่เกี่ยวข้องกับความสามารถในการปรับขนาดและประสิทธิภาพที่เพิ่มขึ้น ได้แก่:
การใช้เอ็นจิ้น InnoDB เป็นค่าเริ่มต้น
รองรับกลไกการจำลองแบบกึ่งซิงโครนัสโดยอิงตามแพตช์ไปยัง InnoDB จาก Google
ปรับปรุงฟังก์ชันการแบ่งพาร์ติชันข้อมูล ไวยากรณ์ขั้นสูงสำหรับการแบ่งตารางขนาดใหญ่ออกเป็นหลายส่วนที่อยู่บนระบบไฟล์ (การแบ่งพาร์ติชัน) เพิ่มการดำเนินการ RANGE, LIST และวิธีการเพิ่มประสิทธิภาพ "การตัดพาร์ติชัน"
กลไกใหม่สำหรับการปรับการค้นหาที่ซ้อนกันและการดำเนินการ JOIN ให้เหมาะสม
ระบบล็อคภายในได้รับการออกแบบใหม่
Google patch ได้รับการบูรณาการเพื่อเพิ่มประสิทธิภาพ InnoDB บนโปรเซสเซอร์ที่มีคอร์จำนวนมาก

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

เวอร์ชัน MySQL 6.0 ถูกระงับในขั้นตอนการทดสอบอัลฟ่า ในตอนแรกมีการตัดสินใจสร้างเวอร์ชัน 5.2 แต่ในไม่ช้าเวอร์ชันนี้ก็ถูกเปลี่ยนชื่อเป็น 6.0 อย่างไรก็ตาม ข้อมูลในภายหลังเกี่ยวกับ MySQL 6.0 หายไปจากไซต์ และนักพัฒนามุ่งเน้นไปที่เวอร์ชัน 5.5 และเวอร์ชันถัดไป 5.6
หนึ่งในนวัตกรรมหลักของเวอร์ชัน 6.0 ได้รับการวางแผนที่จะเป็นประเภทตาราง Falcon ใหม่ ซึ่งพัฒนาขึ้นเพื่อทดแทน InnoDB จาก Innobase ที่ Oracle ซื้อกิจการมา จากการที่ Oracle เดียวกันเข้าซื้อกิจการ Sun Microsystems ในปี 2010 ชะตากรรมของ Falcon ยังคงเป็นที่น่าสงสัย

ข้อมูลจำเพาะ

ขนาดตารางสูงสุดใน MySQL 3.22 คือสูงสุด 4 GB ในเวอร์ชันต่อๆ ไป ขนาดสูงสุดมากถึง 8 ล้าน TB (263 ไบต์)
ขนาดของโต๊ะถูกจำกัดตามประเภทของโต๊ะ โดยทั่วไป ประเภท MyISAM จะถูกจำกัดด้วยขนาดไฟล์จำกัดที่ ระบบไฟล์ ระบบปฏิบัติการ- ตัวอย่างเช่น ใน NTFS ขนาดนี้ตามทฤษฎีแล้วสามารถมีได้ถึง 32 เอ็กซาไบต์ ในกรณีของ InnoDB หนึ่งตารางสามารถเก็บไว้ในหลายไฟล์ที่แสดงถึงพื้นที่ตารางเดียว ขนาดของหลังสามารถเข้าถึง 64 เทราไบต์

ต่างจาก MyISAM ตรงที่ InnoDB มีการจำกัดจำนวนคอลัมน์ที่สามารถเพิ่มลงในตารางเดียวได้อย่างมาก ขนาดเพจหน่วยความจำเริ่มต้นคือ 16 กิโลไบต์ ซึ่ง 8123 ไบต์จะถูกจัดสรรสำหรับข้อมูล ขนาดของตัวชี้ไปยังฟิลด์ไดนามิกคือ 20 ไบต์ ดังนั้น เมื่อใช้รูปแบบแถวไดนามิก (ROW_FORMAT=DYNAMIC) หนึ่งตารางจะสามารถรองรับคอลัมน์หยดหรือคอลัมน์ข้อความได้สูงสุด 409 คอลัมน์

ตั้งแต่เวอร์ชัน 4.1 เป็นต้นไป ระบบการเข้ารหัสและการเรียงลำดับใหม่ได้ถูกนำมาใช้ใน MySQL DBMS เมื่อใช้การเข้ารหัส Windows-1251 ก่อนที่จะดำเนินการคำสั่ง SQL คุณต้องกำหนดค่าการเข้ารหัสการเชื่อมต่อโดยใช้ตัวดำเนินการ:

SET character_set_client="cp1251";
SET character_set_results="cp1251";
SET character_set_connection="cp1251";

คำสั่งทั้งสามนี้เทียบเท่ากับการเรียกคำสั่งเดียว:

ตั้งชื่อชุด "cp1251"

ตัวแปร character_set_client ตั้งค่าการเข้ารหัสข้อมูลที่ส่งจากไคลเอนต์ ตัวแปร character_set_results ตั้งค่าการเข้ารหัสข้อมูลที่ส่งไปยังไคลเอนต์ ตัวแปร character_set_connection ตั้งค่าการเข้ารหัสซึ่งข้อมูลที่ได้รับจากไคลเอนต์จะถูกแปลงก่อนที่จะดำเนินการตามคำขอบนเซิร์ฟเวอร์

เมื่อใช้ UTF-8 Unicode คำสั่งนี้จะมีลักษณะดังนี้:
ตั้งชื่อ "utf8"

ไม่รองรับการเข้ารหัส ISO 8859-5