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

ขนาดสูงสุดของ MySQL VARCHAR คืออะไร?


MySQL เวอร์ชันก่อน 5.0.3 สามารถจัดเก็บอักขระได้ 255 ตัว แต่จากเวอร์ชัน 5.0.3 จะสามารถจัดเก็บอักขระได้ 65,535 ตัว

เอกสารอย่างเป็นทางการของ MySQL ระบุ -

ความยาวสูงสุดที่ใช้ได้ของ VARCHAR ใน MySQL 5.0.3 และใหม่กว่านั้นขึ้นอยู่กับขนาดแถวสูงสุด (65,535 ไบต์ ซึ่งใช้ร่วมกันระหว่างทุกคอลัมน์) และชุดอักขระที่ใช้ ตัวอย่างเช่น อักขระ utf8 สามารถกำหนดได้สูงสุดสามไบต์ต่ออักขระ ดังนั้นคอลัมน์ VARCHAR ที่ใช้ชุดอักขระ utf8 สามารถประกาศให้มีอักขระสูงสุด 21,844 ตัว

โปรดทราบว่าขีดจำกัดของขนาดแถวสูงสุดคือ 65,535 ไบต์ ซึ่งระบุว่าเมื่อรวมคอลัมน์ทั้งหมดแล้ว ไม่ควรเกิน 65,535 ไบต์

ให้เราดูว่าจะเกิดอะไรขึ้นหากสิ่งนี้ถูกละเมิด -

นี่คือตารางที่มีสองคอลัมน์ "หนึ่ง" varchar ที่มีความยาว 32,765 และ "สอง" ที่มี 32766

ความยาว =32765+2 + 32766 + 2 =65535

CREATE TABLE IF NOT EXISTS `mytable` (
`one` varchar(32765) NOT NULL,
`two` varchar(32766) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

ตอนนี้ให้เราเพิ่มความยาวคอลัมน์ -

CREATE TABLE IF NOT EXISTS `mytable` (
`one` varchar(32767) NOT NULL,
`two` varchar(32770) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

ด้านบนให้ข้อผิดพลาดดังต่อไปนี้ -

#1118 - Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs

ข้อความข้างต้นระบุว่า −

The maximum row size is 65,535 bytes. If it exceeds, an error will be visible.