Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

MySQL ที่จัดเก็บ GENERATED COLUMNS นั้นแตกต่างจาก MySQL GENERATED COLUMNS เสมือนอย่างไร


ต่อไปนี้คือข้อแตกต่างพื้นฐานบางประการระหว่าง MySQL ที่จัดเก็บ GENERATED COLUMNS และ MySQL virtual GENERATED COLUMNS -

ในแง่ของพื้นที่ดิสก์

หากเราเห็นความแตกต่างในแง่ของพื้นที่ดิสก์ คอลัมน์ที่สร้างเสมือนจะไม่ใช้พื้นที่ดิสก์ใดๆ ในทางกลับกัน คอลัมน์ที่สร้างที่เก็บไว้จะใช้พื้นที่ดิสก์

ในแง่ของการใช้งาน

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

ในแง่ของการคำนวณ

ในคอลัมน์ที่สร้างขึ้นเสมือน ค่าจะถูกคำนวณทันทีระหว่างการดำเนินการอ่านและก่อนทริกเกอร์ ในทางกลับกัน ค่าคอลัมน์ที่สร้างที่เก็บไว้จะได้รับการอัพเดตในทุกคำสั่ง INSERT และ UPDATE

ควรใช้เมื่อใด

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