Tags:

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

Get latest news from Blognone
By: jaideejung007
ContributorWindows PhoneWindows
on 15 February 2015 - 16:09 #791443
jaideejung007's picture

เข้ามาลงชื่อฟังด้วยครับ

By: EThaiZone
ContributorAndroidUbuntuWindows
on 15 February 2015 - 17:28 #791457
EThaiZone's picture

จากประสบการณ์คือกับ MySQL ส่วนมากสเกลใหญ่คือทำ Cluster โดยจะแยกระหว่างเครื่องเขียนกับอ่านออกจากกัน ส่วนสัดส่วนระหว่างเครื่องเขียนกับงานจะดูตามงาน (โดยมากคือดูจากระดับโปรแกรมที่จะมาใช้ก็จะรู้แล้ว) อย่างถ้าอ่านเยอะเขียนน้อย จะเครื่องเขียนจะ 1 ตัว เครื่องอ่านอาจตั้งแต่ 2-4 เลย ของพวกนี้ต้องมอนิเตอร์แล้ว scale out ออกไป (อันนี้ต้องดูสภาพการใช้งานจริง)

โดยส่วนตัวถ้า MySQL สิ่งที่ต้องระวังคือ
1. Slow Query
2. DB Lock ตอนขาเขียน
3. การตั้งค่า TCP Connection พวก wait_timeout connect_timeout
4. การทำ index field ให้พอดี

ของพวกนี้โปรแกรมเมอร์กับอินฟราฯ ต้องร่วมมือกัน ระบุงานให้ชัดๆ ไปว่าจะเขียนกันแบบไหน อย่างที่ผมทำมาจะเขียนเน้นไม่ให้เกิด slow query เอาให้น้อยๆ ป้องกันเรื่อง DB Lock โดยเลี่ยงไปใช้ Transaction ช่วย และพวก timeout เอาน้อยๆ ไปเลย อันนี้ก็คือแบบหนึ่ง

แต่จากที่เจอมา มีงานบางกลุ่มเหมือนกัน แต่ slow query ยอมได้ join table เอาให้ระเบิดกันไปข้าง (ผมไม่รู้เหตุผลนะ ไมไ่ด้อยู่ทีมเขา) ซึ่งเรื่องพวกนี้ server จะจูนไปอีกแบบ ดังนั้นถึงบอกโปรแกรมเมอร์กันอินฟราฯ ควรคุยกับให้เคลียร์ของเซ็ต env เซ็ต staging

ส่วนเรื่อง การทำ index field ให้พอดี อันนี้ตามเนื้องานครับ คือทำน้อยไป select ช้า ทำมากไป insert ช้า เผลอๆ table lock ดังนั้นเลือกให้เหมาะครับ ของพวกนี้อาศัยประสบการณ์จริงๆ ไม่มีหรอก เซ็ตครั้งเดียวแล้ว perfect น่ะ (แต่ก็เคยเห็นเทพๆ อยู่นะ น้อยคนจริงๆ) เรื่องพวกนี้อินฟราฯ ต้องร่วมมือด้วยการให้ slow query report ด้วยนะครับ ไม่งั้นโปรแกรมเมอร์ก็หน้ามืด หรือถ้ามี DBA ก็ อันนี้หน้าที่คุณล่ะ

และสุดท้ายที่ต้องระวังในกรณีบริษัทใหญ่มักจะมีเรื่อง share resource อันนี้จากที่พูดไป อย่าให้งานคนล่ะสไตล์มาใช้ resource ร่วมกัน เพราะการตั้งค่าต่างกันเอง แม้คุณจะแยก config variable ในระดับ user ได้ก็เถอะ แต่ที่มันไม่เปลี่ยนคือแรมกับcpu ดังนั้น slow query แยกไปเครื่อง fast query แยกไปอีกเครื่อง อันนี้จะดีกว่านะ

แถมนิดเรื่อง DB Lock หรือ Table Lock

ส่วนตัวถ้างานไหนที่ transaction ขาเขียนมันเยอะจนโหด ผมแนะนำถ้าไม่เปลี่ยน DB ไปใช้ที่ไวกว่า พวก MongoDB หรือ Cassandra หรือยัดใส่ Redis ไว้ชั่วคราวก็ได้ ไม่ก็ถ้าพวก job manager มาเป็นคน insert แทน (Gearman Beantalk บลาๆๆ) แบบนี้จะช่วยได้ครับ

สำหรับโปรแกรมเมอร์ คำสั่ง sql ที่ควรรู้เรื่องนี้มีสองคำสั่ง

SHOW PROCESSLIST;

อันนี้ใช้ดู tcp connection ครับ ดูเลยว่าค้างเท่าไร มีรอ timeout เท่าไร และนรกแตกว่ากลายเป็น zombie ไปเท่าไร ซึ่งคือ connection ที่ reuse ไม่ได้ อันนี้เราคอยดูได้บ้างครับ

อีกคำสั่งคือ
SHOW VARIABLES;

ใช้ดูการตั้งค่าของ MySQL ครับ ส่วนตัวแนะนำให้ดูกลุ่มคำสั่ง timeout นั้นแหละ เหตุผลก็ตามข้างต้นที่พิมพ์ไปแล้ว
SHOW VARIABLES LIKE '%timeout%'

ผมขออธิบายเท่านี้ครับ จริงๆ มีอีกเยอะ เรื่องพวกนี้คุยกันได้ยาวครับ เช่น zombie process เกิดได้ไง จะมีผลยังไง เรื่อง table lock ถ้าระดับ software ควรทำยังไง ควรจะเขียนโค้ดแนวไหนถึงจะช่วยลดภาระอินฟราฯ แม้กระทั่งการออกแบบ schema ให้เหมาะสมควรทำยังไงครับ มีเยอะแยะครับ

ปล. ผมไม่ใช่อินฟราฯ ไม่ใช่ DBA ผมเป็นแค่ PHP Programmer ดังนั้นใครเห็นข้อผิดพลาดก็เสริมด้วยนะครับ

ปล2. ขอโฆษณาหน่อย LOL

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

ประกาศที่พี่ๆ เขาเคยลงไว้
https://www.blognone.com/node/61513
https://www.blognone.com/node/47908
https://www.facebook.com/jQueryTips/posts/953491481329182

ดังนั้นถ้ามาทำงานด้วยกันจะเล่าต่อให้ฟังครับ 555+


มันไม่ง่ายเลยที่จะทำ GIF ให้มีขนาดน้อยกว่า 20kB

By: tontan
ContributorAndroidSymbianUbuntu
on 17 February 2015 - 07:10 #791866 Reply to:791457
tontan's picture

ขอบคุณครับ


บล็อก:wannaphong.com บล็อก Python 3

By: saknarak
Android
on 18 February 2015 - 20:30 #792390 Reply to:791457
saknarak's picture

ใช้ storage engine เป็น innodb จะได้เป็น row-level locking
แต่ต้องขึ้นอยู่กับเงื่อนไขด้วยว่ามี index มารองรับหรือไม่
ถ้าไม่มี index มารองรับ ก็เป็น table-level locking

By: icez
ContributoriPhoneAndroidRed Hat
on 15 February 2015 - 18:49 #791473

"ใหญ่" สุดเท่าที่เคยทำมาคือข้อมูล "เพิ่ม" วันละประมาณ 50 GB ครับ เก็บมาแล้วประมาณสองปี data รวมก็เฉียดๆ 40TB

ส่วน generic case ข้อมูลเพิ่มจริงวันละประมาณ 5GB ครับ

คร่าวๆ นะครับ

  • สำหรับ full data ลืม mysql ไปได้เลย scale ขนาดนี้ให้ตายยังไงก็เอาไม่อยู่
  • mysql/rdbms เอาไว้เก็บผลลัพท์จากการประมวลผลแล้วที่ไว้โชว์หน้าเว็บเท่านั้น
  • เก็บข้อมูลหลายๆ format โดยเฉพาะ plain text แบบ log file สำคัญมาก
  • unix command line tool (grep / find) เวิร์กมากสำหรับการค้นแบบด่วนๆ เพราะเร็วมากๆ
  • เครื่องมือที่ออกแบบมารองรับการ scale out อยู่แล้วให้ผลดีกว่ากันเยอะมากๆ (ใช้ elasticsearch ซึ่งทำงานบน apache lucene)
  • เครื่องมือพวกนี้ หลักการง่ายที่สุดที่ทำให้เร็วคือ อัดจำนวนเครื่องเยอะๆ เข้าว่า
  • ideal case คือ เก็บเครื่องละประมาณ 50-100GB ซึ่งจากปริมาณข้อมูลเพิ่มนี่ แทบจะต้องเพิ่ม node ทุกวัน
  • ใช้งานจริงเลยเป็นเครื่องที่แรม 32GB เก็บเครื่องละเกือบๆ 1TB ทำให้ไม่ต้องเพิ่มเครื่องบ่อยมาก
  • แต่ elasticsearch เดี่ยวๆ ก็ไม่รอดเหมือนกัน เลยต้องทำเป็น multi tier database (raw data ==> redis == map ==> elasticsearch + plain text log == reduce ==> mysql)

สรุปแล้วมี db หลักทั้งหมด 3 service (redis, elasticsearch, mysql) ไม่นับ memcache แล้วก็เอา log ไป store ใน plain text ซ้ำอีกเพื่อการทำ filter แบบด่วนๆ

By: EThaiZone
ContributorAndroidUbuntuWindows
on 15 February 2015 - 23:03 #791499 Reply to:791473
EThaiZone's picture

เสริมนิดว่าอย่าใช้ elasticsearch ทำ storage ครับ แม้มันจะดีและเร็ว แต่ว่าถ้า insert update มันช้า เพราะมันต้องทำ index ยิ่งกำหนด mapping ละเอียด ยิ่งช้าลงไปอีก การแยก multi tier database แบบคุณไอซ์บอกคืออะไรที่ดีจริงๆ ไม่ทำไม่ได้ในสเกลใหญ่ (แต่ต้องถาม infra เล่นด้วยไหม ส่วนโปรเจ็คส่วนตัว ผมจัดแบบนี้เลยล้ะ)

ส่วนตัวแนะนำคือใช้ search เก็บแต่ index แต่ไม่ store แล้วถ้าทูลอย่างอื่นมาจัด queue ในการ build เข้า elasticsearch จะดีกว่า ผมเคยใช้เต็มๆ กับ itruemart.com มาแล้วเลยบอกได้ว่าอยากทำให้ดีกว่านี้

ส่วนมากคือ search เท่านั้นควรไปอ่านจาก elasticsearch เพราะเร็ว และจัดการพวก boost scoring ได้ดี ไม่ต่างกับค้นจาก Google เลย แล้วค่อยเอาเลข id ที่ได้ไปค้น DB อันอื่นที่ทำ storage จริงๆ จากที่ใช้มา elasticsearch ทำระบบ search ดีมากและผมชอบที่สุดเลยล่ะ

ส่วน redis นี้ของชอบผมเลยนะ ชอบกว่า memcache อีกเพราะเจอ memcache ไม่เคลียร์ตอนมันหมดอายุมาล่ะ ไม่รู้เพราะอะไร (แน่นอนว่าตอนนั้นผมอยู่ในฐานะโปรแกรมเมอร์ และอินฟราเป็นของบริษัทอื่น ดังนั้นผมก็งงๆ และก็ใช้ๆ ไปเหอะ)

ปล. elasticsearch กินแรมดีจริงๆ ถ้า search เยอะๆ แนะนำแยกเครื่องครับ ถ้าทำใช้เองแล้วเครื่องจำกัด อย่าลืมเซ็ต memheap ไม่ให้มันจองเมมเกินไปนะครับ


มันไม่ง่ายเลยที่จะทำ GIF ให้มีขนาดน้อยกว่า 20kB

By: jaideejung007
ContributorWindows PhoneWindows
on 16 February 2015 - 15:33 #791703 Reply to:791473
jaideejung007's picture

คุณไอซ์ พอจะบอกใบ้ชื่องานนี้ได้ไหมครับ เป็นงานเกี่ยวกับอะไรครับ

ทำไมถึงดูโหดจัง วันละ 50GB

ขอบคุณครับ

By: stan
ContributoriPhoneAndroidUbuntu
on 16 February 2015 - 21:23 #791787 Reply to:791703
stan's picture

น่าจะ Pantip

By: PaPaSEK
ContributorAndroidWindowsIn Love
on 16 February 2015 - 22:00 #791801 Reply to:791787
PaPaSEK's picture

ถ้าใช่ อ่านต่อที่นี่

http://macroart.net/2013/10/mongodb-lessons-learned-on-pantip/

By: EThaiZone
ContributorAndroidUbuntuWindows
on 21 February 2015 - 21:19 #793427 Reply to:791787
EThaiZone's picture

พันทิพย์ไม่ได้ใช้ครับ ที่ออฟฟิตผมมีคนหนึ่งมาจากพันทิพย์ เขายังสนใจ elasticsearch เลย แต่ว่าเขาไม่เคยใช้ครับ


มันไม่ง่ายเลยที่จะทำ GIF ให้มีขนาดน้อยกว่า 20kB

By: bluezip
AndroidUbuntuWindows
on 17 February 2015 - 10:14 #791899 Reply to:791703

pantip ใช้ mongodb เป็น base ถ้ายังใช้ elasticsearch อีกมันดูแปลกๆ
เพราะ mongodb และ elasticsearch เป็นฐานข้อมูลประเภทเดียวกันคือ document เหมือนกัน ความสามารถจะคล้ายๆกัน ทำงานได้พอๆกัน
ถ้าใช้ elasticsearch แล้วใช้ MemcacheDB มาช่วยหรือใช้ mongodb แล้วใช้ redis มาช่วยอันนี้ไม่แปลก

ประเภทของฐานข้อมูล Nosql คือ

  • Document databases เช่น MongoDB, CouchDB, Elasticsearch
  • Graph stores เช่น Neo4J, Infinite Graph, InfoGrid
  • Key-value stores เช่น DynamoDB, Redis, MemcacheDB
  • Wide-column stores เช่น Cassandra, Amazon SimpleDB, Hadoop / HBase
By: icez
ContributoriPhoneAndroidRed Hat
on 18 February 2015 - 09:38 #792172 Reply to:791703

analytic tools ตัวนึงครับ aggregate log มา process

By: PaPaSEK
ContributorAndroidWindowsIn Love
on 18 February 2015 - 10:08 #792185 Reply to:792172
PaPaSEK's picture

โอว ... แล้วที่เล่าว่าต้องเพิ่มเครื่องวันละเครื่องเนี่ย ในทางปฏิบัติเพิ่มจริงมั้งครับ?

By: icez
ContributoriPhoneAndroidRed Hat
on 18 February 2015 - 23:06 #792436 Reply to:792185

ตอนนี้เหลือแต่ที่วันละ 5GB ครับ เครื่องนึงอยู่ได้เกือบปี ดีหน่อย

By: PaPaSEK
ContributorAndroidWindowsIn Love
on 19 February 2015 - 08:05 #792491 Reply to:792436
PaPaSEK's picture

ขอบคุณครับ ผมยังนึกว่าจะมีองค์กรแบบกูเกิลในไทย ที่ต้องมีแผนกนึงเพิ่มเครื่องเพิ่มฮาร์ดดิสก์ทุกวัน

By: tontan
ContributorAndroidSymbianUbuntu
on 22 February 2015 - 12:17 #793501 Reply to:792436
tontan's picture

อยากรู้ครับว่า Log เยอะขนาดนี้ มีระยะเวลาการจัดเก็บอย่างไรครับ


บล็อก:wannaphong.com บล็อก Python 3

By: tontan
ContributorAndroidSymbianUbuntu
on 17 February 2015 - 07:12 #791867 Reply to:791473
tontan's picture

ขอบคุณครับ ฐานข้อมูลใหญ่มากเลย


บล็อก:wannaphong.com บล็อก Python 3

By: PaPaSEK
ContributorAndroidWindowsIn Love
on 15 February 2015 - 21:18 #791486
PaPaSEK's picture

อ่านสนุกดีครับ อยากอ่านอีก

By: Alios
iPhoneAndroidWindows
on 16 February 2015 - 08:30 #791548

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

พอจบงานนี้ทาง บ ก็เลิกรับงานแนวนี้อีกเลย

By: adente
ContributorSUSESymbianWindows
on 16 February 2015 - 10:31 #791581 Reply to:791548
adente's picture

บาดเจ็บล้มตายกันไปมาก

By: waroonh
Windows
on 16 February 2015 - 12:53 #791641 Reply to:791548

ปรกติครับ ผมเจอมาเยอะ
ขึ้น project แห่กัน เข้ามา
พอจะ deploy ลาออก

ใช้ชีวิตง่ายดี ไม่ต้องรับผิดชอบอะไร
ใครรับ maintain ปัญหาต่อได้ คุณจะมีงาน ไม่จบไม่สิ้น แถมชาร์ตได้ แพงมากด้วยนะ

By: jgods
AndroidUbuntuWindows
on 16 February 2015 - 15:15 #791692 Reply to:791548

บ. ผมนี่แหล่ะ รับงาน ที่เน่าจาก ที่อื่น ๆ แบบประมาณ เอาไม่รอดแล้ว ผมจะเข้าไปจัดการให้ ถ้าสู้ราคานะครับ
โดยเฉพาะงานรัฐบาล ที่เอกชนใหญ่ ๆ ไปรับแล้ว ไม่รอดอ้ะ ผมเจอมาเยอะ DATA ใหญ่มาก ๆ ดันให้เด็กมือใหม่
มาทำเพราะราคาถูก แล้วพอเจอ TEST SCRIPT เข้าไป ล่มไปไม่เป็นสิ แรก ๆ ก็เห็น show power กันซะ
DATABASE โครงการรัฐเนี่ย เยอะมาก แต่ขอบอก เอาที่จำเป็นจริง ๆ อาจจะไม่ถึง 60% นอกนั้น ขยะดี ๆ นี่เองเพราะ
แต่ละเจ้าที่มารับก็ต่างคนต่างทำ ไม่มีคนคุม เส้นทาง และ ข้อมูล กว่าจะมานึกได้ ก็เดินมาไกลละ

By: tontan
ContributorAndroidSymbianUbuntu
on 17 February 2015 - 07:34 #791869 Reply to:791548
tontan's picture

ขอบคุณครับ ถึงว่าเลิกรับงานแนวนี้กัน


บล็อก:wannaphong.com บล็อก Python 3

By: menu_dot on 16 February 2015 - 19:47 #791768

รอฟังด้วยครับ สนใจมากเป็นพิเศษ

By: stan
ContributoriPhoneAndroidUbuntu
on 16 February 2015 - 21:33 #791793
stan's picture

ผมเป็นมือสมัครเล่น ระบบไม่ได้ใหญ่เท่าไหร่ ก็ลองปรับไปเรื่อยๆแหละครับ ตาม Hardware ที่มีอย่างจำกัด
ใช้ mysql mongodb ผสมๆ กันไป เพราะบางส่วนถ้าจะย้ายจาก mysql ไป mongodb นี่งานช้างเลย

ส่วนด้าน write จะใช้ Redis และ memcache มาช่วย โดยเก็บลง redis ก่อนแล้วใช้ nodeJS เป็น distribute worker มา aggregate / reduce ก่อน Write ลง DB

ด้าน read ก็ใช้ redis / memcache มา cache query ไว้ บางส่วน
บางส่วนที่ไม่ได้อัพเดทบ่อยก็ใช้วิธีสร้าง static html ให้ web server ดึงตรงไปเลย

By: tontan
ContributorAndroidSymbianUbuntu
on 17 February 2015 - 07:21 #791868 Reply to:791793
tontan's picture

ขอบคุณครับ


บล็อก:wannaphong.com บล็อก Python 3

By: tontan
ContributorAndroidSymbianUbuntu
on 17 February 2015 - 07:36 #791870
tontan's picture

เครื่องที่ใช้งานด้านฐานข้อมูลระดับใหญ่นี้ ส่วนใหญ่เขาเน้นอะไรมากกว่าครับ ระหว่าง CPU กับ RAM


บล็อก:wannaphong.com บล็อก Python 3

By: bluezip
AndroidUbuntuWindows
on 17 February 2015 - 10:26 #791902 Reply to:791870

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

By: lancaster
Contributor
on 17 February 2015 - 21:39 #792104 Reply to:791870

เอาจริงๆทั้ง cpu และ ram มันก็จะต้องมาด้วยกันแหละครับ ให้มัน balance กันไป

ขออย่าเจอแบบเครื่อง 20 core แต่ให้แรมมาแค่ 16g ละกันครับ 5555

By: tontan
ContributorAndroidSymbianUbuntu
on 18 February 2015 - 22:05 #792425 Reply to:792104
tontan's picture

ถ้าเจอจะเป็นอย่างไรครับ ฐานข้อมูลที่ผมดูแล ไม่เคยถึงครับ


บล็อก:wannaphong.com บล็อก Python 3

By: zixs
ContributoriPhoneWindows PhoneAndroid
on 20 February 2015 - 00:42 #792903
zixs's picture

ผมเคยทำ DB ไว้รองรับข้อมูลขนาดใหญ่ครับ แต่ถึงเวลาจริงๆมันไม่ใหญ่อย่างที่คิด 5555
ผมเอาทุกอย่างยัดลง Cassandra ครับ ศึกษา data model design + db architech อยู่เปนเดือน ทำเสร็จแล้วมาถึงคิดได้ว่าน่าจะรอให้มันใหญ่จริงๆแล้วค่อยทำดีกว่า 5555
แต่ผลลัพที่ได้น่าประทับใจมากนะครับ เวลาในการ select ข้อมูลออกมานี่เร็วมาก ยิ่งใช้ Go เขียนเป็น Backend นี่ response เร็วมากครับ (ไม่ได้เก็บ log ไว้นะครับจำตัวเลขไม่ได้)
สุดท้ายนี้ขอฝาก Go lang และ Cassandra ไว้ในอ้อมอกของทุกคนด้วยนะครับ


Blog: https://medium.com/@tanakritsai

By: PaPaSEK
ContributorAndroidWindowsIn Love
on 20 February 2015 - 08:22 #792964 Reply to:792903
PaPaSEK's picture

ชอบ Dust eater มากๆ ครับ

จะมีกี่คนที่เข้าใจ =_=

By: zixs
ContributoriPhoneWindows PhoneAndroid
on 20 February 2015 - 09:08 #792986 Reply to:792964
zixs's picture

เออะ! ผมนี่ถึงกับต้องไปเสริท =_=


Blog: https://medium.com/@tanakritsai

By: McKay
ContributorAndroidWindowsIn Love
on 21 February 2015 - 22:19 #793443 Reply to:792964
McKay's picture

ตายอย่างสมศักดิ์ศรีสินะ


there are 2 types of salim. one is donkey and another one is asshole.

By: EThaiZone
ContributorAndroidUbuntuWindows
on 21 February 2015 - 21:28 #793430 Reply to:792903
EThaiZone's picture

Cassandra มันออกแบบมาสำหรับเรื่อง write durability นะครับ อันนี้บอกก่อน select ไม่ใช่จุดเด่นของมันครับ

ถ้าอยาก select เร็วๆ ไป mongodb ดีกว่าครับ


มันไม่ง่ายเลยที่จะทำ GIF ให้มีขนาดน้อยกว่า 20kB

By: bochaiyadej on 5 September 2020 - 11:38 #1174445

ผมลง PostgressSQL ในโน้ตบุ้คของตัวเอง แล้วสร้าง table เดี่ยว ๆ ไม่ join table อื่น
ข้อมูลเกี่ยวกับยอดขายและสต็อคของสาขา แล้วทำการ random gen data 100 ล้านเรคอร์ด size 36 GB
เป็นข้อมูล by date,store,inv_no,barcode แล้วทำการ selecu sum()
date,store,barcode ใช้เวลาในการ sum() 3.18 นาที ถือว่าช้าหรือใช้ได้แล้วครับ
ผมต้องทดลองกับเครื่องโน้ตบุ้คตัวเองก่อน ยังไม่กล้าไปลองกับ Server on Cloud

By: songwut on 15 May 2021 - 17:06 #1209074 Reply to:1174445

ถ้าทำเป็นเว็บ ก็น่าจะขึ้น Request Timeout ไปแล้วครับ

By: mindphp on 16 May 2021 - 03:07 #1209096

กระทู้นานมาก แต่ละเม้นมีประโยชน์ๆ