สอบถามเรื่องการใช้ sql ที่จะใช้ดึงข้อมูลจำนวนมหาศาลหน่อยครับ
คือมี table อยู่ 4 ดังนี้
field1 (PK), field2(nvarchar(128)), field3(nvarchar(max)), field4(datetime)
โดยที่ field3 มี data อยู่ราว 9 ล้าน record
โดยตอนนี้จะใช้เวลาประมาณ 25 นาที ในการดึงข้อ data มา โดยใช้แบบ
Code (SQL)
SELECT field1,field2,field3
FROM [table]
อยากทราบว่าพอจะมีวิธีไหนที่จะช่วยให้ดึงข้อมูลมาเร็วกว่า 25 นาทีไหมครับTag : PHP, MySQL, jQuery, Clound Service, Web Hosting, Cloud Database
Date :
2018-03-12 15:32:02
By :
dedee
View :
1127
Reply :
3
เทคนิคนึงที่ใช้ในการ Query คือการทำ Index ซึ่ง Index ฐานข้อมูลเป็นการทำดัชนีของข้อมูล ทำให้ค้นหาข้อมูลจากฐานข้อมูลได้เร็วขึ้น
Date :
2018-03-12 16:06:13
By :
dudesaranyu
จากคำถามที่เขี่ยนมาแล้วงงว่าจะทำอะไรไม่เห็นบอก
คุณจะเรียกข้อมาทั้งหมด 9ล้าน records หรือเปล่า 5555 ซึ่งคงไม่ใช่
หรือคุณจะ คิวรี่เอาข้อมูล จาก field3 ซึ่งมี type field เป็น nvarchar (max)
คุณว่า max นี่มันมีความยาวเท่าไหร่ คิดว่าจะเอามาสร้างเป็น index ไหวไหมครับ
ที่นี้คุณก็คงต้องวิเคราะห์เอาว่า ข้อมูลทั้ง 9mrs นั้นมันควรจะอยู่ตารางเดียวหรือไม่ แบ่งย่อยมันออกเป็น 10 ปี 5ปี 1ปี 6เดือน 3เดือน 1เดือน
ได้หรือไม่ เพื่อแยกการใช้งานที่จำเป็น ไม่ใช่เวลาหาที ต้องมาหามันทั้งหมดจาก 9mrs นั้น
Date :
2018-03-12 20:25:13
By :
Chaidhanan
https://docs.microsoft.com/en-us/sql/t-sql/statements/create-procedure-transact-sql
สร้าง stored procedure ครับ แบบประมาณผลข้อมูลใน db server ให้ครบก่อน
แล้วก็ export มาใช้เฉพาะที่ต้องการ อาจจะสร้าง temporary table ไว้ก็ได้ครับ
Date :
2018-03-13 10:49:28
By :
num
Load balance : Server 02