รู้ไว้ใช่ว่า ใส่บ่าแบกหาม 💥💥
Database ถ้ามีผู้ใช้งานไม่กี่คน
ก็คงไม่มีทางล่มง่ายๆ
และข้อมูลคงไม่สูญหายง่ายๆ เช่นกัน
.
แต่ทว่าเวลาใช้งานจริง ในบางระบบ เช่น เว็บแอพพลิเคชั่น
โอ้วแม่เจ้า จะมีผู้ใช้เยอะมากมาย
ก็ย่อมมีการติดต่อไปยัง database เป็นปริมาณเยอะมาก
ซึ่งฮอตไม่แพ้กับเนตไอดอลชื่อดังเลยทีเดียว
.
ซึ่งอาจทำให้ database ล่มได้
ส่งผลให้ฝั่งหน้าเว็บแจ้ง error บอกโจร 500 ขึ้นบ้าน
เป็นอันรู้กันว่าระบบหลังบ้าน มีอะไรซักอย่างที่ตายแหละ 🥶
.
นี้แค่บทลงโทษเบาะๆ
แต่ถ้าเกิดโชคร้ายซวยสุดสุด ข้อมูลหายไป
บทลงโทษคือคอขาดคนทำแน่ๆ
.
ด้วยเหตุนี้จึงต้องใช้วิชานินแยกเงาพันร่างอย่างนารูโตะ
ทำให้ database โคลนนิ่งตัวเอง แยกออกเป็นหลายๆ ตัว
แล้วกระจายไปตาม Node ต่าง ๆ
(กระจายไปตามเครื่อง server ต่างๆ หรือจะ virtual machine ก็ได้)
.
วิธีนี้จะทำให้ database บริหารเสน่ห์ได้ดีเลยทีเดียว
เพราะถ้าเกิด database ก้อนหนึ่งตายไป
ก้อนที่เหลือก็ยังทำงานได้อยู่ ไม่ล่มหายตายจากง่ายๆ
อีกทั้งก็มีข้อมูล backup มีเก็บสำรองไว้หลายก้อน
แลดูปลอดภัยดีออก
.
คำถาม ในเมื่อมี database แยกร่างเป็นหลายก้อน 🤔
แล้วแต่ละก้อนมันสื่อสารระหว่างกันยังไงหว้า?
พวกเขามีข้อมูลตรงกันได้อย่างไร?
.
คำตอบ 😁
1. โดยปกติเขาจะกำหนดให้ database ก้อนใดก้อนหนึ่ง
ทำหน้าที่เป็นหัวหน้าแก๊ง เรียกว่า master
.
2. ส่วนก้อนที่เหลือจะเป็นลูกสมุน เรียกว่า slave หรือ secondary
.
3. เวลา database ถูกเขียนจากโลกภายนอก (write) เช่น ถูกเขียนจากเว็บแอพลิเคชั่น ก็จะต้องมาเขียน (write) ที่หัวหน้าแก๊ง (master) คนเดียว
ส่วนลูกสมุนนะเหรอ เอ็งไม่มีสิทธิ
.
4. จากนั้นหัวหน้าแก๊งก็จะถ่ายสำเนาตัวเอง (replicate)
ก็อปปี้ข้อมูลไปให้ลูกสมุน (slave) ทุกตัว
เพียงเท่านี้ลูกน้องก็จะมีข้อมูลตรงกันกับลูกพี่เด๊ะ
.
5. แต่ทว่าเวลาพวกเขาเหล่า database ถูกอ่าน (read) จากโลกภายนอก เช่น ถูกอ่านจากเว็บแอพลิเคชั่น
ก็เข้ามาอ่านได้ทั้งกับหัวหน้าแก๊ง (master)
หรือจะอ่านที่ลูกสมุน (slave) ก็ได้นะ
.
🖋 ด้วยเหตุนี้ database ทุกก้อน (master กับ slave)
ก็จะมีจังหวะหัวใจตรงกัน ข้อมูลสอดประสานตรงกัน 💓
.
แล้วถ้าวันดีคืนดี เกิดดวงซวย ราหูเข้าเรือนมรณะ ชะตาขาด
อยู่ดีๆ หัวหน้าแก๊ง (master) ตายหรือมีอันเป็นไปซักอย่าง
เมื่อนั้นตัวลูกสมุน (slave) ตัวใดตัวหนึ่ง
ก็จะถูกแต่งตั้งให้ดำรงตำแหน่งหัวหน้าแก๊ง (master) คนต่อไปแทน
.
หมายเหตุ ✍️
คอนเซ็ปต์แยกร่าง database แล้วแบ่งเป็น master กับ slave
ก็จะมี database หลายยี่ห้อที่เอาวิธีนี้ไปใช้งาน เช่น
MariaDB, MySQL, Microsoft SQL, MongoDB เป็นต้น
.
ส่วน Database ยี่ห้ออื่นเช่น Oracle ก็จะใช้วิธีอื่น
อันนี้เล่าเฉพาะวิธี master กับ slave ง่ายสุดแหละ
.
😜 หมายเหตุ ในมุม #โปรแกรมเมอร์ ก็ไม่ต้องรู้หรอกว่าจะเซท database แบบ master กับ slave ทำยังไง
เพราะทำงานจริงเขาจะมีทีมงานดูแลเรื่องนี้ให้แหละ
แยกทีมกัน
อันนี้เล่าสู้กันฟังเฉยๆ
.....จบ
.
.
.
✍เขียนโดย โปรแกรมเมอร์ไทย thai programmer
node mongodb 在 โปรแกรมเมอร์ไทย Thai programmer Facebook 八卦
ขอแจ้งข่าวหนังสือแจกฟรีด้านคอมที่เคยเขียนและปล่อยให้อ่านฟรีบน
https://www.ebooks.in.th/
ตอนนี้เว็บเขาเมลแจ้งมาว่าจะปิดเว็บไซต์ปีหน้า
มีผลตั้งแต่ปีหน้า 1 ม.ค. 65
และแอปพลิเคชั่นทั้งหมด ระบบยุติการให้บริการ
.
เลยขอย้ายหนังสือที่เคยแต่งและแจกจ่ายให้อ่านฟรีที่นี้
ย้ายมาไว้ที่เว็บ MEB แทนแล้วกัน
วิธีอ่านต้องติดตั้งโปรแกรมหรือแอพของทาง MEB ก่อน
ถึงจะอ่านได้
.
ขอดีเวลาอัปเดตเนื้อหา
มันก็จะซิงค์อัปเดตเนื้อหาอัตโนมัติ
ไม่ต้องเสียเวลาดาวน์โหลดใหม่
ทำให้อ่านเนื้อหาสดๆ ใหม่ๆ
(บางเล่มก็ยังแจกเป็น PDF)
.
✔ 1) เล่มแรก Node.js เล่ม1
https://www.mebmarket.com/web/index.php?action=BookDetails&data=YToyOntzOjc6InVzZXJfaWQiO3M6NzoiMTcyNTQ4MyI7czo3OiJib29rX2lkIjtzOjY6IjExMTUyMiI7fQ
.
✔ 2) เล่มสอง Node.js เล่ม2
https://www.mebmarket.com/web/index.php?action=BookDetails&data=YToyOntzOjc6InVzZXJfaWQiO3M6NzoiMTcyNTQ4MyI7czo3OiJib29rX2lkIjtzOjY6IjExMTczMCI7fQ
.
✔ 3) ติดตั้ง Node.js
https://www.patanasongsivilai.com/blog/sdm_downloads/howto-node-js-npm/
.
แต่สามเล่มแรกต้องแข็งแกร่งภาษา JavaScript ใครไม่เป็น
แนะนำหนังสือ JavaScript ES6 หาซื้อได้ที่นี้
https://www.se-ed.com/product/พัฒนาเว็บแอปพลิเคชั่นด้วย-JavaScript.aspx?no=9786160825394
(เนื้อหายังไม่ได้อัปเดต)
.
✔ 4) MongoDB
https://www.mebmarket.com/web/index.php?action=BookDetails&data=YToyOntzOjc6InVzZXJfaWQiO3M6NzoiMTcyNTQ4MyI7czo3OiJib29rX2lkIjtzOjY6IjEyMjA5OSI7fQ
.
✔ 5) รวยด้วย Outsource สายดำ
https://www.patanasongsivilai.com/blog/sdm_downloads/rich_with_outsource/
(ถ้าสนใจเล่มจริงหรือebook ก็ลิงก์นี้ มีขาย
https://www.patanasongsivilai.com/blog/sale_book_rich_with_outsource/)
.
✔ 6) สรุป SQL
https://www.patanasongsivilai.com/blog/sdm_downloads/basic-syntax-in-sql/
.
✔ 7) AI เขย่าโลก
https://www.mebmarket.com/web/index.php?action=BookDetails&data=YToyOntzOjc6InVzZXJfaWQiO3M6NzoiMTcyNTQ4MyI7czo3OiJib29rX2lkIjtzOjY6IjExNDY1NyI7fQ
ถ้าสนใจเล่มสมบุรณ์แต่เป็นเวอร์ชั่น ebook ก็มีวางขายนะ
https://www.mebmarket.com/web/index.php?action=BookDetails&data=YToyOntzOjc6InVzZXJfaWQiO3M6NzoiMTcyNTQ4MyI7czo3OiJib29rX2lkIjtzOjY6IjEwODI0NiI7fQ
.
.
ฝากช่อง youtube ด้วยครับ มือใหม่หัดทำ
https://www.youtube.com/channel/UCvhCKtG5cRE6K5--RJPql_w
.
.
✍ เขียนโดย โปรแกรมเมอร์ไทย thai programmer
node mongodb 在 BorntoDev Facebook 八卦
NoSQL คืออะไรกันนน ทำไมมันถึงฮิตมากขึ้นทุกวันล่ะเนี่ยย !!
.
มารู้จักกับฐานข้อมูลประเภทนี้กันเถอะ มันมีข้อดียังไงนะ ? มาหาคำตอบไปพร้อมกันเลยยย
.
📦 NoSQL เป็นระบบจัดการฐานข้อมูลที่ตรงข้ามกับ SQL เอาเป็นว่าเราสามารถเก็บข้อมูลได้หลายประเภท NoSQL มันจะทำให้เกิดความยืดหยุ่นในการเก็บข้อมูลมาก ๆ แถมยังมีประสิทธิภาพ และใช้งานง่ายอีกด้วย
.
✨ จุดเด่นของ NoSQL
- ถูกออกแบบให้รองรับการอ่าน-เขียนข้อมูลจำนวนมากๆ ได้อย่างไวสุด ๆ ไวกว่าแบบ RDB อีกนะ
- รองรับข้อมูลที่เป็น Unstructured และ Semi-structured
- หากมีข้อมูลมากขึ้นก็สามารถขยายพื้นที่ได้ง่ายกว่า RDB
- มีความยืดหยุ่นมาก
- มีหลายขนาดให้เลือกใช้ และราคาถูก
.
👉 สามารถจัดประเภทของ NoSQL ได้ 4 ประเภท ได้แก่
.
📃 Document - เก็บข้อมูลแบบ JSON หรือ XML ซึ่งมันไม่ต้องกำหนดรูปแบบของข้อมูล ใช้งานง่ายเพราะเราไม่ต้องทำการแปลงข้อมูลไปมานั่นเอง ซึ่งมันเหมาะสำหรับเก็บข้อมูลที่เพิ่มขึ้นอย่างต่อเนื่อง
.
🔑 Key-value - เก็บข้อมูลด้วย Key และ Value ทำให้ใช้งานง่าย และมีความรวดเร็วในการเรียกใช้ข้อมูลมาก ๆ เหมาะสำหรับข้อมูลที่ต้องการความเร็วในการประมวลผล
.
✏️ Wide-column - คล้าย ๆ กับ RDM นะแต่จะยืดหยุ่นกว่ามาก ๆ เพราะสามารถเก็บข้อมูลเป็น Row และ Column กี่แบบก็ได้ แถมยังไม่จำเป็นต้องมี Row และ Column เท่ากันก็ได้ อิสระสุด ๆ เหมาะสำหรับข้อมูลขนาดใหญ่
.
📊 Graph - จะเก็บข้อมูลในรูปแบบของความสัมพันธ์ของ Node และ Edge จัดเก็บข้อมูลได้อย่างอิสระ เหมาะสำหรับข้อมูลที่มีความสัมพันธ์กัน
.
☀️ ตัวอย่างของ Database แบบ NoSQL ในปัจจุบัน ได้แก่ MongoDB, DynamoDB, Redis, Neo4j, FlockDB, และ Cassandra นั่นเองจ้า
.
หากใครมีอะไรเพิ่มเติมสามารถคอมเมนต์พูดคุยกันได้ใต้โพสต์นี้เลยน้าา😆
.
borntoDev - 🦖 สร้างการเรียนรู้ที่ดีสำหรับสายไอทีในทุกวัน
node mongodb 在 3rd Edition by Eelco Plugge & David Hows & Peter Membrey ... 的八卦
The Third Edition also now includes Node.js along with Python. MongoDB is the most popular of the "Big Data" NoSQL database technologies, and it's still ... ... <看更多>