PDA

View Full Version : سوال در باره سریع تر خواندن اطلاعات از بانک اطلاعاتی



angel_boy013
چهارشنبه 02 اسفند 1385, 07:45 صبح
خسته نباشید همه دوستان
من یک صفحه درست کردن که توش از بانک اطلاعاتی استفاده کردم از روش عادی برای خوندن اطلاعات
mysql_query();
mysql_fetch_array();
...

اما سرعت خواندن اطلاعاتش کمه و خیلی کند صفحه باز میشه راهی هست برای خواندن سریع تر از بانک اطلاعاتی ؟

mermaid
چهارشنبه 02 اسفند 1385, 08:09 صبح
دوست خوبم ... احتمال داره کوئری شما خیلی سنگین باشه ...

میشه لطف کنی اونو اینجا بذاری؟

angel_boy013
پنج شنبه 03 اسفند 1385, 07:57 صبح
نه خیلی ساده است مثل بقیه SELECT * FROM RABLENAME WHERE id='' AND USERNAME ='' بعضی جاها هم از یک limit 6 یا order by rand() استفاده شده اما خوب توی یک صفحه از 4 تا استفاده شده + 4 تا دیگه که بعد لود صفحه با ajax لود میشه اما بازم خیلی کنده

hamid_193
پنج شنبه 03 اسفند 1385, 08:44 صبح
دوست عزیز سلام - من راستش زیاد برنامه نوسی حرفه ای نیستم -البته این را هم بگم که من با VB.NET می نویسم . وقتی که می خوام از دیتا بیس استفاده کنم اول یه متغیر عمومی توی ماژول یا حتی موقع لود شدن صفحه اول برنامه تعریف می کنم و همونجا coonection را ایجاد می کنم و داخل متغیر می ریزم - از حالا به بعد هرجا خواستم از coonection استفاده کنم از اون متغیر استفاده می کنم - با این روش با اجرای برنامه موقع لود شدن صفحه اول یک کم طول میکشه ولی از اون به بعد سرعت یک کم بهتر میشه . حتی می تونی صفحه اولی که یک کم طول میکشه را یک پنجره بگذاری که معرفی برنامه باشه . اگه میشه زبان برنامه نویسیت را بگو تا اگه نتونستی جواب بگیری از دوستام بپرسم .

Milad
پنج شنبه 03 اسفند 1385, 11:53 صبح
شاید مشکل از سیستم هست یا برنامه که داری
ببرش روی سرور خیلی سریعتر از این اجرا می شه

I,Nobody
پنج شنبه 03 اسفند 1385, 12:28 عصر
البته یادمون باشه که طراحی بهینه DB خودش خیلی توی اجرای Query هی سنگین تاثیر داره

angel_boy013
جمعه 04 اسفند 1385, 11:41 صبح
هز همطون ممنون اما روش hamid_193 خوب منم برای وصل شدن یک متغیر استفاده میکنم
اما بازم خیلی کنده از mysql استفاده می کنم

sayeh007
جمعه 04 اسفند 1385, 15:25 عصر
moshkel shoma to kod nist balke az systemeh shomast fagat hamin

cybercoder
جمعه 04 اسفند 1385, 16:46 عصر
moshkel shoma to kod nist balke az systemeh shomast fagat hamin

چقدر با اطمینان !!!!!!!!!!!!


اما سرعت خواندن اطلاعاتش کمه و خیلی کند صفحه باز میشه راهی هست برای خواندن سریع تر از بانک اطلاعاتی ؟

از چه وب سروری استفاده می کنی و Config ش رو بازبینی کن. حتی اگه سیستم سخت افزاری شما P2 هم باشه یا K6II باز هم Apache و Mysql و کامپایلر PHP در این موارد به خوبی کار می کنه اشکال یا از Config مربوط به Web Server یا اینکه داخل کدهات جایی اشکالی وجود داره.

موفق باشید

angel_boy013
جمعه 04 اسفند 1385, 18:08 عصر
خوب سرور برای من نیست من فقط هاست رو خریدم برای همین خیلی چیزهارو نمیتونم عوض کنم خودتون میتونید ببنید www.sogmad.com

mermaid
شنبه 05 اسفند 1385, 10:57 صبح
خب ، چک کردید که ببینید آیا سرور عملیات شما رو کند اجرا می کنه یا کد شما (مثلا به دلیل وجود حلقه ها) احتمالا سخت اجرا میشه؟

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

البته اگر مطمئنی کدت مشکلی نداره ، ... دیگه نمی دونم مشکل ممکنه چی باشه...

angel_boy013
شنبه 05 اسفند 1385, 21:51 عصر
نمیدونم امتحان میکنم بهت میگم چی میشه

moohssenn
شنبه 05 اسفند 1385, 22:38 عصر
SELECT * FROM RABLENAME WHERE id='' AND USERNAME ='' بعضی جاها هم از یک limit 6 یا order by rand() استفاده شده

با سلام
دوست گرامی چند نکته در مورد sql شما وجود دارد
1 - فقط فیلدهائی که نیاز داری را در sql به کار ببر مثلا Select UserName,Password و ....
2 - دلیل استفاده از order by rand() چیست ؟ یه جا خوندم ( الان دقیقا یادم نیست کجا بود اما فکر کنم توی مقالات Mysql همین سایت ) که توصیه کرده بود از این شیوه استفاده نکنید
3 - این مورد مربوط به sql شما نمیشه اما خواستم یادآوری کنم که Index فراموش نشود

msn_vb
پنج شنبه 10 اسفند 1385, 11:20 صبح
راهکار های مختلفی برای سرعت بخشیدن به عملیات هست
دستور order یکی از دستوراتی هست که سرعت کار رو پایین میاره

cybercoder
دوشنبه 14 اسفند 1385, 17:27 عصر
راهکار های مختلفی برای سرعت بخشیدن به عملیات هست
دستور order یکی از دستوراتی هست که سرعت کار رو پایین میاره

دوست عزیز صحبتی که شما می کنید در 3 یا 4 هزار رکورد هم چندان ملموس نیست ولی حرف شما در رکوردهایی بیش از 1 یا 2 ملیون صحیحه. شما یه مسئله دیگه رو هم در نظر نمی گیرید اونم اینه که کسی که Hosting رو انجام می ده مطمئنن حداقل یه Dual می بنده و اینکه از FiberOptic برای انتقال Data استفاده می کنه.

شما یه Query تو در تو هم بنویسید که چندین شرط رو مقایسه کنه با روش های ساده ای مثل Pagination می تونید جلوی TimeOut شدن رو بگیرید.

موفق باشید.

angel_boy013
سه شنبه 15 اسفند 1385, 19:35 عصر
میشه یک کم توضیح بدی منظورت رو نفهمیدم