user warning: Unknown column 'token' in 'field list' query: UPDATE blog_captcha_sessions SET token='67621ce13240f7f18743ecbbaf6b2406' WHERE csid=107860 in /home/www/virtual/joezine.com/htdocs/sites/all/modules/captcha/captcha.module on line 213.

NoSQL

Submitted by joezine on Fri, 03/12/2010 - 01:09

ช่วงนี้กระแส High Scalability Database Performance มาแรงมาก ทั้ง facebook, Digg, Twitter, Amazon, Linkedin ต่างละทิ้ง MySQL หันมาใช้งาน NoSQL (Not Only SQL) เลยมาทำความเข้าใจและทำความรู้จักนิดหน่อย (นิดหน่อยจริงๆ แต่อยากทำความรู้จักกับเธอเยอะๆนะ ขอเวลานิดนึง :P)

NoSQL เป็น Concept หนึ่งที่ออกแบบโดยพนักงานของ Rackspace ชื่อ Eric Evans เป็นการทำลาย Concept Relational Database อันมีมายาวนาน ส่วนหนึ่งเชื่อว่า Linux Command มีประสิทธิภาพดีกว่า SQL (เช่น grep, awk)

(เอ่อ เริ่มไปไม่ถูกแล้วแฮะ -*- ข้อมูลเยอะเกิน ค่อยๆไปทีละอย่าง)

4 Model หลักของ NoSQL

Key-Value Stores

BigTable Clones

Document Databases

Graph Databases

  • สาย : ภาพจาก Euler และ ทฤษฎีกราฟ
  • ตัวอย่าง : AllegroGraph, InfoGrid, Neo4j

Digg หันมาใช้งาน Cassandra เมื่อกันยายน 2009

หลังจาก Normalize Database อย่างเต็มที่ เราลองหันมามอง Non-Relational Database เช่น HBase, Hypertable, Cassandra, Tokyo Cabinet/Tyrant, Voldemort, Dynomite แต่ที่เลือกใช้ Cassandra เพราะ column-oriented data storage

ถ้าเป็น Relational Database Model กรณี Join Table และแต่ละ Table มี 1,000,000 Record จะทำให้ใช้เวลาในการ Query เยอะมาก

แต่ถ้าเป็น Non-relational Database ซึ่งไม่มี Schema ทำให้ยืดหยุ่นมาก ทำให้มี Performance ดูจาก Benmarking Presentation ที่อ้างกัน

MySQL > 50 GB Data

  • Writes Average : ~300 MS
  • Reads Average : ~350 MS

Cassandra > 50 GB Data

  • Writes Average : 0.12 MS
  • Reads Average : 15 MS

ข้อมูลยังน้อยอยู่ แต่จบแค่นี้ก่อน พรุ่งนี้ค่อยมาเล่น Cassandra โดยลองจาก up and running with cassandra คาดว่าจะเข้าใจมากยิ่งขึ้น แล้วจะสรุปใหม่อีกรอบ

Reference

Tags: | »

Peacefulwind (not verified) Says:
Sat, 03/13/2010 - 00:02

รอติดตามอ่านสาระดีๆนะ (n_n) ปล.ให้ที่คอมเมนท์ให้บวกเลขอ่ะ = = ไม่เคยบวกถูกก่อนเลยสักครั้ง 555555

Post new comment

The content of this field is kept private and will not be shown publicly.
  • You can use Markdown syntax to format and style the text. Also see and Markdown Extra for tables, footnotes, and more.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>. The supported tag styles are: <foo>, [foo]. PHP source code can also be enclosed in <?php ... ?> or <% ... %>.

More information about formatting options