วิธีที่ดีที่สุดในการสร้างมุมมองที่ปรากฏใน MySQL


19

ฉันใช้ MySQL 5.6 ฉันไม่สามารถสร้างมุมมองที่เป็นตัวเป็นตนเหมือนที่ทำได้ใน Oracle ฉันเห็นโซลูชันหนึ่งหรือสองอย่างเช่น Flexview

ใครช่วยบอกวิธีที่ดีที่สุดในการสร้างมุมมองที่เป็นรูปธรรมใน MySQL (รีเฟรชอัตโนมัติเช่นเดียวกับใน Oracle) ด้วยความซับซ้อนขั้นต่ำได้หรือไม่

คำตอบ:


11

มุมมองที่ปรากฏไม่ปรากฏอยู่ใน MySQL

Flexviewsได้รับการแนะนำใน DBA StackExchange ก่อน

เนื่องจากคุณมีมันอยู่แล้วความขยันและข้อศอกบางส่วนจากคุณอาจจำเป็นต้องใช้ต่อไป (ถ้าคุณยังไม่ได้ทำ)

ทางเลือก # 1

คุณอาจพิจารณาการตั้งค่าตารางสรุป คุณจะต้องจัดทำดัชนีตารางฐานของคุณเพื่อรองรับการรวมก่อนสร้างตารางสรุป

ทางเลือก # 2

นี่คือโพสต์เก่าจากhttp://www.materialized.info/ซึ่งมีกลยุทธ์แบบลงดินที่ดูน่าสนใจ มันเกี่ยวข้องกับการใช้ทริกเกอร์ ดูเหมือนว่ามันจะสนุก ...

ทางเลือก # 3

หากตารางพื้นฐานของคุณมีขนาดไม่ใหญ่มากและคุณสามารถใช้ชีวิตกับการสืบค้นทั้งตารางสัปดาห์ละครั้งให้ลองอ่านUser Commentsส่วนของเอกสาร MySQL ใน CREATE VIEWเพื่อหาแนวคิด ค้นหาคำmaterializedในหน้านั้น


ใน MySQL เวอร์ชันล่าสุดคุณสามารถสร้างตารางmaterliazed dba.stackexchange.com/a/226707/50702
Revious

1

ฉันพบโซลูชันที่เป็นไปได้ 2 ข้อเพื่อให้มีมุมมองที่ปรากฏใน MySQL:

  1. สร้างตารางการรวมกับข้อมูลทั้งหมดที่จำเป็นจากนั้นสร้างทริกเกอร์ในตารางที่ข้อมูลมาจาก

  2. สร้างตัวกำหนดตารางเวลาที่รวบรวมข้อมูลลงในตารางเป็นระยะ

ดูรายละเอียดเพิ่มเติมเกี่ยวกับวิธีการใช้งาน 2 ตัวเลือกในโพสต์บล็อกของฉันที่นี่: มุมมอง materialized MySQL


0

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


คุณอาจทำให้การเปิดเผยข้อมูล (ที่คุณเป็นผู้เขียนเครื่องมือ) โดดเด่นมากขึ้น
mustaccio

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