PDA

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



mtn677
چهارشنبه 09 مرداد 1392, 12:03 عصر
سلام
می خواستم بدونم سرعت خواندن و نوشتن در فایل بیشتر است یا دیتابیس با این اطلاعات:

1.ترافیک حدود هزار نفری در 5 دقیقه.یعنی تمام ترافیک سایت من در 5 دقیقه هست و حدود هزار نفر همزمان آنلاین میشن.

2.ارسال همزمان حدود 100 کاراکتر توسط هزار کاربر به صورت همزمان به سایت من(هر کاربر 100 کاراکتر).

Unique
پنج شنبه 10 مرداد 1392, 13:06 عصر
من درست متوجه نمیشم شما چطوری حساب میکنی ! اما معمولا اطلاعات را از توی دیتابیس cache میکنن میریزن توی فایل و از روی اون میخونن ! با توجه به اینکه ارتباط برای دریافت مقادیر فایل از روی disk سخت هستش ولی در مورد دیتابیس لایه شبکه و کنترل ترافیک Database Server هم دخیل هستش ! و با تجربه شخصی فایل ها بسیار بسیار سریعتر هستند !

generalhak
پنج شنبه 10 مرداد 1392, 14:55 عصر
100% دیتابیس برای همین کار هست دیگه !!

T.R.G.T
پنج شنبه 10 مرداد 1392, 15:29 عصر
خود دیتابیس هم از فایل استفاده میکنه اما تکنیک های مخصوص خودش رو داره فرض کن دیتابیست 200 مگابایت حجم داشته باشه حالا اگه بخای با فایل مدیریتش کنی که خدا به دادت برسه بیست ساعت طول میکشه تا نرم افزار فایل رو باز کنه چه برسه به اینکه داخلش جستجو کنه اضافه کنه حذف کنه و.... به نظر من اگه شبکه تاخیر نداشته باشه دیتابیس خیلی سریع عمل میکنه در ثانی دیتابیس امنیت بیشتری نصبت به فایل داره و در دیتابیس میشه داده ها رو سریعتر و بهتر مدیریت کرد

AliRezaPro
پنج شنبه 10 مرداد 1392, 15:58 عصر
من درست متوجه نمیشم شما چطوری حساب میکنی ! اما معمولا اطلاعات را از توی دیتابیس cache میکنن میریزن توی فایل و از روی اون میخونن ! با توجه به اینکه ارتباط برای دریافت مقادیر فایل از روی disk سخت هستش ولی در مورد دیتابیس لایه شبکه و کنترل ترافیک Database Server هم دخیل هستش ! و با تجربه شخصی فایل ها بسیار بسیار سریعتر هستند !
مدرک خواصی برای صحبتتون وجود داره ؟

mtn677
پنج شنبه 10 مرداد 1392, 17:30 عصر
من درست متوجه نمیشم شما چطوری حساب میکنی !

سلام بهتر بگم:

من با ویژوال بیسیک یه نرم افزار طراحی کردم که لازمه کار با اون اتصال به اینترنت است.حالا کسانی که از این نرم افزار استفاده می کنند نیاز هست که اطلاعاتی از جانب آنها به هاست من ارسال بشه.می خوام بدونم این اطلاعات رو که برای هر کاربر حدود 100 کاراکتر نوشته هست رو داخل یک فایل تکس در هاستم ذخیره کنم یا نه در داخل دیتابیس؟

generalhak
پنج شنبه 10 مرداد 1392, 17:42 عصر
سلام بهتر بگم:

من با ویژوال بیسیک یه نرم افزار طراحی کردم که لازمه کار با اون اتصال به اینترنت است.حالا کسانی که از این نرم افزار استفاده می کنند نیاز هست که اطلاعاتی از جانب آنها به هاست من ارسال بشه.می خوام بدونم این اطلاعات رو که برای هر کاربر حدود 100 کاراکتر نوشته هست رو داخل یک فایل تکس در هاستم ذخیره کنم یا نه در داخل دیتابیس؟

چرا هی کش میدی تاپیک رو عزیز ؟! همه دارن میگن منم دوباره میگم 100% دیتابیس...

mtn677
پنج شنبه 10 مرداد 1392, 18:22 عصر
چرا هی کش میدی تاپیک رو عزیز ؟! همه دارن میگن منم دوباره میگم 100% دیتابیس...
سلام
همه نمیگن دیتابیس(تایپیک شماره 2).دقیقتر گفتم شاید جوابها تغیر کرد.منم یه جا خونده بودم سرعت فایل برای حجم اطلاعات پایین و ترافیک کم خیلی بیشتر هست.

sina_oonline
پنج شنبه 10 مرداد 1392, 18:28 عصر
هزار نفر در 5 دقیقه اصلا عددی نیست که برای یک دیتابیس مشکل ساز باشه.از دیتابیس استفاده کنید به نظرم

mtn677
پنج شنبه 10 مرداد 1392, 18:49 عصر
هزار نفر در 5 دقیقه اصلا عددی نیست که برای یک دیتابیس مشکل ساز باشه.از دیتابیس استفاده کنید به نظرم
سلام
منظورم این نبود که برای دیتابیس مشکل ساز میشه منظورم این بود که چون ترافیک و حجم اطلاعات پایین هست شاید سرعت استفاده از فایل بیشتر باشه.برا من سرعت خیلی مهم هست.فکر کنم با توجه به جوابها دیتابیس بهتر باشه.

Unique
جمعه 11 مرداد 1392, 02:08 صبح
ببینید مشکل اکثر دوستان اینه که منظورشون را خوب نمیرسونند ! من یکبار موضوع را توضیح میدم :

پایگاه داده برای ذخیره و بازیابی و دسته بندی و ارتباط بین انواع داده ها بسیار بهینه هستش و استفاده از فایل به منظور جایگزینی با قابلیت های database دیوانگی به حساب میاد ! شما هیچوقت نمیتونید عملیات یسکان روی Database و فایل را حیت با ۵۰ درصد اختلاف انجام بدین که اگه دادین لطفا به دنیا معرفی کنین و خودتون را در زمره نوابغ قلمداد کنید !

اما مثلا شما یک منویی دارین که ساختار درختی داره و با استفاده از ul و li به صورت دینامیک در سایت ایجاد میشه ! معمولا هم تغییر نمیکنه و شاید ماهی یکی دوبار تغییر داشته باشه ! یا مثلا صفحات دینامیکی دارین که تعداد مراجعه بهش زیاده ولی شاید همیشه محتواش یک شکل باشه ! مثلا یک مقاله با تمام مشخصات مربوطه در پایگاه را توی یک صفحه به صورت دینامیک load میکنید ! توی این سناریو ها شما باید از database برای ذخیره سازی اصل مطلب یعنی منو ها و مقالات استفاده کنید ! اما اگه ترافیک زیادی دارین و مثلا اون منو در روز ۱۰۰۰۰ بار دیده میشه و اون مقاله در روز ۱۰۰ بار ! خوب یکبار که اون را از دیتابیس فراخونی کردین cache کنین و ذخیره کنین تیو یک فایل و دفعات بعدی با file_get_contents خیلی راحت از روی فایل بخونید ! اینجوری ۱۰۱۰۰ تا اتصال به پایگاه برای شما کم میشه و سرعت پردازش صفحات میره بالا !

نتیجه : استفاده از فایل برای ذخیره و بازیابی و عملیات روی داده ها مگر موارد خاص اونم از طریق فایل هایی مثل xml و json و sqlite دیوانگی هستش ! اما برای جلوگیری از query های تکراری و ارتباط با پایگاه بهتره اطلاعاتی که تغییری درشون حاصل نمیشه را روی یک فایل cache و ذخیره کنیم و از روی اون بخونیم (ببینید میگم بخونی و نماش بدین نه پردازش کنین) !!!

در آخر هم لطفا ، خواهشا ، التماسا ،‌ جون عزیزتون سوالاتتون را درست شرح بدین و خودتون را بگذارین جای خواننده سوال که آیا متوجه منظور شما میشه یا نه !

Unique
جمعه 11 مرداد 1392, 02:12 صبح
من با ویژوال بیسیک یه نرم افزار طراحی کردم که لازمه کار با اون اتصال به اینترنت است.حالا کسانی که از این نرم افزار استفاده می کنند نیاز هست که اطلاعاتی از جانب آنها به هاست من ارسال بشه.می خوام بدونم این اطلاعات رو که برای هر کاربر حدود 100 کاراکتر نوشته هست رو داخل یک فایل تکس در هاستم ذخیره کنم یا نه در داخل دیتابیس؟

بسته به این داره که اطلاعات بعدا قراره چه بلایی سرش بیاد دوست من !

Unique
جمعه 11 مرداد 1392, 02:15 صبح
هزار نفر در 5 دقیقه اصلا عددی نیست که برای یک دیتابیس مشکل ساز باشه.از دیتابیس استفاده کنید به نظرم
اتفاقا اگه عملیاتی که روی این پایگاه به واسطه این هزار نفر انجام میشه زیاد باشه و جداول و query های زیادی را درگیر کنه سایت شما اصلا بالا نمیاد ! اگه هم shared باشین حسابتون را میبندن تا کار را بهنیه کنین! cache کردن یکی از بهترین کار هایی که برای این این تعداد درخواست میشه کرد و با فایل هم این کار انجام میشه !

mtn677
جمعه 11 مرداد 1392, 05:18 صبح
بسته به این داره که اطلاعات بعدا قراره چه بلایی سرش بیاد دوست من !
سلام
فقط و فقط می خوام اطلاعات رو دریافت کنم.

Unique
جمعه 11 مرداد 1392, 18:14 عصر
شما در واقع میخوای اطلاعات را کاربران ارسال کنند و جایی ذخیره بشه روی هاست درسته ؟
خوب پس پایگاه داده بهترین حالت هست و شما فق Insert میخوای بکنی ! فوقش یک select بگیری تکراری نباشه !

mtn677
جمعه 11 مرداد 1392, 23:54 عصر
شما در واقع میخوای اطلاعات را کاربران ارسال کنند و جایی ذخیره بشه روی هاست درسته ؟


سلام
بله دقیقا همین