ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingขอสอบถามเกี่ยวกับ MYSQL 50 ล้าน Record ครับ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: ขอสอบถามเกี่ยวกับ MYSQL 50 ล้าน Record ครับ  (อ่าน 864 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
userhuman
ก๊วนเสียว
*

พลังน้ำใจ: 7
ออฟไลน์ ออฟไลน์

กระทู้: 215



ดูรายละเอียด เว็บไซต์
« เมื่อ: 03 สิงหาคม 2017, 14:48:27 »

พอดีมันช้ามากเลย แบบว่าจะดึงข้อมูลเนี่ย 10วิ 20วิ ยิ่งเขียนคำสั่งเยอะๆ ยิ่งไปกันใหญ่เลย

พอมีวิธีไหมครับ  wanwan023
บันทึกการเข้า

Putter™
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 421
ออฟไลน์ ออฟไลน์

กระทู้: 2,103



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 03 สิงหาคม 2017, 15:14:37 »

เช็ค 2 ส่วนนะครับ

1 System + Hardware
- Storage เป็น SSD หรือเปล่าครับ ถ้าไม่ใช่แนะนำให้เปลี่ยนเป็น SSD
- Tuning ในส่วนของ buffer cache , InnoDB buffer ต่างๆเรียบร้อยไหม เช็คพวก tuning พื้นฐานได้จาก
https://raw.githubusercontent....uner-perl/master/mysqltuner.pl
https://launchpad.net/mysql-tuning-primer
- ถ้า query ข้อมูลเดิมๆแนะนำให้ทำ cache เพิ่มครับเช่น Memcache หรือท่ายากนิดนึงแนะนำ Maxscale (https://mariadb.com/products/technology/maxscale )

2 ในส่วนของ query และ การออกแบบ DB
- มีการ join เยอะเกินไหม ลองหาจุดที่ต้อง Optimize query เพิ่มครับ ลดการ Join ได้ให้ลดแล้วไป query เพิ่มแทนการ Join จะลดไปได้มาก
- เช็คให้แน่ใจว่ามีการทำ Index ข้อมูลครับ
- เช็คให้แน่ใจว่าใช้ Engine เป็น InnoDB ครับ


สุดท้ายถ้าเช็คหมดแล้วเครื่องเดียวทำงานไม่ไหวแนะนำให้ทำ Cluster ครับ ให้หลายๆเครื่องช่วยกันทำงานและทำให้สามารถ query ได้จากทุก Node (multi master mode)
« แก้ไขครั้งสุดท้าย: 03 สิงหาคม 2017, 15:16:20 โดย Putter™ » บันทึกการเข้า

Ruk-Com Hosting (IAAS)
Ruk-Com Cloud (PAAS)
รีวิวโฮสติ่ง Ruk-Com  จากสมาชิก THAISEO

ไม่พอใจยินดีคืนเงินเต็มจำนวนทุกบริการ
userhuman
ก๊วนเสียว
*

พลังน้ำใจ: 7
ออฟไลน์ ออฟไลน์

กระทู้: 215



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 04 สิงหาคม 2017, 14:00:41 »

ขอบคุณมากเลยครับ ตอนนี้ใช้ AWS amazon service ใช้ Aurora MYSQL DB  Tongue

ยังไม่ได้ทำ Index เลยครับ สงสัยต้องทำมั้งแล้ว  wanwan011


เช็ค 2 ส่วนนะครับ

1 System + Hardware
- Storage เป็น SSD หรือเปล่าครับ ถ้าไม่ใช่แนะนำให้เปลี่ยนเป็น SSD
- Tuning ในส่วนของ buffer cache , InnoDB buffer ต่างๆเรียบร้อยไหม เช็คพวก tuning พื้นฐานได้จาก
https://raw.githubusercontent....uner-perl/master/mysqltuner.pl
https://launchpad.net/mysql-tuning-primer
- ถ้า query ข้อมูลเดิมๆแนะนำให้ทำ cache เพิ่มครับเช่น Memcache หรือท่ายากนิดนึงแนะนำ Maxscale (https://mariadb.com/products/technology/maxscale )

2 ในส่วนของ query และ การออกแบบ DB
- มีการ join เยอะเกินไหม ลองหาจุดที่ต้อง Optimize query เพิ่มครับ ลดการ Join ได้ให้ลดแล้วไป query เพิ่มแทนการ Join จะลดไปได้มาก
- เช็คให้แน่ใจว่ามีการทำ Index ข้อมูลครับ
- เช็คให้แน่ใจว่าใช้ Engine เป็น InnoDB ครับ


สุดท้ายถ้าเช็คหมดแล้วเครื่องเดียวทำงานไม่ไหวแนะนำให้ทำ Cluster ครับ ให้หลายๆเครื่องช่วยกันทำงานและทำให้สามารถ query ได้จากทุก Node (multi master mode)
บันทึกการเข้า

chaynuwong
คนรักเสียว
*

พลังน้ำใจ: 10
ออฟไลน์ ออฟไลน์

กระทู้: 149



ดูรายละเอียด เว็บไซต์
« ตอบ #3 เมื่อ: 08 สิงหาคม 2017, 20:40:54 »

ssd แนะนำคับ
แต่ก่อน ตอนเริ่มเขียนเว็บ เคยใช้แต่ select * from tb_table เอาทั้งหมดอย่างเดียว ซึ่งข้อมูลไม่มากก็ไม่มีปัญา
หลังมา เริ่มข้อมูลเยอะขึ้น เวลา ดึงรอนานไป อันไหนไม่จำเป็นก็ต้องหัดตัดออกไป หลังๆ เลยต้องเลือกเอาเฉพาะฟิว ที่ได้นำมาใช้งานจริงๆครับ

เช่น มีฟิว id name tel  email  adress
ใช้ตัวไหน ก็ select name,email.adress from tb_table  น่าจะช่วยลดการดึงข้อมูลได้บ้างครับ
หวังว่าจะมีประโยชน์บ้างเล็กน้อยน่ะครับ  Tongue
บันทึกการเข้า

sunwu
สมุนแก๊งเสียว
*

พลังน้ำใจ: 17
ออฟไลน์ ออฟไลน์

กระทู้: 720



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 08 สิงหาคม 2017, 23:35:18 »

โอ้วว มีแต่เทพชำนาญๆๆ  wanwan011
บันทึกการเข้า

PropProEA EA บริการสอบกองทุน Funds Forex EA รันพอร์ตกองทุนฟอเร็กซ์รับสอบกองทุน
PropProEA EA บริการสอบกองทุน Funds Forex EA รันพอร์ตกองทุนฟอเร็กซ์EA สอบกองทุน
PropProEA EA บริการสอบกองทุน Funds Forex EA รันพอร์ตจริงกองทุนฟอเร็กซ์EA สอบกองทุน ฟรี EA รันพอร์ตจริง
คลังความรู้สอบกองทุน Funds ForexFundsForex
บริการสอบกองทุนไม่ผ่านคืนเงิน100%EA สอบกองทุน
nscyber
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 50
ออฟไลน์ ออฟไลน์

กระทู้: 1,165



ดูรายละเอียด
« ตอบ #5 เมื่อ: 09 สิงหาคม 2017, 02:03:50 »

ย้ายไป SQL Server หรือพวก NoSQL MongoDB เถอะครับจะได้ไม่เป็นภาระด้านค่าใช้จ่ายในอนาคต สายนี้ก็ไปได้ถ้ามีการปรับและ Optimize ที่ดีขึ้นแต่ก็จะมีค่าใช้จ่ายในการปรับแต่และเสริมอีกเยอะ แต่ถ้าจะเยอะขนาดนี้ อนาคตจะขนาดไหน เปลี่ยนไปใช้พวกตระกูลที่ออกแบบมาสำหรับ Big Data เถอะครับ รับรองลื่นหัวแตก ศึกษาดีๆนะครับ แต่ละตัวจะมีความสามารถแตกต่างกัน เช่นเทพ Query เทพ add data เทพ update

 Tongue
บันทึกการเข้า
หน้า: [1]   ขึ้นบน
พิมพ์