🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ علی
Index Length mysql
جامعه لاراول ایجاد شده در ۱۸ آذر ۱۴۰۰

سلام

ی سوال دارم درمورد بخش زیر که تویه documentation لاراول اورده شده

https://laravel.com/docs/8.x/migrations#index-lengths-mysql-mariadb

 با توجه به این که ستون‌های varchar ای که میخواهیم روشون index بزاریم حداکثر باید 767 بایت باشن. تو این بخش گفته اگه ورژن mysql 5.7 به قبل باشه با توجه به این که لاراول از کاراکتر ست utf-8mb4 استفاده می‌کنه باید به صورت دستی مشخص کنیم default string length برابر 191 هست

حالا ورژن mysql من بالا‌تر از 5.7 هست پس نیاز نیس به صورت دستی چیزی مشخص کنم از طرفی وقتی با استفاده از migration یک ستون varchar میسازم که unique index هم هست تعداد کاراکتر هارو 255 میزنه الان این مشکلی ایجاد نمیکنه؟ چون تعداد کاراکتر‌ها 255 باشه و از طرفی utf-8mb4 هر کاراکترش 4 بایت هست از اون محدوده 767 بایت بالاتر میزنه

سلام،‌بله در ورژن‌های قبلی لاراول و MariaDB به خاطر استفاده از انکود قدیمی این مشکل وجود داشت ولی الان مشکلی از این بابت وجود نداره و اگر اون رو انتخاب کنید مشکلی ایجاد نمیشه. برای اینکه اطلاعات بیشتری هم در این مورد کسب کنید میتونید لینک زیر رو مطالعه کنید.

https://stackoverflow.com/questions/15157227/mysql-varchar-index-length

مهرداد سامی ۲۰ آذر ۱۴۰۰، ۱۹:۳۹