Tags:
Topics: 
Node Thumbnail

แม้ MySQL จะเป็นระบบฐานข้อมูลที่ได้รับความนิยมอย่างสูง แต่บั๊กบางอย่างก็ใช้เวลาแก้ไขนานอย่างไม่น่าเชื่อ ในเวอร์ชั่น 8.0.3 (สถานะเป็น release candidate 1 ของรุ่น 8.0) ทาง MySQL ก็ได้แก้บั๊กหมายเลข 199 ที่เปิดมาตั้งแต่วันที่ 27 มีนาคม 2003 หรือประมาณ 14 ปีกับอีก 6 เดือนมาแล้ว

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

ผู้รายงานบั๊กนี้คือ Peter Zaitsev โดยตัวบั๊กกระทบตั้งแต่ MySQL 4.0 เป็นต้นมา ตัว Zaitsev เองก็ยังรายงานบั๊กให้กับ MySQL อยู่เรื่อยๆ จนถึงบั๊กล่าสุดในปี 2010 และทางออราเคิลออกมาตอบในบั๊กว่าจะแก้ไขในเวอร์ชั่น 8.0 ตั้งแต่ปีที่แล้ว

ตอนนี้ MySQL 8.0 ยังอยู่ในสถานะ pre-general available โดยจะมีความสามารถใหม่ๆ มากมาย เช่นรองรับ JSON ในตัว, รองรับ Unicode 9.0 เป็นต้น

ที่มา - MySQL, Le Fred

Get latest news from Blognone

Comments

By: Ooh
ContributoriPhoneAndroidSymbian
on 12 October 2017 - 04:32 #1012911
Ooh's picture

Maria DB ก็โดนด้วยป่าวครับ


Ooh

By: sukjai
iPhoneAndroidRed HatUbuntu
on 12 October 2017 - 06:28 #1012917 Reply to:1012911

+1

By: orankhu on 12 October 2017 - 10:16 #1012982 Reply to:1012911

แก้แล้วเมื่อวันที่ 17 Feb 2017 ครับ https://mariadb.com/kb/en/library/mariadb-1024-release-notes/

By: kanchen
AndroidUbuntu
on 12 October 2017 - 08:18 #1012937

ปล่อยมานานแบบนี้จะเรียกว่า แก้ไม่ หรือ ไม่แก้ดี

By: btoy
ContributorAndroidWindows
on 12 October 2017 - 08:26 #1012938
btoy's picture

โห 14 ปีเลยทีเดียว ตัวเลขทั้งหมายเลขบั๊ก ทั้งเวลา น่าเอาไปซื้อล็อตเตอรี่จริงๆ ห้าห้า


..: เรื่อยไป

By: LagSeeN
ContributorWindows PhoneWindows
on 12 October 2017 - 08:26 #1012939
LagSeeN's picture

ลืมไปเลยว่าเคยมีบัค

By: K_AViar
Windows PhoneUbuntuWindowsIn Love
on 12 October 2017 - 09:14 #1012945

14 อีกครั้ง

By: mementototem
ContributorJusci's WriterAndroidWindows
on 12 October 2017 - 09:27 #1012951
mementototem's picture

นึกว่ามันเป็นข้อจำกัดของ InnoDB มาตลอด Orz


Jusci - Google Plus - Twitter

By: osmiumwo1f
ContributorWindows PhoneWindows
on 12 October 2017 - 10:07 #1012972 Reply to:1012951
osmiumwo1f's picture

เพราะแก้ช้ามากกกกก (เหมือนไม่สนใจจะแก้) เลยกลายเป็นข้อจำกัด ในขณะที่ engine อื่นกลับไม่มีปัญหานี้ครับ

By: totiz
ContributoriPhoneAndroidRed Hat
on 12 October 2017 - 09:35 #1012953
totiz's picture

เคยงานเข้าเพราะบัคนี้มาแล้ว ต้องมาเขียน script re-index กันใหม่ วุนวายเลย

สำหรับใครที่อยากรู้ว่ามันเกิดขึ้นได้ยังไง พฤติกรรมมันเป็นแบบนี้ครับ
1. Innodb รันครั้งแรกจะไปดูว่า แต่ละ table มี record ล่าสุด อะไร แล้วจับ id+1 เป็น auto_increment
2. ถ้าข้อแรกไม่เจอ . ให้เซต auto-increment = 1
3. นำค่าที่ได้เก็บลง Ram

ข้อ 3) นี้แหละปัญหา เพราะแทนที่จะเก็บลง HDD เหมือนระบบอื่น