PDA

View Full Version : سوال: ذخیره ی اطلاعات وبلاگ های PHP



RoostaYeBekr
شنبه 04 آبان 1387, 15:42 عصر
با سلام
:لبخندساده:
من یک سوالی داشتم و آن اینکه در وبلاگ نویسی در PHP ، و اصلا همین سایت ، سوالاتی که کاربران مطرح می کنند ، آیا در دیتابیس ذخیره می شود و یا در فایل؟
با تشکر

sedamorde
شنبه 04 آبان 1387, 16:06 عصر
اطلاعات وقتی حجم زیادی پیدا میکنند (مثل فروم ها , وبلاگ ها) حتما در دیتابیس ذخیره میشوند. به این دلیل که دیتابیس هم سرعت بیشتری دارد هم مطمن تر است.

RoostaYeBekr
یک شنبه 05 آبان 1387, 05:05 صبح
آخه راستش اصلا من باورم نمی شود که این سایت برنامه نویس با این همه اطلاعات و تازه کاربر همزمان ، اینقدر سرعتش خوب باشد . ( منظورم در قیاس با ASP.NET2005 است ) . من مطمئنم که اگر همین سایت را می خواستیم با ASP.NET2005 بنویسیم ، اگر روی چیزی کلیک می کردیم ، امروز صفحه می رفت ، پس فردا شب می آمد.
می شه خواهش کنم ، مدیر همین بخش PHP هم راجع به این سوال توضیحی بدهند . ممنون.

as13851365
یک شنبه 05 آبان 1387, 08:50 صبح
آخه راستش اصلا من باورم نمی شود که این سایت برنامه نویس با این همه اطلاعات و تازه کاربر همزمان ، اینقدر سرعتش خوب باشد . ( منظورم در قیاس با ASP.NET2005 است ) . من مطمئنم که اگر همین سایت را می خواستیم با ASP.NET2005 بنویسیم ، اگر روی چیزی کلیک می کردیم ، امروز صفحه می رفت ، پس فردا شب می آمد.

ببینید سرعت به عوامل دیگری بستگی داره ! که باید اونها رو هم مد نظر گرفت !

ولی درباره این که اطلاعات در فایل ذخیره می شه یا در بانک ! خوب بستگی به اطلاعات و حجم و ... که قرار است سایت نمایش بده داره ! مثلا اگر شما سایتی می خواهید داشته باشید که اطلاعاتش زیاد تغییر نمی کنه مثلا هر یک سال یک بار می خواهید سایت رو آپدیت کنید بهترین گزینه برای سایت شما استفاده از فایل است ( سایت به صورت استاتیک ) !

اما اگر می خواهید یک سایتی رو که هر روز تغییراتی در اطلاعاتش داده می شه ( مانند این انجمن ها و ... ) حتما از دیتابیس استفاده می کنند !

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

vahid4134
یک شنبه 05 آبان 1387, 10:24 صبح
آخه راستش اصلا من باورم نمی شود که این سایت برنامه نویس با این همه اطلاعات و تازه کاربر همزمان ، اینقدر سرعتش خوب باشد . ( منظورم در قیاس با ASP.NET2005 است ) . من مطمئنم که اگر همین سایت را می خواستیم با ASP.NET2005 بنویسیم ، اگر روی چیزی کلیک می کردیم ، امروز صفحه می رفت ، پس فردا شب می آمد.
می شه خواهش کنم ، مدیر همین بخش PHP هم راجع به این سوال توضیحی بدهند . ممنون.


این سایت که هیچی سایتهای بزرگ دیگه ای هم هستند که سرعتشون بیشتره
چند دلیل وجود داره که سایتی مثل برنامه نویس سرعتش خوب هست
1- استفاده از php (البته کد نویسی مهم شرط اساسی هست)
2- استفاده از mysql (یکی از بزرگترین مزیتهای mysql سرعت اون هست)
3- استفاده درست از ایندکس ها
4- سرور مناسب با تنظیمات مناسب
5-....
اسکریپت برنامه نویس وی بولیتن هست و وی بولیتن تستهای زیادی رو داده تا به اینجا رسیده. تغییرات در کویری ها که کویری بتونه با کمترین زمان اطلاعات رو دریافت کنه
یک مثال از کد نویسی درست می زنم
فکر می کنید تعداد پستهای یک نفر چه طور به دست میاد؟
یکی شاید بیاد با استفاده از count از توابع mysql استفاده کنه تا تعداد پستهای یک نفر رو به دست بیاره. می دونیم که count از عملیات سنگین دیتابیس هست
یکی دیگه میاد و هر وقت کاربر یک پست میده یک عدد رو در دیتابیس (مربوط به کاربر) بیشتر می کنه و برای به دست آوردن تعداد پستهای یک کاربر تنها یک کویری ساده (که ممکنه توسط کویری های دیگه پوشانده هم بشه) نوشته میشه

yaqubian
یک شنبه 05 آبان 1387, 10:31 صبح
دوست عزیز
واقعیت اینه همونطور که آقا وحید گفتن سرعت بازیابی اطلاعات از بانک mysql به مراتب بالاتر از بقیه بانک هاست.
موفق باشید

narsic
یک شنبه 05 آبان 1387, 14:13 عصر
.net هم سرعت خوب و قابل قبولی داره اینجوریام که شما میگید نیست .
بعدشم سایتهای بزرگ هم دارن از mysql استفاده میکنن البته اکثر سرور اختصاصی دارن مثل google .

RoostaYeBekr
یک شنبه 05 آبان 1387, 18:05 عصر
با سلام
راستش من خودم مدت زیادی ASP.NET کار کردم . ما و اعضای پروژه مان به مدت تقریبا یک سال ، فقط داشتیم روی پنج / شش صفحه کار می کردیم که سرعتش بالا برود . با توجه به اینکه ، اینهمه زمان برایش گذاشتیم ، خیلی بیشتر از اینها توقع سرعت داشتیم.
مطمئن باشید که برای منی که این همه مدت با کامپوننت های قوی ASP.NET کار کردم ، خیلی سخت است که حالا سراغ PHP بروم . ولی چه کنم که ASP.NET امیدم را قطع کرده.:ناراحت:
حتی اگر تمام صفحات ASP.NET را هم HTML ی یا جاوااسکریپتی کنید ، باز هم زمانیکه قرار است از یک صفحه به صفحه ی دیگر برود ، دهان آدم را صاف می کند.:عصبانی++:

man4toman
یک شنبه 05 آبان 1387, 20:40 عصر
شما میتونید با ASP.NET و MySQL کار کنید بکمک MySQL Connector
برای افزایش سرعت لود صفحات هم بدنبال ASPJet باشید.
موفق باشید

vahid4134
دوشنبه 06 آبان 1387, 14:08 عصر
با سلام
راستش من خودم مدت زیادی ASP.NET کار کردم . ما و اعضای پروژه مان به مدت تقریبا یک سال ، فقط داشتیم روی پنج / شش صفحه کار می کردیم که سرعتش بالا برود . با توجه به اینکه ، اینهمه زمان برایش گذاشتیم ، خیلی بیشتر از اینها توقع سرعت داشتیم.
مطمئن باشید که برای منی که این همه مدت با کامپوننت های قوی ASP.NET کار کردم ، خیلی سخت است که حالا سراغ PHP بروم . ولی چه کنم که ASP.NET امیدم را قطع کرده.:ناراحت:
حتی اگر تمام صفحات ASP.NET را هم HTML ی یا جاوااسکریپتی کنید ، باز هم زمانیکه قرار است از یک صفحه به صفحه ی دیگر برود ، دهان آدم را صاف می کند.:عصبانی++:

ببینید همه اینها که مربوط به خود asp.net نیست. اول باید ببینید که سرور دیر جواب میده یا حجم فایلهای html و جاوااسکریپت و سی اس اس شما زیاده ؟ اگر اینها کم بود ببینید که اصلا سرعت خود سرور خوبه یا نه؟ اگر همه اینها درست بود اون وقت می تونید بگید که asp.net خوب نیست.
asp.net اینقدرها هم که میگید سرعتش پایین نیست. طراحی رو درست انجام بدید و سرور هم مناسب باشه سرعت خوبی رو داره

RoostaYeBekr
یک شنبه 26 آبان 1387, 23:51 عصر
با سلام
آخه می دونید ، به هر حال برای سایتی مثل همین سایت ، فقط داده ها نیست که در دیتابیس ذخیره می شود . حتی رنگ هر کلمه هم دارد یک جائی ذخیره می شود. این جور چیزها ، چطور ؟ آیا رنگ هر کلمه هم دارد در دیتابیس ذخیره می شود؟

shahriyar3
دوشنبه 27 آبان 1387, 00:33 صبح
واقعیت اینه همونطور که آقا وحید گفتن سرعت بازیابی اطلاعات از بانک mysql به مراتب بالاتر از بقیه بانک هاست.

سلام
جدا اين واقعيت داره حتي در مورد sql server 2008 ؟؟؟
تو اين نسخه آخر mysql تازه يسري امكانات بهش اضافه شده اونم نصفه نيمه (البته نسبت به sql server ميگم ) كه ميتونه كمك خيلي زيادي به سرعت پردازش هاي ديتابيس بكنه مثل
stored procedure و ...
من فكر ميكنم كه سرعت عمل تو هر 2تا بانك براي بعضي از دستورات با هم برابره اگر برنامه نويس كد درست بنويسه(اين نظر شخصيمه)
البته من اصلا علاقه اي به محصولات مايكروسافتي ندارم و نميخوام كه ازشون دفاع كنم ولي خوب ميخوام اطلاعات خودم زياد بشه .!!

yaqubian
دوشنبه 27 آبان 1387, 07:42 صبح
دوست عزیز shahriyar3
راستش مطلبی که گفتم از روی تجربه عرض کردم خدمتتون. توی چند تا پروژه ای که اخیرا با SQL-Server2008 انجام دادیم بازم به مشکل سرعت بازیابی اطلاعات برخورد کردیم که دوباره مجبور شدیم برنامه رو با Mysql بنویسیم و بطور وحشتناکی سرعت برنامه تغییر کرد.
من نمی گم محصولات مایکروسافت خوب نیست ولی تو این یه مورد تجربه شخصی من اینه!
موفق باشید

vahid4134
دوشنبه 27 آبان 1387, 11:05 صبح
سلام
جدا اين واقعيت داره حتي در مورد sql server 2008 ؟؟؟
تو اين نسخه آخر mysql تازه يسري امكانات بهش اضافه شده اونم نصفه نيمه (البته نسبت به sql server ميگم ) كه ميتونه كمك خيلي زيادي به سرعت پردازش هاي ديتابيس بكنه مثل
stored procedure و ...
من فكر ميكنم كه سرعت عمل تو هر 2تا بانك براي بعضي از دستورات با هم برابره اگر برنامه نويس كد درست بنويسه(اين نظر شخصيمه)
البته من اصلا علاقه اي به محصولات مايكروسافتي ندارم و نميخوام كه ازشون دفاع كنم ولي خوب ميخوام اطلاعات خودم زياد بشه .!!
sql server به نظر من اصلا مناسب نیست. چون یکی از مهمترین قوانین مهندسی نرم افزار یعنی cross platform بودن رو رعایت نمی کنه. مخصوصا در دیتابیس که این مورد بسیار بسیار بسیار مهم هست.
اما برای مقایسه امکانات بهتره از ویکی کمک بگیریم
http://en.wikipedia.org/wiki/Comparison_of_relational_database_management_syste ms
و یک benchmark هم بین دیتابیس ها
http://www.mysql.com/why-mysql/benchmarks/eweek.html

RoostaYeBekr
دوشنبه 27 آبان 1387, 14:18 عصر
دوست عزیز shahriyar3
راستش مطلبی که گفتم از روی تجربه عرض کردم خدمتتون. توی چند تا پروژه ای که اخیرا با SQL-Server2008 انجام دادیم بازم به مشکل سرعت بازیابی اطلاعات برخورد کردیم که دوباره مجبور شدیم برنامه رو با Mysql بنویسیم و بطور وحشتناکی سرعت برنامه تغییر کرد.
من نمی گم محصولات مایکروسافت خوب نیست ولی تو این یه مورد تجربه شخصی من اینه!
موفق باشید
واقعا که حرف درستی زدید . خیلی ها وقتی می گوئیم که با SQL.Server کار کردیم و حالا می خواهیم به خاطر فقط سرعت ، برویم سراغ Mysql ، سریع می گویند : پس ، فراموش کردید که SQL.Server قوی تره ؟ نخیر . فراموش نکردیم . ولی کاربر هم وقتی پای اینترنت می شینه ، اگر یک ذره صفحه ی سایت دیر بالا بیاد ، دکمه ی stop مرورگر رو می زنه .

ببخشید حالا می شه راجع به سوالی که من در پست قبلی ام در همین تاپیک مطرح کردم ، هم پاسخی بدهید :


آیا رنگ هر کلمه هم دارد در دیتابیس ذخیره می شود؟

آیا اینکه کاربر در متنی که وارد می کند ، کلید Enter را می فشارد و اینکه مثلا از این آدمکها :لبخندساده: استفاده می کند ، هم در دیتابیس ذخیره می شود؟

shahriyar3
دوشنبه 27 آبان 1387, 14:50 عصر
sql server به نظر من اصلا مناسب نیست. چون یکی از مهمترین قوانین مهندسی نرم افزار یعنی cross platform بودن رو رعایت نمی کنه. مخصوصا در دیتابیس که این مورد بسیار بسیار بسیار مهم هست.

اين كه تمام محصولات مايكروسافت رو شامل ميشه


اما برای مقایسه امکانات بهتره از ویکی کمک بگیریم
http://en.wikipedia.org/wiki/Comparison_of_relational_database_management_syste ms
و یک benchmark هم بین دیتابیس ها
http://www.mysql.com/why-mysql/benchmarks/eweek.html
لينك اول مقايسه"5.1 mysql" و "sql server 2005" بود كه اين اصلا منصفانه نبود
با اين همه بازم برتري mysql رو نشون نداد مثلا
قسمت Access Control فقط مقايسه بانك هاي open source ولي اگه بخواد با oracle يا sql server مقايسه بشه نتيجش چي ميشه؟؟ و ...
لينك دومتون هم كه مربوط به سال 2002 بود .
هيچ بقالي نميگه ماست من ترشه ; من رفتم benchmark سايت مايكروسافت رو هم ديدم اونها هم فقط تعريف كرده بودن
ولي اينو تائيد ميكنم :بامزه:

Of the five databases we tested, only Oracle9i and MySQL were able to run our Nile application as originally written for 8 hours without problems."
ولي بازم ميگم من اصلا علاقه اي به محصولات مايكروسافتي ندارم كه بخوام ازشون دفاع كنم فقط ميخوام اطلاعات خودم اضافه بشه:لبخندساده:
موفق باشيد

RoostaYeBekr
دوشنبه 27 آبان 1387, 15:28 عصر
با سلام
دوستان ببخشید ، می شه راجع به سوالی که من مطرح کردم ، پاسخ دهید ، آخه بیشتر صحبتهایتان راجع به مقایسه ی بین Mysql و SQL.Server است . سوال من که مقایسه ی بین این دو تا نیست. منظورم این است که سوالی که من مطرح کردم اصلا مربوط به دیتابیس خاصی نیست .:عصبانی++:

فقط همانطور که گفتم :


آیا رنگ هر کلمه هم دارد در دیتابیس ذخیره می شود؟



آیا اینکه کاربر در متنی که وارد می کند ، کلید Enter را می فشارد و اینکه مثلا از این آدمکها :لبخندساده: استفاده می کند ، هم در دیتابیس ذخیره می شود؟

narsic
سه شنبه 28 آبان 1387, 09:48 صبح
با سلام
دوستان ببخشید ، می شه راجع به سوالی که من مطرح کردم ، پاسخ دهید ، آخه بیشتر صحبتهایتان راجع به مقایسه ی بین Mysql و SQL.Server است . سوال من که مقایسه ی بین این دو تا نیست. منظورم این است که سوالی که من مطرح کردم اصلا مربوط به دیتابیس خاصی نیست .:عصبانی++:

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


با سلام<br />
آخه می دونید ، به هر حال برای سایتی مثل همین سایت ، فقط داده ها نیست که در دیتابیس ذخیره می شود . حتی <font color="red">رنگ هر کلمه</font> هم دارد یک جائی ذخیره می شود. این جور چیزها ، چطور ؟ <font color="darkorchid">آیا رنگ هر کلمه هم دارد در دیتابیس ذخیره می شود؟</font>

این پست خود شماست که من به شکل قرار گرفتن در بانکس برای سما قرارش دادم
موفق باشید

vahid4134
سه شنبه 28 آبان 1387, 14:03 عصر
اين كه تمام محصولات مايكروسافت رو شامل ميشه

لينك اول مقايسه"5.1 mysql" و "sql server 2005" بود كه اين اصلا منصفانه نبود
با اين همه بازم برتري mysql رو نشون نداد مثلا
قسمت Access Control فقط مقايسه بانك هاي open source ولي اگه بخواد با oracle يا sql server مقايسه بشه نتيجش چي ميشه؟؟ و ...
لينك دومتون هم كه مربوط به سال 2002 بود .
هيچ بقالي نميگه ماست من ترشه ; من رفتم benchmark سايت مايكروسافت رو هم ديدم اونها هم فقط تعريف كرده بودن
ولي اينو تائيد ميكنم :بامزه:

Of the five databases we tested, only Oracle9i and MySQL were able to run our Nile application as originally written for 8 hours without problems."ولي بازم ميگم من اصلا علاقه اي به محصولات مايكروسافتي ندارم كه بخوام ازشون دفاع كنم فقط ميخوام اطلاعات خودم اضافه بشه:لبخندساده:
موفق باشيد
لینکی رو که دادم نمی خواستم برتری رو نشون بده یک مقایسه بود. هر کدوم از پایگاه های داده برای خودشون مزایا و معایبی دارند.
در مورد محصولات مایکروسافت هم درسته همشون نه و قریب به اتفاق آره
لینک هم آره ماله سال ۲۰۰۲ بود ولی مقایسه ماله ms sql server 2000 با mysql4 بود دیگه
قبول الان تغییرات بسیار بوده اما تغییرات توی mysql به مراتب بیشتر از ms sql هست. البته شاید به خاطر خرید mysql توسط sun باشه.


با سلام
دوستان ببخشید ، می شه راجع به سوالی که من مطرح کردم ، پاسخ دهید ، آخه بیشتر صحبتهایتان راجع به مقایسه ی بین Mysql و SQL.Server است . سوال من که مقایسه ی بین این دو تا نیست. منظورم این است که سوالی که من مطرح کردم اصلا مربوط به دیتابیس خاصی نیست


در ادامه فرمایشات دوست قبلی مراقب حملات xss هم باشید

RoostaYeBekr
سه شنبه 28 آبان 1387, 15:45 عصر
با سلام و تشکر از توضیحاتتون
vahid4134 (http://barnamenevis.org/forum/member.php?u=28668)گفتید :


در ادامه فرمایشات دوست قبلی مراقب حملات xss هم باشید

راستش من نمی دونم حملات xss چیه . می شه یک توضیحی بدید.

yaqubian
سه شنبه 28 آبان 1387, 17:26 عصر
دوست عزیز
xss مخفف Cross Site Scripting و زمانی اتفاق می افته که یه برنامه کاربردی تحت وب اطلاعات نادرستی رو از یک user دریافت کنه! نمونش باکس هایی است که با جاوااسکریپته و شما مثلا اسمتون رو داخل اون وارد می کنین که می شه به جای وارد کردن اسم یه اسکریپت رو داخلش وارد کرد.
می شه باهاش session یا cookie رو دزید و ...
مثلا یکی از راه های مقابله با اون اینه که حتی الامکان از لینک های مستقیم تو فرم ها استفاده نکنیم.
موفق باشید