ฐานข้อมูล PostgreSQL ออกรุ่นใหม่ 9.1 แล้ว
ฟีเจอร์ใหม่ในรุ่นนี้มีด้วยกัน 9 ฟีเจอร์ใหญ่ๆ เนื่องจากรายละเอียดค่อนข้างมาก คนที่ใช้งานหรือสนใจก็อ่านกันแบบเต็มๆ ที่ What's new in PostgreSQL 9.1 และ PostgreSQL 9.1 Press Kit
ฟีเจอร์ทั้ง 9 อย่างได้แก่
- Synchronous Replicationซิงก์ข้ามเซิร์ฟเวอร์ได้แล้ว ทำให้อัตรา high-availability ดีขึ้น
- Per-Column Collationsตั้งค่า collation ของ string เฉพาะแต่คอลัมน์ได้แล้ว ทำให้สร้างฐานข้อมูลแบบหลายภาษา (และทำดัชนีของแต่ละภาษา) ได้เลย
- Unlogged Tablesเลือกที่จะไม่สร้าง log file ของตาราง ในกรณีที่ต้องการรีดประสิทธิภาพสูงสุด (อาจสูงกว่าแบบเก็บ log file ถึง 10 เท่า)
- K-Nearest-Neighbor Indexingเพิ่มวิธีการทำดัชนีของตารางแบบ K-Nearest-Neighbor ลดภาระในการสแกนตารางทั้งอัน
- Serializable Snapshot Isolationตรวจสอบ race condition ของคำสั่ง SQL เพื่อไม่ให้บล็อคการทำงานของกันและกัน
- Writeable Common Table Expressions (wCTE)อันนี้อธิบายยาก มันคือการเขียนคำสั่ง SQL query ให้ทำงานแบบต่อเนื่อง (จะเป็น recursive หรือตามลำดับชั้น hierarchy ก็ได้)
- Security-Enhanced Postgresรองรับมาตรฐาน SE-Linux เพิ่มความปลอดภัยให้ระบบ
- Foreign Data Wrappersปรับปรุงตัวเอนจินฐานข้อมูล ให้รองรับข้อมูลจากฐานอื่นที่ไม่ใช่ PostgreSQL ผ่านการครอบ data wrapper
- Extensionsปรับปรุงเอนจินฐานข้อมูลให้ขยายตัวได้ ผ่านวัตถุชนิด extension
ฟีเจอร์แรก Synchronous Replication จะทำให้ PostgreSQL บุกตลาดฐานข้อมูลขนาดใหญ่ที่มีคลัสเตอร์หลายตัวได้ดีขึ้น และขึ้นไปทาบชั้นกับ Oracle, DB2, MS SQL Server ได้แล้ว
ส่วนฟีเจอร์ Serializable Snapshot Isolation และ Writeable Common Table Expressions ถือเป็นฟีเจอร์เฉพาะของ PostgreSQL ที่คู่แข่งยังไม่มี
PostgreSQL รุ่นนี้เป็นรุ่นที่พัฒนาโดยชุมชน ส่วนการใช้งานในองค์กรขนาดใหญ่ที่ต้องการการสนับสนุน ก็มีบริการของ EnterpriseDB ให้เลือกใช้ได้เช่นกัน
ที่มา - PostgreSQL , The Register
Comments
ทำไม K-Nearest-Neighbor Indexing จึงสามารถลดภาระในการสแกนตารางทั้งอันได้ ?
K-Nearest Neighbor เป็นอัลกอริทึมการจัดกลุ่มของข้อมูลครับ ถ้าจัดกลุ่มได้ดี เราก็ scan เฉพาะที่ distance ใกล้ๆ กับสิ่งที่เราจะหาก็พอครับ :)
onedd.net
ฝั่ง noSQL ก็มี mongoDB เพิ่งออกรุ่น 2.0 เมื่อวันที่ 12 ที่ผ่านมานี้มีใครพอจะติดตามเขียนข่าวบ้างไหมครับ ส่วนตัวผมเพิ่งเริ่มศึกษาไม่นานยังไม่แก่กล้าพอจะอธิบาย
ที่มา - mongoDB 2.0 released
ข่าว MongoDB อยู่ในคิวครับ ช่วงนี้ข่าวเยอะเขียนไม่ทัน
ช่วยอธิบาย CTE กับ wCTE ให้ครับ
การทำงาน CTE จะมีลักษณะคล้ายกับการสร้าง View บน SQL Statement แล้วนำมาใช้ซ้ำได้หลายครั้งบน Statement เช่น
WITH data as(
SELECT 1 OrderNo
union
SELECT 2
)
select d1.OrderNo from data d1
inner join data d2 on d1.OrderNo = d2.OrderNo;
ซึ่งผลลัพธ์ก็คือทำให้การเขียน Query ทำได้กระชับขึ้น
ส่วน wCTE ที่เป็นของใหม่จะเป็นการเรียกข้อมูลที่ INSERT, UPDATE และ DELETE ทำงานด้วยส่งกลับมา จากของเดิมที่จะเป็น SELECT ได้อย่างเดียว ซึ่งการทำงานของ wCTE จะทำทั้งเปลี่ยนแปลงข้อมูลพร้อมกับส่งข้อมูลที่ถูกเปลี่ยนแปลงกลับมาให้ด้วย
ซ้ำ
SQL Server ทำได้ตั้งแต่ 2005 แล้วครับ แค่ไม่ใช่ wCTEใช้ OUTPUT clause แทน
http://msdn.microsoft.com/en-us/library/ms177564.aspx
ส่วน CTE ของ SQL Serverใช้ทำ Recursive แบบ Top-Down ได้
ถ้าเป็น Oracle จะทำ Recursive query จะใช้START WITH และ CONNECT BY
MySQL ทำ Recursive ไม่ได้
อันนั้นเป็น Commercial software ครับ ไม่น่าแปลกใจที่มันทำได้นานแล้ว
เป็น commercial หรือไม่ ไม่เกี่ยวครับไม่ใช่ว่าเป็น commercial แล้วจะต้องทำได้ทุกอย่าง
อย่าง PostgreSQL/MySQL มี data type ประเภท Geo Spatial ตั้งนานแล้วแต่ SQL Server เพิ่งจะมีเมื่อ 2008 นี้เอง date, time ก็เพิ่งจะมี เมื่อก่อนมีแต่ datetime
ที่ผมหยิบยกขึ้นมาเพราะ บทความบอกว่า
"ส่วนฟีเจอร์ Serializable Snapshot Isolation และ Writeable Common Table Expressions ถือเป็นฟีเจอร์เฉพาะของ PostgreSQL ที่คู่แข่งยังไม่มี"
ผมก็เสริมไปว่า ถึงไม่มี wCTE แต่มีอย่างอื่นที่เทียบเคียงได้ และมีมานานแล้ว
และบทความก็บอกว่าคู่แข่งยังไม่มี คำว่าคู่แข่ง ผมหมายถึงโปรแกรมระบบจัดการฐานข้อมูลทุกยี่ห้อ
หรือคิดว่า SQL Server, Oracle, MySQL ไม่ใช่คู่แข่ง??
ถ้าเทียบกับ MySQL ผมรับได้ครับ
แต่เอาไปเปรียบเทียบกับ Commercial Software ที่มีความคาดหวังจากลูกค้าสูงมากกว่า
ผมว่ามันขัดกับความรู้สึก (ของผม) ครับ
น่าสนใจ DB ตัวนี้ครับ แต่ทำไมหา doc อ่านยากถึงยากมากจนครั้งหนึ่งผมถอดใจไป mysql
เหมือนหลายปีก่อนผมจะเคยได้ซื้อ หนังสือภาษาไทย เอาไว้เล่มหนึ่ง ถ้าจำไม่ผิดก็ยังไม่เห็นหนังสือ(ไทย)ของ PostgreSQL เล่มอื่นอีก
ที่ว่าหายากนี่หมายถึงภาษาไทยหรอครับ
สมัยสัก 3 ปี ก่อน หาอ่านเรื่อง tuning db ยี่ห้อนี้ยากมากครับ เรื่องโครงสร้างไฟล์, trigger ภาษาต่างๆ นานา ตำแหน่งจัดเก็บ overview concept ต่างๆ ภาษาอังกฤษยังหายากเลย บลา ๆ ผมติดตั้งได้ แต่ทำให้มันเต็มประสิทธิภาพไม่ได้สักที ปัญหาคือจุดนี้ครับ ตอนนั้นถอดใจไป mysql ที่มี doc ให้อ่านเยอะเข้าถึงง่ายกว่า ใช้มาจนทุกวันนี้ :) มีอะไร คน support เพียบ แต่ก็ยังแอบมอง postgreSQL อยู่นะ
application ใหญ่ๆ ในไทยที่พอรู้จัก
แต่หลังๆ มานี่ HosXP มาแรงกว่า คาดว่าใช้ง่าย ชุมชน ก็ support กันดี
โปรแกรมเกี่ยวก่ะโรงพยาบาลทั้งนั้น
ดูจากฟีเจอร์ใหม่แล้วน่าจะเอามาลองใช้แทน MySQL ที่ใช้อยู่เหมือนกันนะเนี่ย
blog.semicolon.in.th