ปรึกษา mongodb การออกแบบ Schema เพื่อมาซึ่ง performance

เริ่มโดย JumDaiDee, 22 ธันวาคม 2019, 00:21:03

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

JumDaiDee

ผมสงสัยว่า จะตั้งชื่อฟิว comment หรือ like อยากให้ได้ประสิทธิภาพสูงสุดครับ
โดยส่วนตัวผมชอบ แบบที่ 1 ดูเป็นกลุ่มก้อนดีครับ comment.count หรือ comment.items
แต่ก็ยังอดคิดไม่ได้ว่า แบบไหน จะดีการทำ index ในระยะยาวครับ

// แบบที่ 1 subdocument
post {
 _id: ObjectId(),
 title: '',
 like: { count: 0, items: [คนถูกใจ] },
 comment: { count: 0, items: [คนคอมเม้น] }
}

// แบบที่ 2 root
post {
 _id: ObjectId(),
 title: '',
 like_count: 0,
 like_items: [],
 comment_count: 0,
 comment_items: []
}

เลยอยากปรึกษาพี่ๆ ที่มีประสบการณ์ให้คำแนะนำครับ
การทำ index แบบ subdocument หรือ Multi Key Indexs จะทำให้ประสิทธิภาพลดลงหรือเปล่าครับ

db.post.createIndex({ "comment_items": 1 })
db.post.createIndex({ "comment.items": 1 })
สินค้าออนไลน์ https://www.shoppook.com/product | โปรแกรมออนไลน์ : https://appnon.com

My rocket

 ติดตามเก็บข้อมูล เพื่อได้ข้อมูลดีๆ

:wanwan003: :wanwan003:
❒¹❴บริการ❵❦
❧①รับยิงโฆษณา Facebook ADS ❴ทุกสาย❵
❒²❴ขาย❵❦❦
❧①Account Facebook ปกติ 1-5+ปี
❧②Account Facebook ADS ที่เคยรันโฆษณา
❧③Account Facebook Business
❥Mrs:Pearl Jiraporn
❥Tell:❍⑥⑤−②⑤❍−⑨①❍⑨
❥IDLine:Pearl_ceo ✠ช่องทางติดต่อหลัก✠


icez

ถ้าทำ index แล้วในแง่ performance ไม่ต่างกันครับ แต่ส่วนตัวชอบแบบที่ 2 มากกว่า
[direct=http://www.thzhost.com/]THZHost[/direct] SSD Hosting ไทย/สิงคโปร์ พร้อม firewall ป้องกันการยิงเว็บ + scan ไวรัสในเว็บ


gamekittituh

ลองศึกษาพื้นฐานง่ายๆใน Doc ของมันดูก่อนครับ ถ้าอย่าง mongoDB เอาไปใช้ทำอะไรถึงจะเหมาะสม แล้ว schema มันทำงานยังไง หรือใช้ Framework/Tools ไหนที่สามารถสร้างได้ อะไรประมาณนั้นครับ 55 จริงๆมันก็มีอีกเยอะนะครับ
ให้บริการรับทำเว็บไซต์ WordPress หรือ Web Application
[direct=https://tawansoft.com/%E0%B8%A3%E0%B8%B1%E0%B8%9A%E0%B8%97%E0%B8%B3%E0%B9%80%E0%B8%A7%E0%B9%87%E0%B8%9A%E0%B9%84%E0%B8%8B%E0%B8%95%E0%B9%8C/]บริการรับทำเว็บไซต์ WordPress ราคาถูก[/direct]
[direct=https://www.tawansoft.com]รับทำเว็บไซต์เชียงใหม่[/direct]
[direct=https://www.hostneverdie.com/support/aff.php?aff=3898]Hosting คุณภาพ ราคาถูก ซัพพอทตลอด 24 ชม.[/direct]
[direct=https://invol.co/cleeh3f]10.10 Mega Campaign Updated![/direct]

koballthai


mean

แบบที่ 2 ทำงานง่ายกว่าครับ
เวลา find max ก็ทำได้ง่ายกว่า


[direct=https://www.ireallyhost.com/]บริการโดเมน, เว็บโฮสติ้ง, SSL Certificate[/direct]
[direct=https://www.ireallyhost.com/ssl]บริการ SSL Certificate , HTTPS สำหรับเว็บไซต์[/direct]
[direct=https://www.ireallyhost.com/]บริการ Web Hosting Free! Domain name ตลอดอายุบริการ [/direct]
[direct=https://www.ireallyhost.com/domain]บริการ จดโดเมน, Free DNS Service, Domain Forwarding, จัดการโดเมนได้เอง Domain Control Panel[/direct

AntiquePeanut

Life in Japan Personal Blog: https://www.okopanthunderstorm.com/
Japanese Horror Story: https://www.thehauntedbar.com/

BOS

ผมชอบแบบ1 นะครับ เป็นสัดส่วนดี
แต่คิดว่าแบบ2 น่าจะให้ประสิทธิภาพในการเข้าถึงข้อมูลได้ดีกว่า