PDA

View Full Version : سوال: فشرده سازی متن فارسی قبل از ذخیره در mysql با php



ambrella
دوشنبه 20 فروردین 1397, 22:27 عصر
سلام خسته نباشید
من دارم روی یه سایت کار میکنم که دیتای فارسی زیادی به خاطر توضیحات محصولات توی دیتا بیس mysql خودش ذخیره میکنه با توجه به اینکه متن فارسی دوبرابر حجم از دیتا بیس میگیره
به خاطر گستردگی و تعدد کالا ها متن زیادی داخل بخش توضیحات و جدول شرح کالا ذخیره میشه که باعث کندی میشه و حجم رو مصرف میکنه

سوال من اینکه :
داخل یک جدول mysql من متونم حد اکثر چه تعداد رکورد ذخیره کنم که در کارایی خروجی سایت تاثیر چندانی نداشته باشه به عنوان مثلا یک ملیون رکورد در یک جدول معمول هست نیست باعث کندی میشه چه تعدادی توصیه میکنید جد اکثر باشه و توضیحاتی از این قبیل

دوم اینکه متن فارسی که میخوام از هر محصول داخل سایت ذخیره کنم هم هست که ممکنه طبق مثال سوال بالا یک ملیون رکورد برسه که حجم خیلی خیلی زیادیه.
اشکال اینجاست که ممکنه دیتابیس حجمش نکشه چون حجم دیتابیس نهایتا به اندازه حجم هاست هست.
برای این کار باید فشرده سازی قبل از ذخیره و خارج شدن از حالت فشرده رو برای هر متن انجام بدم تا متن و دیتایی کمتری توی دیتابیسم ذخیره بشه
اما الگوریتم یا قطعه کدی نمیشناسم که بتونه این فشرده سازی و معکوسش رو برام انجام بده اگر لطف کنید لینکی از یک مثال قطعه کدی هر چیزی که بتونه راهنماییم کنه بهم بدین عالی میشه
منتظر کمک هاتون هستم

برنامه من با php و بانک mysql هست

plague
سه شنبه 21 فروردین 1397, 16:57 عصر
حداکثر 20-30 تا ... بستگی داره به اینکه چه تیبلی باشه
شما میتونی تیبلت رو بشکونی توی 2 تا تیبل
1 تیبل مشخصات اصلی که در همه جاهای سایت نیاز هست رو داره مثل عنوان و قیمت و عکس
تیبل دوم اطلاعات اضافی محصول رو داره که فقط تو صفحه محصول نمایش داده میشن مثل توضیحات و ...

برای کند نشدن تیبل باید اون فیلد هایی که سرچ بر اساسشون انجام میشه رو index گزاری کنی

همچنین میتونی با gzcompress فشرده کنی متن رو ولی بعدا نمیتونی سرچ کنی توش در کل نیازی به اینکار نمیبینم من

MiladWorkShop
چهارشنبه 22 فروردین 1397, 00:08 صبح
سلام

میتونید به شکل زیر ذخیره کنید :

INSERT INTO table (data) VALUE(COMPRESS(data));