আমি আমার ম্যাকবুকটিতে একটি পরীক্ষার জন্য মাইএসকিউএল সার্ভার চালাচ্ছি। সংস্করণ হোমব্রু থেকে 5.6.20। আমি "সারি আকার খুব বড়" ত্রুটিগুলির মধ্যে দৌড়াতে শুরু করেছি এবং আমি এটি পরীক্ষার ক্ষেত্রে এটি হ্রাস করতে সক্ষম হয়েছি। টেবিল:
mysql> describe test;
+-------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| stuff | longtext | YES | | NULL | |
+-------+----------+------+-----+---------+----------------+
সারণীর স্থিতি:
mysql> show table status where Name = 'test';
+------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-----------------+----------+----------------+---------+
| Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment |
+------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-----------------+----------+----------------+---------+
| test | InnoDB | 10 | Compact | 1 | 16384 | 16384 | 0 | 0 | 5242880 | 2 | 2014-08-28 23:51:12 | NULL | NULL | utf8_general_ci | NULL | | |
+------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-----------------+----------+----------------+---------+
টেবিলে একটি সারি সন্নিবেশ করানোর চেষ্টা করার সময় আমি যে ত্রুটিটি পেয়েছি stuff
সেগুলিতে কলামটিতে 5033932 বাইটের বেশি রয়েছে।
mysql> select length(stuff) from test;
+---------------+
| length(stuff) |
+---------------+
| 5033932 |
+---------------+
mysql> update test set stuff = concat(stuff, 'a');
ERROR 1118 (42000): Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
আমি এই ত্রুটিটি ঘিরে অনুসন্ধান করেছি, বেশিরভাগ উত্তরের মধ্যে অনেকগুলি টিএসএসএল কলাম রয়েছে এবং প্রত্যেকেরই 768 বাইট ইনলাইন সঞ্চিত রয়েছে। যেমন আপনি দেখতে পাচ্ছেন, তা আমার পক্ষে হয় না। এছাড়াও, টেবিলে আমার কলামগুলির সংখ্যা নির্বিশেষে 5033932 নম্বরটি একই থাকে। আমার আসল অ্যাপ্লিকেশনটিতে, পাঁচটি কলাম ছিল এবং কলামের আকার 5033932 ছাড়িয়ে গেলে আপডেটগুলি এখনও ব্যর্থ হয়েছিল।
আমি লোকেরা সারি ফর্ম্যাটগুলি স্যুইচ করেও সমস্যার সমাধান করতে দেখেছি, যা আমি কিছুটা চেষ্টা করব, তবে আমি বুঝতে চাই যে ঠিক কী কারণে এই ত্রুটি ঘটছে।
আগাম ধন্যবাদ!