ยังไงสิทธิ์ตัดสินใจซึ่งช่วงตึกไหมดิเพลิเกนบรีฟและไม่เอามาคืนในบัฟเฟอร์แคชสำหรับการสืบค้น?

0

คำถาม

คิดว่าเราประหารต่อไปนี้กับการค้นหา.

select * from employees where salary > 10000;

หลังจากบางเวลา\ในสิงทีพวกเราตองประหารต่อไปนี้กับการค้นหา.

select * from employees where salary > 500;

ที่สองหนึ่งมีแนวโน้มที่จะกลับมาอีกบล็อก. แต่พวกเรามีบางช่วงตึกในบัฟเฟอร์แคชนเพราะก่อนหน้านี้กับการค้นหา. บางทีอาจจะเป็นตัวอันตรายบางคนลบรูปแบบที่บัฟเฟอร์แคชนะแต่ว่ามีบางอย่างหรือตลอดช่วงตึกจากคนแรกกับการค้นหาจะยังคงอยู่ที่นั่น ดังนั้นอยู่ที่นี่ฐานข้อมูลเซิร์ฟเวอร์ควรจะรู้ว่าช่วงตึกไปแล้วมีอยู่และใครที่ต้องอ่านข้อมูลจากดิสก์แผ่นที่ยิ่งไปกว่านั้น.

ของฉันคำถามคือยังไงฐานข้อมูลหายแล้วค่อยตัดสินใจว่าช่วงตึกเพื่ออ่านข้อมูลจากดิสก์แผ่นที่ยิ่งไปกว่านั้น?

1

คำตอบที่ดีที่สุด

3

สิทธิ์ใช้ LRU เทคนิค (ซึ่งยืนหยัดเพื่อ 'ย่างน้อยที่เพิ่งใช้'). มันเป็นคอมพิวเตอร์อัลกอริธึมเคยจัดการข้อมูลอยู่ในแคช ตอนที่แคชของกลายเป็นเต็มไปด้วยและคุณต้องการพื้นที่เพื่อนใหม่อย่าง-คุณต้องการยกเลิกการอย่างน้อยรายการที่เพิ่งใช้ก่อน(สิ่งที่คุณยังไม่ได้ใช้สำหรับสักพักแต่อยู่ในแคชของกินอวกาศ).

มันไม่ได้เจาะจงให้ข้อมูลช่วงตึกและข้อมูลของบล็อกไม่ได้จริงๆเก็บไว้ใน LRU รายชื่อพวกเขาถูกจัดการโดยเป็นแตะต้องนับวันนี้-แต่มันแตะต้องนับอัลกอริธึมเป็นมากเหมือน LRU ดังนั้นคุณสามารถคิดว่ามันอย่างนั้น

ในเมื่อคุณได้ยินเสีย LRU คิดของแคชของมันพาะข้อมูลบางอย่าง(ข้อมูล)และดื่มเพื่อเป็นการละทิ้งรายการออกจากแคชของจากพื้นฐานว่าพวกเขาต้องถูกใช้เมื่อเร็วๆนี้หรือไม่ ยิ่งเมื่อเร็วๆนี้มีอะไรบางอย่างเคยชิน-มากขึ้นเท่านั้นยิ่งมันคือต้องอยู่ในแคช

แต่ละบล็อคมี DBA-ข้อมูลของบล็อคที่อยู่ของ-นั้นต้องใช้ของแฟ้มและปิด#. นี่ระบุชี้ตัวผู้บล็อคในฐานข้อมูล สิทธิ์ใช้"กุญแจ"ระบุตัวตนของคนบล็อคในบัฟเฟอร์แคช

ถ้าคุณทำการสืบค้นถ้าบางช่วงตึกไม่ได้อยู่ในแคชของมันเป็นเพราะ LRU มีเคลียร์พวกเขาในการที่จะ allocate มากกว่าสิ่งที่มากกว่านั้นอีกเมื่อเร็วๆนี้ใช้ได้ มันเป็นไม่รับประกันแต่ถ้าคุณต้องการอะไรแบบนั้นรับประกันคุณสามารถใช้ต่างออกสระว่ายน้ำในบัฟเฟอร์แคชของส่วนใหญ่จะอคุณสามารถใช้ KEEP สระว่ายน้ำเพื่อให้บ่อยครั้งที่เข้าไปในเซกเมนต์ที่บัฟเฟอร์แคช

หวังว่ามัน clarifies.

2021-10-28 11:08:38

@oramas มีข้อสงสัยเรื่องคำตอบอย่างนั้นหรอ?
Roberto Hernandez

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่