কম্পিউটার টিউটোরিয়াল

MySQL VARCHAR কলামের সর্বোচ্চ দৈর্ঘ্য কত?


আসলে VARCHAR ডেটা টাইপ একক বাইট এবং মাল্টিবাইট ক্যারেক্টারে ভেরিয়েবল-দৈর্ঘ্যের ক্যারেক্টার ডেটা সংরক্ষণ করে। এর সিনট্যাক্স VARCHAR(n), যেখানে n হল সর্বোচ্চ ক্যারেক্টার সংখ্যা এবং টেবিল তৈরি করার সময় এটি নির্দিষ্ট করতে হয়। MySQL 5.03 এর আগে n-এর মান ০ থেকে ২৫৫ পর্যন্ত হতে পারত, কিন্তু MySQL 5.03 এবং তার পর থেকে মান ০ থেকে ৬৫,৫৩৫ পর্যন্ত হতে পারে।

VARCHAR-এ সংরক্ষণযোগ্য সর্বোচ্চ ক্যারেক্টার সংখ্যা সর্বোচ্চ সারি আকার এবং ব্যবহৃত ক্যারেক্টার সেটের ওপর নির্ভর করে। ASCII ক্যারেক্টার সেট ব্যবহার করলে ৬৫,৫৩৫ ক্যারেক্টার সংরক্ষণ করা যায় কারণ ASCII প্রতি ক্যারেক্টারে ১ বাইট ব্যবহার করে। অন্যদিকে, utf8 ক্যারেক্টার সেট ব্যবহার করলে ক্যারেক্টার সীমা ২১,৮৪৪ হবে কারণ utf8 প্রতি ক্যারেক্টারে ৩ বাইট ব্যবহার করে। সর্বোচ্চ সারি আকারের সীমা ৬৫,৫৩৫ বাইট অর্থাৎ সব কলাম মিলিয়ে ৬৫,৫৩৫ বাইটের চেয়ে বেশি হতে পারবে না।

উদাহরণ

mysql> Create Table var_test(FName Varchar(32765) NOT NULL, LName Varchar(32766)     NOT NULL);      Query OK, 0 rows affected (0.25 sec)

উপরোক্ত কোয়ারিটি দুটি কলাম সহ একটি টেবিল তৈরি করেছে, FName Varchar(32765) এবং LName Varchar(32766)। অতএব মোট দৈর্ঘ্য হবে 32765+2+32766+2=65535 (প্রতি কলামের দৈর্ঘ্য সংরক্ষণের জন্য ২ বাইট ব্যবহার হয়)।

mysql> Create Table var_test1(FName varchar(32766) NOT NULL, LName Varchar(32766)     NOT NULL);      ERROR 1118 (42000): 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

এখন, দৈর্ঘ্য ১ বাইট বাড়ালে MySQL উপরের কোয়ারিটিতে দেখা অনুযায়ী এরর ফেরত দেয়।


  1. MySQL-এ VARCHAR কলাম থেকে সর্বোচ্চ সংখ্যাগত মান বের করা

  2. MySQL-এ কলামের সর্বোচ্চ মান বের করা (Find Maximum Value in a Column)

  3. MySQL-এ কলাম থেকে সর্বোচ্চ মান বের করা

  4. পাইথনে স্ট্রিংয়ের সর্বোচ্চ দৈর্ঘ্য কত