คำถามติดแท็ก database

แท็กนี้สำหรับคำถามฐานข้อมูลทั่วไป หากคำถามของคุณเฉพาะกับ SQL ให้ใช้แท็กนั้นแทน

4
ฐานข้อมูลนามธรรม - มันมากเกินไปหรือไม่
หลังจากได้สัมผัสกับเลเยอร์สิ่งที่เป็นนามธรรมหลายชั้นฉันเริ่มสงสัยว่าประเด็นใดที่ห้องสมุดทุกแห่งคิดค้นกระบวนทัศน์ที่แตกต่างกันของพวกเขาเองในการเข้าถึงข้อมูล การรับ DAL ใหม่รู้สึกเหมือนได้เรียนรู้ภาษาใหม่อีกครั้งเมื่อสิ่งที่ฉันต้องการทำคือการโน้มน้าวให้เลเยอร์ส่งออกแบบสอบถาม SQL ที่ฉันได้เขียนไปแล้วในหัวของฉัน และนั่นคือโดยไม่ต้องสัมผัสกับการอ่านหลังจากข้อเท็จจริง: # Exhibit A: A typical DAL rows = db(db.ips_x_users.ip_addr == '127.0.0.1') .inner_join(db.ips_x_users.user_id == db.users.id) .select(order=(db.ips_x_users.last_seen, 'desc'), limit=10) # Exhibit B: Another typical DAL rows = db.ips_x_users .join(db.users, on=db.ips_x_users.user_id == db.users.id) .filter(db.ips_x_users.ip_addr == '127.0.0.1') .select(sort=~db.ips_x_users, limit=10) # Exhibit C: A hypothetical DAL based on …
18 database  sql  api-design  dsl 

3
วิธีจัดการกับข้อ จำกัด กุญแจต่างประเทศเมื่อทำการย้ายจากก้อนหินใหญ่ไปเป็นไมโครเซอร์วิซ?
ทีมของฉันกำลังย้ายจากแอปพลิเคชัน ASP.NET แบบเสาหินไปยัง. NET Core และ Kubernetes การเปลี่ยนแปลงรหัสดูเหมือนจะเป็นไปตามคาด แต่ทีมของฉันกำลังเผชิญกับความไม่ลงรอยกันอยู่รอบฐานข้อมูล ขณะนี้เรามีฐานข้อมูล SQL Server ค่อนข้างใหญ่ที่รวบรวมข้อมูลทั้งหมดสำหรับธุรกิจทั้งหมดของเรา ฉันเสนอให้เราแยกฐานข้อมูลในลักษณะที่คล้ายคลึงกับการแยกรหัส - ข้อมูลแคตตาล็อกในฐานข้อมูลหนึ่ง (ตรรกะ) ข้อมูลสินค้าคงคลังในอีกคำสั่งซื้อในอื่นและอื่น ๆ - และแต่ละ microservice จะเป็นผู้ดูแลฐานข้อมูลของมัน . ความหมายที่นี่คือกุญแจต่างประเทศที่ข้ามขอบเขตการให้บริการจะต้องถูกลบออก แบบจำลองข้อมูลทั้งหมดอาจหรือไม่อาจอยู่ในฐานข้อมูลทางกายภาพเดียวกัน แต่แม้ว่าพวกเขาทำแบบนั้นพวกเขาไม่ควรโต้ตอบกันโดยตรง คำสั่งซื้ออาจยังคงอ้างอิงรายการแคตตาล็อกโดย Id แต่ความสมบูรณ์ของข้อมูลจะไม่ถูกบังคับใช้อย่างเคร่งครัดในระดับฐานข้อมูลและข้อมูลนั้นจะต้องเข้าร่วมในรหัสมากกว่าใน SQL ฉันเห็นการสูญเสียสิ่งเหล่านี้เมื่อมีการแลกเปลี่ยนที่จำเป็นเมื่อต้องย้ายไปที่ไมโครเซอร์วิสและรับผลประโยชน์ที่ปรับขนาดได้ที่มาพร้อมกับ ตราบใดที่เราเลือกตะเข็บของเราอย่างชาญฉลาดและพัฒนาไปรอบ ๆ มันก็น่าจะดี สมาชิกในทีมคนอื่น ๆ ยืนกรานว่าทุกอย่างจะต้องอยู่ในฐานข้อมูลเสาหินเดียวกันดังนั้นทุกอย่างสามารถเป็นกรดและรักษาความสมบูรณ์ของการอ้างอิงได้ทุกที่ สิ่งนี้นำมาสู่คำถามของฉัน ก่อนอื่นท่าทางของฉันเกี่ยวกับข้อ จำกัด ของคีย์ต่างประเทศและเข้าร่วมเป็นไปได้หรือไม่ ถ้าเป็นเช่นนั้นมีใครรู้บ้างเกี่ยวกับวัสดุการอ่านที่น่าเชื่อถือที่ฉันสามารถเสนอให้เพื่อนร่วมงานของฉันได้หรือไม่? ตำแหน่งของพวกเขาเกือบจะเป็นศาสนาและพวกเขาดูเหมือนว่าพวกเขาจะถูกครอบงำด้วยอะไรก็ตามที่สั้น ๆ ของ Martin Fowler เขาบอกพวกเขาว่าพวกเขาผิด

8
เมื่อใดที่หนึ่งค่าข้อมูลจริงของฮาร์ดโค้ดในรหัสเมื่อเทียบกับการใช้ฐานข้อมูล
คำถามที่ยืนยาวสำหรับฉันคือ: ฉันจะเก็บข้อมูล (ค่าจริง) ในตารางฐานข้อมูลเมื่อใดและฉันจะเก็บไว้ในรหัสเมื่อใด ฉันทามติที่ยังไม่ได้บอกกล่าวมักจะเป็นเช่นนั้น (*): หากเป็นตัวแปรเดียวหรือโครงสร้างอย่างง่ายหรืออาเรย์ของค่าสองสามค่าให้ใส่ข้อมูลลงในโค้ด [* ฉันทามติได้ถกเถียงกันในความคิดเห็นและคำตอบ แต่โดยทั่วไปฉันต้องการหลักฐานบางอย่างเพื่อเริ่มคำถามดังนั้นอย่าลังเลที่จะท้าทายและพัฒนามัน ] ตัวอย่าง: $number = 44; $colors = array("blue", "yellow", ... "mauve"); หากมีข้อมูลมากกว่าร้อยแถวในประเภทเดียวกันให้ใช้ฐานข้อมูล แต่ดูเหมือนจะมีพื้นที่สีเทา แล้วกรณีไหนที่ไม่ชัดเจน? การพิจารณาและปัจจัยอะไรบ้างที่เราต้องให้ความสนใจในการตัดสินใจ ตัวอย่าง: สมมติว่า บริษัท ของคุณใช้เฟรมมอเตอร์ที่แตกต่างกัน 10-15 ประเภทซึ่งสามารถแสดงเป็น "412T" คุณมีพวกมันประมาณ 30 ตัวและพวกมันเปลี่ยนไม่ค่อย คุณสามารถสร้างตารางฐานข้อมูลสำหรับรหัสเหล่านั้นหรือฮาร์ดโค้ดในฐานข้อมูล ในกรณีนี้มอเตอร์คงที่สิ่งทางกายภาพที่ไม่น่าจะเปลี่ยนบ่อย ทำให้พวกเขาอยู่ในรหัสวิชาที่พวกเขาไปยังแหล่งควบคุมซึ่งในฐานข้อมูลการเปลี่ยนแปลงฐานข้อมูลมักจะไม่ถูกติดตาม แต่เก็บไว้ในฐานข้อมูลปลดปล่อยรหัส (แยก) จากข้อมูล อีกตัวอย่าง (จริง) ที่ฉันสามารถใช้ได้คือคำถามของฉัน: /programming/26169751/how-to-best-get-the-data-out-of-a-lookup-table (ปัจจุบัน 48 แถวของข้อมูลตัวเลือก)

4
ออกแบบฐานข้อมูล - เก็บสถานะหรือคำนวณสถานะทุกครั้งหรือไม่
สมมติว่าฉันมีแอปพลิเคชันฐานข้อมูลเชิงสัมพันธ์และวัตถุ "ผู้ใช้" และวัตถุ "ข้อความ" ตอนนี้ฉันต้องการแสดงจำนวนข้อความที่ยังไม่ได้อ่านแก่ผู้ใช้รายนี้ วิธีที่ดีที่สุดในการเก็บถาวรนี้คืออะไร ฉันจะแนะนำฟิลด์ในผู้ใช้และนับถ้าผู้ใช้ได้รับข้อความและลดจำนวนถ้าเขาอ่านหรือไม่ หรือฉันจะเรียกใช้แบบสอบถามทุกครั้งเพื่อคำนวณจำนวนข้อความสำหรับผู้ใช้ที่ถูกตั้งค่าสถานะว่ายังไม่ได้อ่าน ฉันคิดว่าวิธีแรกนั้นซับซ้อนและมีข้อผิดพลาดมากกว่า แต่จะทำงานได้ดีกว่าวิธีที่สอง ปกติแล้ววิธีนี้ทำได้อย่างไรหรืออะไรคือวิธีการที่ดีกว่า

4
ฉันจำเป็นต้องใช้ ID ในฐานข้อมูลของฉันหรือไม่หากบันทึกสามารถระบุวันที่ได้
ฉันกำลังเขียนแอปพลิเคชันแรกสำหรับ Android และจะใช้ฐานข้อมูล SQLite ดังนั้นจะพยายาม จำกัด ขนาดให้มากที่สุด แต่ฉันคิดว่าคำถามนี้ใช้กับการออกแบบฐานข้อมูลโดยทั่วไป ฉันวางแผนที่จะจัดเก็บบันทึกที่จะมีข้อความและวันที่สร้าง แอพนี้เป็นแอพแบบสแตนด์อะโลนนั่นคือจะไม่เชื่อมโยงกับอินเทอร์เน็ตและมีผู้ใช้เพียงรายเดียวเท่านั้นที่จะอัปเดตดังนั้นจึงไม่มีโอกาสที่จะมีมากกว่าหนึ่งรายการพร้อมวันที่ที่กำหนด ตารางของฉันยังต้องการคอลัมน์ ID หรือไม่ ถ้าเป็นเช่นนั้นข้อดีของการใช้ ID เป็นตัวระบุบันทึกซึ่งตรงข้ามกับวันที่คืออะไร?
17 database 

5
การมีฟังก์ชั่นใน DB เป็น Roadblock ต่อการขยายขีดความสามารถหรือไม่?
ฉันอาจไม่สามารถให้ชื่อที่ถูกต้องกับคำถาม แต่นี่มันคือ เรากำลังพัฒนาพอร์ทัลการเงินสำหรับการบริหารความมั่งคั่ง เราคาดว่าจะมีลูกค้ามากกว่า 10,000 รายที่จะใช้แอปพลิเคชันนี้ พอร์ทัลจะคำนวณการวิเคราะห์ประสิทธิภาพที่หลากหลายตามการวิเคราะห์ทางเทคนิคของตลาดหุ้น เราพัฒนาฟังก์ชันการทำงานจำนวนมากผ่านขั้นตอนการจัดเก็บฟังก์ชันที่ผู้ใช้กำหนดเองทริกเกอร์ ฯลฯ ผ่านฐานข้อมูล เราคิดว่าเราสามารถเพิ่มประสิทธิภาพอย่างมากในการทำสิ่งต่างๆโดยตรงในฐานข้อมูลมากกว่าผ่านรหัส C # และเราได้รับการเพิ่มประสิทธิภาพอย่างมาก เมื่อฉันพยายามคุยโวเกี่ยวกับความสำเร็จของ CTO ของเราเขาตอบโต้การตัดสินใจของฉันในการใช้งานฟังก์ชันในฐานข้อมูลแทนที่จะใช้รหัส ตามที่เขาใช้งานดังกล่าวประสบปัญหาการขยายขีดความสามารถ ในคำพูดของเขา "ทุกวันนี้สิ่งต่าง ๆ ถูกเก็บไว้ในหน่วยความจำ / แคชข้อมูลที่จัดเป็นกลุ่มนั้นยากที่จะจัดการได้ตลอดเวลา Facebook, Google ไม่มีอะไรในฐานข้อมูลมันเป็นยุคของเซิร์ฟเวอร์ที่บางและไคลเอนต์หนาฐานข้อมูลใช้เพื่อเก็บข้อมูลธรรมดาเท่านั้น และฟังก์ชั่นควรแยกออกจากฐานข้อมูลอย่างสมบูรณ์ " พวกคุณช่วยแนะนำฉันหน่อยได้ไหมว่าเขาพูดถูกไหม จะไปเกี่ยวกับสถาปนิกแอปพลิเคชันเช่นนี้ได้อย่างไร?

2
วิธีที่ดีที่สุดในการใช้การค้นหาที่ถูกกรอง
ฉันอยากจะถามคุณความคิดเห็นของคุณเมื่อต้องใช้แบบฟอร์มการค้นหาที่กรองแล้ว ลองจินตนาการถึงกรณีต่อไปนี้: 1 ตารางขนาดใหญ่พร้อมคอลัมน์จำนวนมาก มันอาจเป็นสิ่งสำคัญที่จะบอกว่า SQL Server นี้ คุณต้องใช้แบบฟอร์มเพื่อค้นหาข้อมูลในตารางนี้และในแบบฟอร์มนี้คุณจะมีช่องทำเครื่องหมายหลายช่องที่อนุญาตให้คุณคิดค่าใช้จ่ายในการค้นหานี้ ตอนนี้คำถามของฉันที่นี่ข้อใดต่อไปนี้ควรเป็นวิธีที่ดีที่สุดในการใช้การค้นหา สร้างกระบวนงานที่เก็บไว้ด้วยแบบสอบถามภายใน โพรซีเดอร์ที่เก็บไว้นี้จะตรวจสอบว่าพารามิเตอร์ได้รับจากแอปพลิเคชั่นหรือไม่และในกรณีที่พวกเขาไม่ได้รับไวด์การ์ดจะถูกใส่ในแบบสอบถาม สร้างแบบสอบถามแบบไดนามิกที่สร้างขึ้นตามสิ่งที่ได้รับจากแอปพลิเคชัน ฉันถามสิ่งนี้เพราะฉันรู้ว่า SQL Server สร้างแผนการดำเนินการเมื่อสร้างโพรซีเดอร์ที่เก็บไว้เพื่อปรับประสิทธิภาพให้เหมาะสมอย่างไรก็ตามโดยการสร้างเคียวรีแบบไดนามิกภายในโพรซีเดอร์ที่เก็บไว้เราจะเสียสละประสิทธิภาพที่ได้รับจากแผนปฏิบัติ โปรดบอกฉันว่าอะไรคือแนวทางที่ดีที่สุดในการต่อต้านของคุณ

7
มาตรฐานตามข้อเท็จจริงสำหรับบันทึกข้อมูลลูกค้า [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ขณะนี้ฉันกำลังประเมินโครงการใหม่ที่อาจเกิดขึ้นซึ่งเกี่ยวข้องกับการสร้างฐานข้อมูลลูกค้าทั่วไป (userid, pwd, ชื่อ & นามสกุล, อีเมล, ที่อยู่, telfnr ... ) ณ จุดนี้ความต้องการมีการกำหนดคร่าวๆเท่านั้น ฐานข้อมูลลูกค้าคาดว่าจะอยู่ในบันทึก O (ล้านรายการ) ในการคำนวณตัวเลขแบ็คเอนด์สำหรับการปรับขนาดฐานข้อมูลและประเมินตัวเลือกฐานข้อมูลและสถาปัตยกรรมที่เป็นไปได้ฉันกำลังมองหามาตรฐานที่แท้จริงสำหรับบันทึกประเภทนี้ โดยเฉพาะอย่างยิ่งขนาดมาตรฐานของทุกสาขา (ชื่อ, นามสกุล, ที่อยู่, ... ) หรือเฉลี่ยปกติสำหรับลูกค้าบันทึกง่ายจะข้อมูลที่ดี เมื่อมีเว็บไซต์อีคอมเมิร์ซจำนวนมากออกมาควรมีการกำหนดค่าทั่วไปบางประเภทที่สามารถนำมาใช้ซ้ำได้และหลีกเลี่ยงการประดิษฐ์ล้อเลื่อนอีกครั้ง ความคิดใด ๆ ---- แก้ไข ---- คำตอบดูเหมือนว่าจะนำไปสู่การใช้บันทึกลูกค้ามาตรฐานและการออกแบบของคุณเอง ฉันต้องการเน้นว่าจุดเน้นของคำถามนี้คือการค้นหาการอ้างอิงสำหรับการปรับขนาดเขตข้อมูลสำหรับวัตถุลูกค้าและหลีกเลี่ยงการหาสิ่งนั้นด้วยตัวเอง (ฉันได้เน้นส่วนนั้นในข้อความต้นฉบับ - ตอนนี้เป็นตัวหนา -)

4
การจัดการสคีมาฐานข้อมูลจะเปลี่ยนไปเมื่อทำการกดเวอร์ชั่นใหม่
ในช่วงเวลาของการพัฒนาอย่างหนักสกีมาของฐานข้อมูลจะเปลี่ยนแปลงทั้งอย่างรวดเร็วและต่อเนื่องและเมื่อถึงเวลาที่เราจะทำการสร้างรายสัปดาห์ไปที่รุ่นต่อ ๆ มาสคีมาก็เปลี่ยนไปมากจนตัวเลือกที่เหมาะสมเท่านั้นคือ คัดลอกเวอร์ชันใหม่จากฐานข้อมูล dev ของฉัน เห็นได้ชัดว่านี่จะไม่ทำงานเมื่อเราเปิดตัวเนื่องจากข้อมูลการผลิต nuking เป็นสูตรสำหรับภัยพิบัติฉันจึงสงสัยว่ามีกลยุทธ์ใดบ้างในการจัดการ schema ของฐานข้อมูลที่เปลี่ยนแปลงจากรุ่นหนึ่ง / รุ่นอื่น บางอย่างที่ฉันพบหรือมีประสบการณ์: ตรง nuke-and-dump จากฐานข้อมูลหนึ่งไปยังอีกฐานข้อมูล (สิ่งที่ฉันทำตอนนี้) การดูแลรักษาไฟล์ UPDATE.sql ด้วยคำสั่ง SQL ที่เรียกใช้ผ่านสคริปต์หรือด้วยมือ การบำรุงรักษาไฟล์ update.php ด้วยค่า "db-schema-version" ที่สอดคล้องกันในฐานข้อมูลที่ใช้งานอยู่ ตัวเลือกที่สามดูเหมือนจะเหมาะสมที่สุด แต่ก็ยังมีความเป็นไปได้ที่แบบสอบถาม SQL ที่สร้างขึ้นไม่ดีจะล้มเหลวในช่วงกลางสคริปต์ทำให้ฐานข้อมูลอยู่ในสถานะที่มีการอัพเดทเพียงครึ่งเดียว ดูเหมือนว่าจะไม่มีปัญหา แต่เกิดขึ้นเนื่องจากเราเป็นทีมเราใช้ phpMyAdmin และฉันไม่สามารถพึ่งพาตัวเองได้จำการคัดลอกคำสั่ง SQL ที่เรียกใช้เพื่อวางลงในไฟล์ update.php เมื่อคุณนำทางไปยังหน้าอื่นฉันต้องเขียนคำสั่ง SQL ด้วยมืออีกครั้งหรือย้อนกลับการเปลี่ยนแปลงของฉันและทำมันอีกครั้ง ฉันเดาว่าสิ่งที่ฉันหวังคือโซลูชันที่ไม่ส่งผลกระทบต่อเวิร์กโฟลว์การพัฒนาของเราหรือไม่

8
สิ่งที่มีคุณสมบัติ "คำขอฐานข้อมูลมากเกินไป" ในรหัส?
นี่คือการอภิปรายด้วยตนเองและเพื่อนร่วมงานบางคนของฉันมีและคิดว่าฉันจะออกมาที่นี่และดูว่ามีความเห็นเป็นเอกฉันท์เกี่ยวกับเรื่องนี้หรือไม่ โดยทั่วไปจะมีความคิดเห็น 2 ข้อต่อไปนี้ในการเรียกฐานข้อมูล: 1. ทำการโทรครั้งใหญ่เพื่อรับทุกสิ่งที่อาจจำเป็นในการลดฐานข้อมูลจำนวนการโทร DB 2. ทำการโทรแยกขนาดเล็กลงตามสิ่งที่ร้องขอเพื่อลดขนาดของ การเรียก DB ที่ซึ่งสิ่งนี้กำลังเข้ามาเล่นโดยเฉพาะอย่างยิ่งอยู่ในรหัสทั่วไป เราจะใช้ตัวอย่างของคลาสพนักงานที่ค่อนข้างตรงไปตรงมา สมมติว่าคลาสพนักงานของคุณมี 10 ค่าแอตทริบิวต์ (ชื่อนามสกุลจ้าง ฯลฯ ) แล้วแอตทริบิวต์ 2 คลาส ... 1 ชี้ไปที่แผนกระดับแล้ว 1 ผู้ควบคุมที่ชี้กลับไปยังวัตถุพนักงานอื่น ในความคิดที่ # 1 คุณจะต้องทำการโทรหนึ่งครั้งเพื่อส่งคืนข้อมูลพนักงานรวมถึงฟิลด์ที่จำเป็นในการเติมแอตทริบิวต์แผนกและหัวหน้างาน ... หรืออย่างน้อยฟิลด์ที่ใช้บ่อยที่สุดจากวัตถุย่อยเหล่านั้น ในใจชุดที่ 2 คุณจะเติมข้อมูลอ็อบเจกต์ของพนักงานในตอนแรกจากนั้นใส่เฉพาะออบเจ็กต์ของแผนกและหัวหน้างานหากมีการร้องขอจริงๆ ท่าทางของ 2 ค่อนข้างตรงไปตรงมา ... ลดขนาดของคำขอและจำนวนวัตถุฐานข้อมูลที่ต้องกดแต่ละครั้งที่มีการร้องขอ ท่าทางที่ # 1 คือแม้ว่ามันจะสามารถดำเนินการได้อย่างถูกต้องความจริงที่แท้จริงว่ารหัสจะต้องทำให้การเชื่อมต่อหลาย ๆ จะทำให้เกิดความเครียดมากขึ้นในการเชื่อมต่อระหว่างเว็บเซิร์ฟเวอร์และฐานข้อมูลเมื่อเทียบกับการลดมัน แรงผลักดันที่อยู่เบื้องหลังการค้นคว้าสิ่งนี้คือปริมาณการรับส่งข้อมูลระหว่างเว็บเซิร์ฟเวอร์และเซิร์ฟเวอร์ฐานข้อมูลของเราไม่สามารถควบคุมได้

4
สถาปัตยกรรมข้อมูลสำหรับการวัดบันทึกเหตุการณ์?
บริการของฉันมีกิจกรรมของผู้ใช้จำนวนมากอย่างต่อเนื่องและเราต้องการทำสิ่งต่าง ๆ เช่น "การนับเหตุการณ์ประเภทTตั้งแต่วันที่D " เรากำลังพยายามตัดสินใจขั้นพื้นฐานสองประการ: จะเก็บอะไรดี? การจัดเก็บทุกเหตุการณ์เทียบกับการจัดเก็บมวลรวมเท่านั้น (สไตล์บันทึกเหตุการณ์) บันทึกทุกเหตุการณ์และนับในภายหลังกับ (สไตล์อนุกรมเวลา) จัดเก็บ "การนับเหตุการณ์อีสำหรับวันที่D " ที่รวบรวมไว้ทุกวัน จะเก็บข้อมูลที่ไหน ในฐานข้อมูลเชิงสัมพันธ์ (โดยเฉพาะ MySQL) ในฐานข้อมูลที่ไม่ใช่เชิงสัมพันธ์ (NoSQL) ในไฟล์บันทึกการทำงานแบบแบน (รวบรวมจากส่วนกลางผ่านเครือข่ายผ่านทางsyslog-ng) มาตรฐานการปฏิบัติคืออะไรที่ฉันสามารถอ่านเพิ่มเติมเกี่ยวกับการเปรียบเทียบระบบประเภทต่าง ๆ ได้ รายละเอียดเพิ่มเติม: สตรีมเหตุการณ์ทั้งหมดมีขนาดใหญ่อาจมีหลายแสนรายการต่อวัน แต่ความต้องการในปัจจุบันของเราเพียงเพื่อนับเหตุการณ์บางประเภทที่อยู่ภายใน เราไม่จำเป็นต้องเข้าถึงข้อมูลดิบหรือผลการรวบรวมแบบเรียลไทม์ IMHO "บันทึกเหตุการณ์ทั้งหมดไปยังไฟล์รวบรวมข้อมูลในภายหลังเพื่อกรองและรวมสตรีม" เป็นวิธีมาตรฐาน UNIX ที่สวยงาม แต่เพื่อนร่วมทาง Rails-y ของฉันดูเหมือนจะคิดว่าไม่มีอะไรจริงเว้นแต่ว่ามันจะอยู่ใน MySQL

7
แนวทางปฏิบัติที่ดีที่สุดที่จะตามด้วยดัชนีฐานข้อมูล [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการถกเถียงโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน6 ปีที่ผ่านมา อะไรคือ DOs และ DONT สำหรับการปรับปรุงประสิทธิภาพของฐานข้อมูลโดยใช้ดัชนี? DO จะเป็นกรณีที่ควรสร้างดัชนีหรือดัชนีอื่นที่เกี่ยวข้องกับเคล็ดลับที่จะปรับปรุงประสิทธิภาพ DONT จะเป็นกรณีที่ไม่ควรสร้างดัชนีหรือดัชนีที่เกี่ยวข้องกับการกระทำที่อาจส่งผลกระทบต่อประสิทธิภาพการทำงาน

5
คิวข้อความ ฐานข้อมูลเทียบกับ MQ โดยเฉพาะ
ฉันหลังจากคำแนะนำเกี่ยวกับการจัดคิวข้อความ เรามีข้อกำหนดสำหรับ "งาน" ที่จะโพสต์ในคิวข้อความ ข้อเสนอแนะดั้งเดิมคือเพียงใช้อินสแตนซ์ SQL Server และประมวลผลข้อความจากนั้น ทุกสิ่งที่ฉันได้อ่านบนอินเทอร์เน็ตแสดงให้เห็นว่าการใช้ฐานข้อมูลสำหรับ Message Queue ไม่ใช่วิธีที่ปรับขนาดได้ ด้วยเหตุนี้จึงแนะนำให้ใช้ความคิด RabbitMQ หรือบุคคลที่สามอื่น ๆ MQ อีกสิ่งที่ควรคำนึงถึงก็คือข้อกำหนดสำหรับ "การประมวลผลงาน" จะไม่ต่ำกว่า 30 วินาทีดังนั้นกระบวนการที่ทำหน้าที่จะสำรวจฐานข้อมูลทุก ๆ 30 วินาที สำหรับฉันแล้วมันไม่ได้เลวร้ายนักและอาจใช้ได้ดีโดยไม่ต้องเพิ่มการโหลดจำนวนมากในฐานข้อมูล เรามีฐานข้อมูลอยู่แล้วในลูกค้าของเราที่เราสามารถใช้สิ่งนี้ได้ดังนั้นมันจะไม่เพิ่มการสนับสนุนพิเศษที่จำเป็นสำหรับลูกค้าของเราในขณะที่ถ้าเราเพิ่ม MQ บุคคลที่สามจะมีการสนับสนุนพิเศษสำหรับการกำหนดค่าเครือข่าย ฯลฯ ซึ่งจะเป็น เป็นจำนวนมากเนื่องจากมีผู้ใช้จำนวนมาก ตัวเลือกอื่นที่ฉันกำลังพิจารณาคือให้ผู้ใช้เลือกระหว่างกัน หากพวกเขาเป็นผู้ใช้รายเล็กโซลูชันของ SQL Server จะใช้ได้ แต่ถ้าพวกเขาเป็นผู้ใช้ที่มีขนาดใหญ่ขึ้นเราอนุญาตให้พวกเขากำหนดค่าโซลูชัน MQ ของบุคคลที่สาม ฉันไม่ได้ขายในการแก้ปัญหาใด ๆ ฉันสงสัยว่าใครมีอะไรที่ฉันควรพิจารณาหรือคำแนะนำ

5
เมื่อใดที่เราควรใช้ MongoDB
MongoDB เป็นฐานข้อมูล NoSQL ที่ฉันพบว่าใช้ง่าย เมื่อเร็ว ๆ นี้ฉันต้องพัฒนาแอพพลิเคชั่นที่ต้องการรวบรวมข้อมูลโดยใช้คำร้องขอ HTTP และเก็บผลลัพธ์บางอย่างหลังจากประมวลผลข้อมูลและฉันพยายามใช้ MongoDB จากประสบการณ์นี้ฉันพบว่ามันดีกว่าการใช้มากกว่าฐานข้อมูลเชิงสัมพันธ์แบบดั้งเดิมและเนื่องจากฉันเป็นนักพัฒนาไม่ใช่ DBA งานของฉันจึงง่ายขึ้นมาก ถึงกระนั้นบางครั้งฉันก็ไม่แน่ใจว่าเมื่อไหร่ที่ฉันควรใช้ MongoDB แทนที่จะเป็นฐานข้อมูลเชิงสัมพันธ์แบบดั้งเดิมเช่น SQL Server หรือ MySQL ในกรณีนี้เมื่อเราสามารถใช้ MongoDB แทนฐานข้อมูลเชิงสัมพันธ์ มีบาง trully ใหญ่ข้อแม้เกี่ยวกับ MongoDB ที่ทำให้มันไม่เหมาะสมสำหรับสถานการณ์บางอย่าง?

7
เร็วกว่าอะไร ใช้ REST API หรือสอบถามฐานข้อมูลโดยตรง
ประสิทธิภาพที่รวดเร็วกว่าคืออะไร การสร้าง REST API และการมีเว็บแอปของคุณใช้ REST API เพื่อทำการโต้ตอบกับฐานข้อมูลของคุณหรือทำการสืบค้นฐานข้อมูลของคุณโดยตรง (เช่นการใช้วัตถุทั่วไปที่ภาษาของคุณใช้ในการสืบค้นฐานข้อมูลเช่น JDBC for Java)? วิธีที่ฉันเห็นด้วย REST: คุณสร้างวัตถุในรหัสของคุณเพื่อเรียกใช้วิธีการ REST โทรวิธี http รหัสภายใน REST API ของคุณจะค้นหาฐานข้อมูล ฐานข้อมูลส่งคืนข้อมูลบางส่วน รหัส REST API จะแพ็คข้อมูลลงใน Json และส่งไปยังลูกค้าของคุณ ลูกค้าได้รับการตอบสนอง Json / XML แมปการตอบสนองกับวัตถุในรหัสของคุณ ในทางตรงกันข้ามการสืบค้นฐานข้อมูลโดยตรง: คุณทำวัตถุด้วยสายอักขระแบบสอบถามเพื่อสอบถามฐานข้อมูล ฐานข้อมูลส่งคืนข้อมูลบางส่วน แมปการตอบสนองกับวัตถุในรหัสของคุณ ดังนั้นนี่ไม่ได้หมายความว่าการใช้ REST API จะช้าลงหรือไม่ อาจขึ้นอยู่กับประเภทของฐานข้อมูล (SQL กับ NoSQL)?
16 database  rest  sql 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.