สำหรับผู้ใช้ฐานข้อมูล MySQL บ่อยๆ ในเวอร์ชันหลังๆ อย่างเวอร์ชัน 5 จะมีการทำ “หลุมดำ” หรือที่เรียกว่า The BlackHole Storage ที่มีลักษณะเหมือน หลุมดำ จริงๆครับคือดูดทุกสิ่งเข้าไป แต่ก็ไม่เคยรู้ว่าสิ่งที่ดูดไปนั้นอยู่ที่ไหน
การทำ BlackHole Storage นั้นก็มีการทำงานคล้ายคลึง ที่พูดมาเพียง และหลายคนก็จะสงสัยว่ามัน ต่างยังไง และมันเขียนยังไง เอายังงี้ลองมาพิจารณา Command Line ด้านล่างกันดูก่อน แล้วจะเข้าใจทันทีเลยครับ
ขั้นแรกลองสร้าง Table ขึ้นมาบน MySQL ชื่อว่า “test” โดยใช้ ENGINE ว่า BLACKHOLE ครับ ผ่าน Command ต่อไปนี้
mysql> CREATE TABLE test(i INT, c CHAR(10)) ENGINE = BLACKHOLE;
เมื่อลองรันคำสั่ง Command ไปแล้วจะมีข้อความบอกกับเราว่า คำสั่งรันผ่านสร้าง Table ชื่อ “test” เรียบร้อย
Query OK, 0 rows affected (0.03 sec)
ต่อมาเราลองใส่ข้อมูลลงไปในเจ้า Table ชื่อ “test” ดูหน่อยดีกว่าซัก 2 ชุด ผ่าน Command ด้านล่าง
mysql> INSERT INTO test VALUES(1,'record one'),(2,'record two');
ระบบก็จะบอกเราว่ามีการ เพิ่มข้อมูลลงไปใน Table “test” เรียบร้อย 2 แถว
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
ลองมาดูหน่อยดีกว่าว่าข้อมูลที่เรา ใส่ลงไปเก็บยังไง ด้วยการ SELECT ออกมาจาก Table “test” สักหน่อย
mysql> SELECT * FROM test;
ผลที่ได้…
Empty set (0.00 sec)
ข้อมูลมันหายไป เป็น Table แบบ Empty ไม่มีข้อมูลได้ยังไง?
ก็นี่แหละครับ The BlackHole Storage มันดูดข้อมุลไป แต่ไม่รู้เอาไปไหน ทิ้งที่ไหน แล้วมันเอาไว้ทำอะไร มันต้องเอาไว้ใช้งานอยู่แล้วครับ อย่างน้อยๆ ที่ผมใช้ก็จะมีการจัดการพวก Log ซ้ำๆ ที่วนเวียนไม่จบ หรืออาจจะมีอะไรที่ซับซ้อนกว่านั้นก็คงต้องรอผู้ที่เก่งด้านนี้มาอธิบายเพิ่มเติม
ยังไงวันนี้ก็รู้จักกับมันไปแล้วกับ The BlackHole Storage ของ MySQL เอาไว้โอกาสหน้าจะหาอะไร มาเล่าให้ฟังใหม่ครับ