หยดมีประสิทธิภาพมากกว่า varchar สำหรับข้อมูลที่มีขนาดใดก็ได้หรือไม่


9

เมื่อตั้งค่าฐานข้อมูลฉันต้องการใช้ประเภทข้อมูลที่มีประสิทธิภาพสูงสุดสำหรับข้อมูลที่มีความยาวพอสมควร ปัจจุบันโครงการของฉันคือการจัดเก็บชื่อเพลงและความคิดเกี่ยวกับเพลงนั้น บางชื่ออาจมี 5 ตัวอักษรหรือยาวกว่า 100 ตัวอักษรและความคิดอาจใช้เวลานานพอสมควร

การใช้ชุด varchar มีประสิทธิภาพมากกว่า 8000 หรือใช้ blob หรือไม่ การใช้ blob เหมือนกับ varchar ซึ่งมีขนาดที่กำหนดไว้ถูกจัดสรรโดยไม่คำนึงถึงสิ่งที่มันถืออยู่หรือไม่? หรือเป็นเพียงตัวชี้และมันไม่ได้ใช้พื้นที่มากบนโต๊ะจริงเหรอ? มีขนาดที่กำหนดของหยดในหน่วย KB หรือสามารถขยายได้?

คำตอบ:


12

ฉันอยากจะแนะนำให้ใช้TEXTผ่าน BLOB

ความแตกต่างหลัก

  • TEXT และ BLOB ถูกเก็บไว้นอกตารางโดยมีเพียงตัวชี้ไปยังตำแหน่งของที่เก็บข้อมูลจริง

  • VARCHAR ถูกเก็บไว้ในตาราง

แนวทางเบื้องต้น

  1. ข้อความที่จัดรูปแบบข้อความควรเก็บไว้เป็น TEXT เกือบตลอดเวลา (ท้ายที่สุดจะยาวโดยพลการ)

  2. ควรเก็บแอตทริบิวต์ของสตริงเป็น VARCHAR (ชื่อผู้ใช้ปลายทางหัวเรื่อง ฯลฯ ... )


ในการเลือกว่าจะใช้ VARCHAR เมื่อใดและเมื่อใดควรใช้ TEXT มีการพูดคุยกันอย่างกว้างขวางเกี่ยวกับ Stack overflow ในกระทู้เหล่านี้

  1. MySQL: VARCHAR ขนาดใหญ่เทียบกับ TEXT

  2. MySQL varchar (2000) กับข้อความ?

นอกจากนี้ยังมีเธรดการเปรียบเทียบประสิทธิภาพสำหรับสิ่งนี้บนฟอรัม MySQL


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

0

ฉันคิดว่าคุณควรใช้หยดเฉพาะในกรณีที่คุณมีชนิดข้อมูลที่ซับซ้อนต่อเนื่องนั่นคือถ้าคุณต้องการที่จะเก็บในชั้นเดียวตารางที่ซับซ้อน หากคุณต้องการเก็บ String (หรือสิ่งที่เทียบเท่า) อย่าใช้ blob

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