من یه پروژه دارم که کانکشن های زیادی با mysql داره با توجه به پست برادر اینپرایز در بخش asp.net کسی مقاله یا نظری در این مورد نداره؟
من یه پروژه دارم که کانکشن های زیادی با mysql داره با توجه به پست برادر اینپرایز در بخش asp.net کسی مقاله یا نظری در این مورد نداره؟
Artists use lies to tell the truth while politicians use them to cover the truth up
خوب تا نفهمیم کارتون چیه که نمی شه چیزی گفت، شاید اگر بیشتر توضیح بدید بهتر باشه.
ایمیل من
سایت من
عضویت در جامعهی اهدای عضو
Direct PGP key: http://tinyurl.com/66q5cy
PGP key server: keyserver.ubuntu.com
PGP name to search: omidmottaghi
تاپیک رو بخون کلا منظورم اینه که چطور یشه از mysql بهتر استفاده کرد تا سربار کمتری ایجادکنه و در کار سرور اختلال ایجاد نکنه
Artists use lies to tell the truth while politicians use them to cover the truth up
1- سعی کن یک کانکشن به سرور ایجاد کنی، و در اکثر مبادلات از اون استفاده کنی. کانکشنهای متعدد از یک برنامه واحد فقط بار رو بیشتر میکنه.
2- ...
منظور شما اینه که در هر صفحه تنها یک بار به بانک وصل شوم(خوب نفهمیدم)منظور شما mysql_pconnect بود؟سعی کن یک کانکشن به سرور ایجاد کنی، و در اکثر مبادلات از اون استفاده کنی. کانکشنهای متعدد از یک برنامه واحد فقط بار رو بیشتر میکنه.
در ضمن قبلا هم البته سئوال کرده بودم آیا mysql_close همانند mysql_free_result حافظه را از پرس و جو ها پاک می کند؟
من می خوام بدونم در برنامه نویسی از چه تکنیک هایی باید استفاده کرد تا سر بار زیادی بر روی سرور ایجاد نشه
Artists use lies to tell the truth while politicians use them to cover the truth up
به هیچ عنوان از mysql_pconnect استفاده نکن :) (از اونجایی که از من هاست داری، اگر در سرور من از این استفاده کنی، باهاش به عنوان mysql_connect برخورد می شه :D )
ایمیل من
سایت من
عضویت در جامعهی اهدای عضو
Direct PGP key: http://tinyurl.com/66q5cy
PGP key server: keyserver.ubuntu.com
PGP name to search: omidmottaghi
به این کد توجه کنید
$selected=explode(":",$selected);
for($count=0;$count<count($selected) ;-1;$count++){
$query="SELECT * FROM elib WHERE title='$selected[$count]'";
$result=mysql_query($query) or die(mysql_error());
echo "ok";
mysql_free_result($result);
}
از آنجایی که تعداد عناصر آرایه ممکن است خیلی زیاد باشد آیا mysql_free_result خود وقت گیر نخواهد بود و سر بار زیادی ایجاد نخواهد کرد؟آیا راهی برای جلوگیری هست یا mysql_free_result کار می کند؟
Artists use lies to tell the truth while politicians use them to cover the truth up
من دقیقا کار این کدتون رو نمی دونم ولی شاید کد زیر براتون بهتر (بهینه تر) کار کنه.
$selected=explode(":",$selected);
$query="SELECT * FROM elib WHERE title='$selected[0]'"
for($count=1;$count<count($selected) ;-1;$count++){
$query="OR title='$selected[$count]'";
}
$result=mysql_query($query) or die(mysql_error());
echo "ok";
mysql_free_result($result);
موفق باشید، امید
ایمیل من
سایت من
عضویت در جامعهی اهدای عضو
Direct PGP key: http://tinyurl.com/66q5cy
PGP key server: keyserver.ubuntu.com
PGP name to search: omidmottaghi
نه این پرس و جو بدردم نمی خوره چون به هیچ شزطی احتیاج ندارم من باید بر اساس تعدادخانه های متغییر selected چند رکورد را (همه با هم) اتخاب کنم
Artists use lies to tell the truth while politicians use them to cover the truth up
من منظور صحبتتون رو نفهمیدم، به هر حال، اگر می گین به درد نمی خوره، خوب لابد نمی خوره :)
خوب شاید بهتر باشه تفاوت زمان اجرای برنامه تون در حالتی که mysql_free_result داشته باشه و نداشته باشه رو تست کنید.
ایمیل من
سایت من
عضویت در جامعهی اهدای عضو
Direct PGP key: http://tinyurl.com/66q5cy
PGP key server: keyserver.ubuntu.com
PGP name to search: omidmottaghi
من خیلی بعید میدونم پروژهء مبتنی بر وبی که داری اینقدر Load ایجاد کنه که با مشکل مواجه بشی ، اما محض احتیاط :من یه پروژه دارم که کانکشن های زیادی با mysql داره
الف- این مسئله ربطی به MySQL نداره . مربوطه به PHP .
ب- حتی الامکان سعی کن از یک مدل مبتنی بر Offline DataSet استفاده کنی . یعنی تا حد ممکن یکبار اطلاعاتی که محتملا" نیازشون خواهی داشت رو بگیر - مثلا" بصورت XML - و دفعات بعدی صرفا" اونها رو جستجو کن ، این برای PHP واقعا" راه حل خوبیه .
ج- MySQL بانک قدرتمند و سریعی هست ، با جستجوهای متعدد مشکلی پیدا نمیکنی ؛ نکته ای که حقیر بهش اشاره کرده مربوط هست به فرآیند Login . به ازای ایجاد هر اتصال به بانک ، یکبار فرایند Login اتفاق می افته که این واقعا" فشار زیادی به بانک تحمیل میکنه ؛ اگر کد MySQL رو بخونی یا مرورش کنی خیلی راحت این رو متوجه میشی .
بنده قبلآ" اینکار رو نکرده بودم اما بعد از کشف نقطه ضعف اخیر روی MySQL که به کاربران اجازه میده "بدون نیاز به وارد کردن پسورد" از یک اکانت استفاده کنن ( احتمالا" Root ) و بعد از مرور بخشهائی از کد مذکور به این نتیجه رسیدم که باید برای اتصال به MySQL یه فکر خیلی جدی کرد ؛ هر چند کدهای مربوط به بخش Login خوب نوشته شدن ، اما حداقل به عقیده ء شخصی من معماری چند ریسمانی چندان جالبی نداره ؛ حتی تو همین سایت برنامه نویس با ترافیک نه چندان بالا ( در مقابل سایتهای فوق العاده شلوغ ) چند باری با عدم در دسترس بودن بانک اطلاعاتی مواجه شدم ( سایت - سرور و وب سرور هیچ مشکلی نداشتند ، در تمامی موارد صرفا" اتصال به بانک ممکن نبود ) ، در مورد ترافیکهای واقعا" زیاد حتما ماجرا جدی تره .
علیرغم تمام مطالب فوق MySQL بدون توجه به توانائی یا کارائی یا امکانات ، صرفا از دیدگاه سرعت و چابکی ، سالها از M$ SQL و اوراکل جلو تره .
موفق باشید :)
UNIX is simple. It just takes a genius to understand its simplicity
-- Dennis Ritchie
نتیجه اخلاقی:؟برم XML یاد بگیرم؟
حقیقتش پروژه من یک پرتال (CMS) است که برای گروه های کاری دانشجویی نوشته شده و شامل ماژول های زیادی هست بر روی وب سرور لوکال مشکل ندارم چون بچه های خودمون اونقدری نیستن که نشه بهشون جواب نداد اما زمانی که این اطلاعات به روی وب می ره با توجه به نوعش بازدید کننده خیلی زیادی خواهد داشت من تا جایی که تونستم سعی کردم در بسیاری موارد از کار با فایلها استفاده کنم.ولی وجود کلاس ها و include شدن کلاس ها در صفحات خودش باعث کندی پاسخگویی برنامه می شود (و همون طور هم که می دونین بدون کلاس ها نمی شه یه پروژه دست و حسابی در اورد(reuse!reuse!reuse!))
حالا اگر در مواردی تعداد درخواست ها زیاد بشه چون بخش اعظمی از اطلاعات داره از بامک اطلاعاتی استفاده می کنه تعداد صفحاتی که در خواست لاگین به بانک رو می کنند خیلی بالا میره.واضح است که تعداد پرس و جو ها هم زیاد خواهد شد.
اگر مشکل include شدن کلاس ها و همچنین تعداد حلقه های زیاد و استفاده از سیستم فایل رئ کنار بذازیم
بزرگترین مشکل من اینه که با این همه کاربر و تعداد زیاد صفحات چه کار کنم که با پیغام خطا هایی مثل زمانی که همین فوروم شلوغ می شود مواجه نشوم؟
Artists use lies to tell the truth while politicians use them to cover the truth up