اگر سایتی نیاز داشته باشه که بصورت روزانه تعداد زیادی فایل آپلود کنه چطور باید پوشه ها رو ایجاد کرد که سرعت جستجو و پیدا کردن فایل ها کند نشه؟
اگر سایتی نیاز داشته باشه که بصورت روزانه تعداد زیادی فایل آپلود کنه چطور باید پوشه ها رو ایجاد کرد که سرعت جستجو و پیدا کردن فایل ها کند نشه؟
بستگی به سرور داره. مثلاً عمل بازکردن یک پوشه توی ویندوز بطور معمول اگه توی اون پوشه بیشتر از 2000 فایل باشه، کند میشه. باید مستندات فنی سیستم عامل سرورتون رو مطالعه کنید یا توی اینترنت برحسب سیستم عامل سرور، این سؤال رو جستجو کنید. منظورم اینه که سؤالتون کلیه ولی جواب کلی براش وجود نداره.
وردپرس از روش YY/mm/dd استفاده می کنه و با ایجاد پوشه های تو در تو بر اساس زمان مدیریت فایلها رو انجام می ده اما اگر سایتی تعداد کاربرهاش زیاد باشه این روش جواب نمی دهمنظورم اینه که سؤالتون کلیه ولی جواب کلی براش وجود نداره.
به دلیل اینکه تعداد پوشه ها زیاد می شن و خودم این روش رو نمی پسندم
ظاهرا باید بیشتر تحقیق کرد
به سیستم عامل ربط نداره و به فایل سیستم ربط داره. هر فایل سیستیمی تعداد محدودی inode داره ، مثلا روی یک ext3 با ظرفیت 15GB ما 1933312 تا inode داریم. در واقع برای هر inode اصولا 4k نیاز هست.بستگی به سرور داره. مثلاً عمل بازکردن یک پوشه توی ویندوز بطور معمول اگه توی اون پوشه بیشتر از 2000 فایل باشه، کند میشه
البته به نظر من تا ۲۰۰۰۰۰ فایل هم مشکلی نیست ولی عددتون را به دست بیارین و بر اساس اون تقسیم انجام بدین و دایرکتروی بسازین. مثلا اگه توی هر فودر ۱۰۰۰ تا فایل داریم ! id شماره ۱۲۳۷ توی فولدر شماره ۲ هست و باید اون را جستجو کنیم.
فال باید آپلود بشه و بدون نیاز به برنامه نویسی نمایش داده بشهالبته به نظر من تا ۲۰۰۰۰۰ فایل هم مشکلی نیست ولی عددتون را به دست بیارین و بر اساس اون تقسیم انجام بدین و دایرکتروی بسازین. مثلا اگه توی هر فودر ۱۰۰۰ تا فایل داریم ! id شماره ۱۲۳۷ توی فولدر شماره ۲ هست و باید اون را جستجو کنیم.
منظورم از جستجو وقتی هست که آدرس تصویر توی سورس سایت قرار می گیره و سرور باید تصویر رو لود کنه
در این صورت دیگه نیازی به برنامه نویسی نیست و باید پوشه ها و فایلها طوری ایجاد بشن که سرور بتونه فایل رو سریعتر پیدا کنه و نمایش بده
میتونید درخواستها به فایلهای یک پوشه خاص رو بطور کلی به یک اسکریپت PHP ارجاع بدین (با htaccess.) و توی اون اسکریپت، ببینید آدرس فایل چی بوده و پیداش کنید و مثل دانلود غیرمستقیم، با کمک هدرها برای کلاینت بفرستین.
والا من نمیگیریم شما میخواین چیکار کنین ؟!
توی html آدرس ها را مستقیم میدین ؟ یعنی آدرس مستقیم به فایل عکس میدین ؟
یا عکس ها را با php میخونید و با header ارسال میکنید ؟
در هر دو صورت کافیه زمان upload فایل ها را بر اساس همون تقسیم بندی ذخیره و در زمان نمایش در هر دو حالت با php مسیر را بدین و کارتون را انجام بدین.
اگه واقعا من و آقای شهرکی از موضوع پرت هستیم ! لطفا مثال دقیق بزنید.
سوالم اینه که سایتهای پر بازدید چطور فایلهایی که توسط کاربرها آپلود می شن رو مدیریت می کنن؟والا من نمیگیریم شما میخواین چیکار کنین ؟!
آره منظورم همینهتوی html آدرس ها را مستقیم میدین ؟ یعنی آدرس مستقیم به فایل عکس میدین ؟
وقتی آدرس مستقیم می دیم اگر تعداد فایلها زیاد باشن طبیعتا پیدا کردن فایل توسط سرور زمان بر خواهد شد
از کدهای PHP فقط زمان آپلود استفاده می کنیم
راستش دیگه نمی دونم چطور منظورم رو برسونم!
نه حتی اگه دانلود غیرمستقیم هم بگذارین (طوری که کاربر متوجه نشه)، اگه مدیریت پوشه ها به نحوی باشه که سریع بشه پیدا کرد، مشکل کندی سرعت در پیدا کردن فایل پیش نمیاد. برای مثال، فرض کنید برحسب دو حرف اول اسم فایلها، اونها رو توی پوشه های مختلف میگذارین. در اینصورت توی پوشه آپلود، 729 پوشه خواهید داشت (27x27 - که 27 میشه تعداد حروف الفبای لاتین + 1 که این یکی هم برای کارکترهای غیر الفبا مثل اعداد و _ و... است). برای مثال اسامی پوشه های شما اینطوری میشه:
__
a_
b_
...
z_
_a
aa
ab
...
az
_b
ba
bb
...
bz
.
.
.
zz
و برحسب دو حرف اول اسم فایل، توی پوشه مربوطه قرارش بدین.
البته سایتهایی که آمار بازدید بالایی دارن و کارشون هم مدیریت فایلهای آپلودشده توسط کاربران هست، یک دیتابیس از محل ذخیره سازی فایلها درست میکنن و حتی فایلها رو روی سرورهای مختلف میگذارن و وقتی یک فایل درخواست میشه، سرور و مسیرش رو از دیتابیس استخراج میکنن و بعد فایل رو در اختیار کاربر میگذارن واسه دانلود. نمیدونم روی چه حسابی میگین پیدا کردن فایل زمانبر میشه چون سایتهایی مثل MediaFire هم الآن از همین روش دارن استفاده میکنن.
توی هر پوشه چندتا فایل می شه گذاشت؟نمیدونم روی چه حسابی میگین پیدا کردن فایل زمانبر میشه چون سایتهایی مثل MediaFire هم الآن از همین روش دارن استفاده میکنن.
الان یه سایت گرفتم که مدیرش می گه می خوام 15،000 محصول به فروشگاه اضافه کنم و هر محصول 2 یا 3 تا تصویر داره
به عبارتی حدود 30،000 تصویر داریم
اگر همه این تصاویر رو توی یه پوشه قرار دادم موقعی که ادرس تصویر رو توی تگ img قرار می دم رو سرعت لود تصویر تاثیر نمی ذاره؟
به هاست شما بستگی داره ولی با فرض لینوکس بودن اصلا این اعداد رقمی نیستند ! تا ۱۰۰۰۰۰ تا را با خیال راحت بریزین توی یک پوشه ! خود بنده تا ۵۰۰۰۰ تا روی سرویس دهنده ویندوز NTFS داشتم بدون مشکل ! نگران این موضوعات نباشین ! فکر کردم بحث میلیون دارین میکنین !اگر همه این تصاویر رو توی یه پوشه قرار دادم موقعی که ادرس تصویر رو توی تگ img قرار می دم رو سرعت لود تصویر تاثیر نمی ذاره؟
درسته. اون عدد 2000 هم که من گفتم، توی ویندوز معمولی (نه سرور) و برای وقتی هست که با GUI بخواین یک پوشه رو ببینید و البته فایلهای پوشه هم Index گذاشته نشده باشن وگرنه توی همون ویندوز معمولی هم اگه فهرست فایلها رو با Command Prompt بخواین نشون بدین، مشکلی ازنظر سرعت نداره.
درسته. اون عدد 2000 هم که من گفتم، توی ویندوز معمولی (نه سرور) و برای وقتی هست که با GUI بخواین یک پوشه رو ببینید و البته فایلهای پوشه هم Index گذاشته نشده باشن وگرنه توی همون ویندوز معمولی هم اگه فهرست فایلها رو با Command Prompt بخواین نشون بدین، مشکلی ازنظر سرعت نداره.سیستم عامل که لینوکس هستبه هاست شما بستگی داره ولی با فرض لینوکس بودن اصلا این اعداد رقمی نیستند ! تا ۱۰۰۰۰۰ تا را با خیال راحت بریزین توی یک پوشه ! خود بنده تا ۵۰۰۰۰ تا روی سرویس دهنده ویندوز NTFS داشتم بدون مشکل ! نگران این موضوعات نباشین ! فکر کردم بحث میلیون دارین میکنین !
مسئله مهم اینه که روی سئو سایت تاثیر نداشته باشه چون سرعت سایت بصورت مستقیم روی نتایج جستجو ها تاثیر داره
می خوام طوری باشه که وقتی 50 تا از محصولات رو نمایش می دم سرعت لود کم نشه
تعداد استاندارد فایلها در هر پوشه (و در هر سیستم عامل) مشخص نشده که بر اساس اون پوشه ها رو ایجاد کرد؟
توی سئو نباید تاثیری داشته باشه چون اصولا من منطقی براش نمیبینیم و انقدر که back link و rank و محتوا اثر داره سرعت لود تاثیری نداره (چون عموما بالا هست و میکرو ثانیه ها اهمیتی ندارند چون توسط کاربر احساس نمیسن [نظر کاملا شخصی])مسئله مهم اینه که روی سئو سایت تاثیر نداشته باشه چون سرعت سایت بصورت مستقیم روی نتایج جستجو ها تاثیر داره
اگه منظور شما پیدا کردن مسیر ها هستش که خیر اصلا کم نمیشه ! و اگه منظور Load صقحه هست که به سرع سرور و کلاینت بر میگرده.می خوام طوری باشه که وقتی 50 تا از محصولات رو نمایش می دم سرعت لود کم نشه
این موضوع مرتبط و جالبهتعداد استاندارد فایلها در هر پوشه (و در هر سیستم عامل) مشخص نشده که بر اساس اون پوشه ها رو ایجاد کرد؟
این اطلاعات هم همینطور :
FAT32:
Maximum number of files: 268,435,437
Maximum file size: 4GB
maximum number of files per directory: up to 65535, or less depending on file names
NTFS:
Maximum number of files: 4,294,967,295
Maximum file size: 16TB currently (16EB theoretically)
Ext2:
Maximum number of files: 10¹⁸
Maximum file size: 2TB
theoretical file per directory limit: 1.3 × 10²⁰ files
Ext3:
Maximum number of files: number of bytes in volume/2¹³.
Maximum file size: 16GB (1KB block) to 2TB (4KB block)
درود و ...
ميشه يكي inode رو توضيح بده اطلاعات دقيقي پيدانكردم.
توضیحات فارسی
توضیحات انگلیسی
ویکیپدیا
با جستجو تو گوگل منابع دیگه هم میتونید پیدا کنید.