تغطية مباشرة لأحداث منتدى الإعلام الجديد المقام بمدينة أبوظبي
هل تقترح تمديد مسابقة سوالف كاست؟

 

العودة   سوالف سوفت > قسم تطوير وبرمجة المواقع للمتقدمين > PHP
المدوّنات البحث مشاركات اليوم اجعل كافة المشاركات مقروءة

رد  
 
LinkBack أدوات الموضوع
عضو نشيط
تاريخ التسجيل: Feb 2008-
#1 (permalink)  
لمحترفين mysql فقط


السلام عليكم ورحمة اللة وبركاتة

اخوانى انا قمت بعمل سكربت لجامعة نتيجة وانشطة عديدة وكل شىء تمام

وعدد زوار الاسكربت حين زاد فى أنتظار الطلاب نتيجتهم واجهت مشكلة اخرى ان الوود يرتفع بشكل كبير جدا على السيرفر وعدد الزوار يوصل فى اللحظة الواحد 2000 زائر والموقع يفتح ببطىء وهذا بسبب كثرة الأستعلامات

فما هو الحل فى هذة الأستعلامات او ما الألية التى يتم استخدامها مع الاسكربتات التى يدخل عليها اعداد كبيرة

وهل من الممكن عمل استعلام واحد يشمل جميع الأستعلامات مع وجود مثال

وهل يوجد شىء فنى يتم استخدموا اثناء الأتصال بقاعدة البيانات او حل مثل الحلول التى تستخدم فى المنتديات

ارجو من محترفين sql التدخل

فى أنتظاركم أخوانى






tech غير متواجد حالياً   قديم 20-06-2008, 03:17 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Jan 2008-
#2 (permalink)  

اخى ما هو متوسط عدد الاستعلامات بكل صفحة ؟؟






drabdalla غير متواجد حالياً   قديم 20-06-2008, 06:40 PM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: May 2007-
#3 (permalink)  

إستخدم نظم القوالب التي تحتوي على خاصية الـ cache ، أو إن أردت إستخدم الـ mysql query cache






dev11 غير متواجد حالياً   قديم 20-06-2008, 07:57 PM
رد مع اقتباس
عضو فعال جدا
تاريخ التسجيل: Jun 2003-
#4 (permalink)  

كما اشار اليك الاخوة و حاول استخدام اغلاق للاتصال بقواعد البيانات بعد الاستعلام .






__________________
htaccess بكل بساطة

الشفرة الموحدة "يونِكود"

(إن من مفاسد هذه الحضارة أنها تسمي الاحتيال ذكاءً، والانحلال حرية، و"الرذيلة فناً" والاستغلال معونة) - مصطفى السباعي
jadweb.com غير متواجد حالياً   قديم 21-06-2008, 12:05 AM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Feb 2008-
#5 (permalink)  

السلام عليكم

drabdalla متوسط عدد الأستعلامات 20 فى كل صفحة
-
dev11 ممكن تكتب لى مثال بسيط لعمل كاش للأستعلام
-
jadweb.com انا أقوم بغلق الأتصال فى نهاية الصفحة


لاكنى يا اخوانى افضل أستعلام واحد يشمل جميع الأستعلامات

فى أنتظاركم






tech غير متواجد حالياً   قديم 21-06-2008, 05:57 AM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: May 2007-
#6 (permalink)  

The MySQL Query Cache






dev11 غير متواجد حالياً   قديم 21-06-2008, 04:36 PM
رد مع اقتباس
مشرف قسم PHP
تاريخ التسجيل: Apr 2002-
#7 (permalink)  

التخزين المؤقت (cache) ليس حل لزيادة الحمل على الخادم ... تأكد من :
- مواصفات الخادم وأنه يتحمل 2000 زائر وذلك باختبار كل زائر كم يستهلك من موارد النظام والقياس على ذلك .
- تاكد من ان البرنامج لا ينفذ استعلامات او تعليمات غير محسوبه مما يسبب حمل على الخادم .
الحل هو مراجعة النظام لان التخزين المؤقت يدخل في تحسين اداء البرنامج وليس معالجة اخطاء البرنامج , وهو ايضا يعتمد على طبيعة البرنامج نفسه , بعض البرامج مثل برامج العملات (forex) لا يمكن ان تعمل تخزين مؤفت في اي مكان كان يجب ان تكون البيانات فورية وغير متأخره .






__________________
I Love PHP (d4d@hotmail.com)
http://www.daif.net/
daif غير متواجد حالياً   قديم 21-06-2008, 07:55 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Feb 2008-
#8 (permalink)  

السلام عليكم ورحمة اللة وبركاتة

أخى daif مواصفات السيرفر قوية جدآ وتتحمل زيارات أكثر من هذا بالنسبة للأستعلامات لو أصبحوا فى أستعلام واحد هل تحل المشكلة

وممكن ان تكتب مثال لأستعلام يشمل أكثر من أستعلام

-






tech غير متواجد حالياً   قديم 21-06-2008, 08:08 PM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: May 2007-
#9 (permalink)  

كود PHP:
select name from table1 where id in (select id from table2






dev11 غير متواجد حالياً   قديم 21-06-2008, 09:59 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Feb 2008-
#10 (permalink)  

اخى الكريم انا اريد استعلام واحد يشمل استعلامات مثلا استعلام لجلب احدث عشر أضافات واقسام الموقع واحدث عشر أعضاء

ارجو كتابة استعلام مشابة للوظائف هذة






tech غير متواجد حالياً   قديم 21-06-2008, 10:47 PM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: May 2007-
#11 (permalink)  

لايمكن ذلك ، لابد من الإستعلام عن كل وظيفة تريدها






dev11 غير متواجد حالياً   قديم 22-06-2008, 10:46 AM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Feb 2008-
#12 (permalink)  

السلام عليكم ورحمة اللة وبركاتة

اخى dev11 انا اقول مثال من عندك تكتبوا

وفى شىء مش قادر افهموا لو علمنا استعلام لأكثر من جدول حين عمل الووب النتائج تكون فى مصفوفة واحد

ام هذا الأستعلام يعطى اكثر من مصفوفة مثلا مصفوفة للأقسام ومصفوفة للأعضاء وهكذا

اريد مثال توضيحى






tech غير متواجد حالياً   قديم 22-06-2008, 09:18 PM
رد مع اقتباس
عضو فعال
تاريخ التسجيل: Jul 2003-
#13 (permalink)  

انت بحاجة إلى اعادة تصميم الداتا بيز الخاص بك .. Database Design ، حيث يجب مراعاة الكثير من النقاط على حسب التحديثات الجارية ( زيادة عدد الزوار بشكل كبير ) ..

- يكون هناك العديد من النقاط التي تؤخذ في الاعتبار ، مثلا الاحصائيات لا يجب ان تقوم لعملية احصائها فعليا ، بل يمكن تخزينها دوريا ( كل يوم مثلا ) في حقل معين ..

- مثلا لو عندك اعضاء ولكل عضو عدد معين من المواد ، في صفحة العضو بدلا عن جلب عدد المواد في كل مرة ، يتم تحديد عدد المواد في حقل واحد عوضا عن جلبه كل مرة ( هذا باعتبار ان المواد لها جدول منفصل )


انصحك عزيزي ان تجد اي مقالة او كتاب يتحدث عن Database Optimization .. تقراه وتفهمه في يومين ثلاثة .. وبعدها تقوم بالتعديل على السكربت الخاص بك .. في يومين ثلاثة ايضا ..

وتصل لنتيجة معقولة ..


ملحوظة :
3 - 6 استعلامات في الصفحة = موقع ممتاز
7 - 10 استعلامات في الصفحة = متوسط ( يعني ممكن يسبب لود مع ضغط الزوار فقط )
فوق ال 10 يكون الوضع fair

هناك الكثير من المواقع الكبيرة .. والتي تحوي العديد من المميزات و و و .. وتعمل كحد اقصى ب 7 - 9 استعلامات


اولا حاول تعديل او تضبيط الداتا بيز
ثانيا حاول استخدام الكاش في بعض المناطق التي بحاجة إليها


تحياتي وبالتوفيق






__________________
النسخة الثانية من ابلود بلس قريبا جدا :
+ شريط مئوي لرفع الملفات
+ دعم اكثر من سيرفر لرفع الملفات Multi-Server
+ مكتبة ملفات مؤرشفة
Egyptechno غير متواجد حالياً   قديم 23-06-2008, 06:56 AM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Feb 2008-
#14 (permalink)  

السلام عليكم ورحمة اللة وبركاتة

شكرا لك Egyptechno للنصائح الهامة

ممكن مثال لأستعلام يشمل عدة أستعلامات مع توضيح لكيفية طباعة كل مصفوفةخاصة بكل جدول






tech غير متواجد حالياً   قديم 23-06-2008, 09:38 AM
رد مع اقتباس
عضو فعال
تاريخ التسجيل: Jul 2003-
#15 (permalink)  

ابسط مثال .. والاكثر شيوعا .. مثلا
لو عندك اخبار .. وفي صفحة الخبر نفسه تريد ان تقوم بعرض اسم القسم والرابط ..

الطريقة التقليدية :
كود PHP:
$sql mysql_query("select * from news where news_id = '$id' ");
$row mysql_fetch_array($sql);
mysql_query("select cat_name from cats where cat_id = '$row[cat_id]' "); 
هنا ، يوجد نقطتين :
1- استخدمنا استعلامين
2- استخدمنا mysql_fetch_array والتي تقوم بارجاع القيم على شكل مصفوفتين واحدة associative ( نصية او مفاتيح المصفوفة تكون باسماء الحقول ) واخرى تكون بالارقام 0 1 2
<< يمكنك التأكد او معاينة الوضع ب print_r او var_dump


والاصح :
كود PHP:
$sql mysql_query("select news.*, cats.cat_name from news, cats where news_id = '$id' AND news.cat_id = cats.cat_id ");
$row mysql_fetch_assoc($sql); 
1- صار استعلام واحد
2- استخدمنا mysql_fetch_assoc والتي تقوم بارجاع مصفوفة واحدة مفاتيحها هي اسماء الحقول


كذلك يمكن ان تقوي نفسك من خلال القراءة في ال inner join و outer join ، حيث انها تقوم بزيادة سرعة واداء الاستعلام بشكل ملحوظ ..

تحياتي






__________________
النسخة الثانية من ابلود بلس قريبا جدا :
+ شريط مئوي لرفع الملفات
+ دعم اكثر من سيرفر لرفع الملفات Multi-Server
+ مكتبة ملفات مؤرشفة
Egyptechno غير متواجد حالياً   قديم 24-06-2008, 08:50 AM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Feb 2008-
#16 (permalink)  

السلام عليكم ورحمة اللة وبركاتة

أولا Egyptechno مشكور على كتابتك هذا المثال

انا اريد مثل عمل أستعلام شامل أستعلامين واقدر أعمل لوب كل جدول لوحدوا

مثلا

كود PHP:
<?
 
$sql_a 
mysql_query("select * from news "); 
 
while(
$row_a mysql_fetch_assoc($sql_a)){
 
}
 
 
$sql_b mysql_query("select * from cats ");  
while(
$row_b mysql_fetch_assoc($sql_b)){
 
}
 
?>
ازاى اعمل أستعلام يشمل الأستعلامين السابقين ولاكن عمل لوب منفصل لكل جدول كما هو بالمثال

وشكرا لك أخى الكريم






tech غير متواجد حالياً   قديم 24-06-2008, 10:50 AM
رد مع اقتباس
عضو فعال
تاريخ التسجيل: Jul 2003-
#17 (permalink)  

عمل استعلامين لجدولين ليس لهما اي علاقة ببعض من قريب او بعيد .. لا يتم الا من خلال union

كود PHP:
select name from cats union select str from news 
ولكنها طريقة غير مضمونة للاعتماد عليها ، لا اتذكر شكل النتائج ولكنها غالبا ما تستخدم ال SQL Injection بل هي اساس ال SQL Injection ..



ولكن الذي حاولت ومازلت احاول ان اوصله لك .. انه من الافضل والاصح والاكثر منطقية عند تواجد اكثر من استعلام لاكثر من جدول ليس لهم اي علاقة ببعض .. فمن الاصح ان يكون لكل جدول او لكل عملية استعلام خاص ..

فحاول مراجعة العمليات اللي تتم .. من المستحيل ان يكون هناك 20 استعلام ل 20 عملية مختلفة في كل صفحة ..


لابد ان يكون هناك عمليات من الممكن دمجها او تغيير طريقة التعامل معها .. بعيدا عن استخدام union او بعيدا عن الجداول المنفصلة ..

بالتوفيق






__________________
النسخة الثانية من ابلود بلس قريبا جدا :
+ شريط مئوي لرفع الملفات
+ دعم اكثر من سيرفر لرفع الملفات Multi-Server
+ مكتبة ملفات مؤرشفة
Egyptechno غير متواجد حالياً   قديم 24-06-2008, 02:29 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Feb 2008-
#18 (permalink)  

السلام عليكم ورحمة اللة وبركاتة

Egyptechno شكرآ لك وشكرآ لجميع الأخوة الذين شاركونا بأفكارهم






tech غير متواجد حالياً   قديم 24-06-2008, 03:21 PM
رد مع اقتباس
رد


 

أدوات الموضوع

تعليمات المشاركة
لا تستطيع كتابة مواضيع
لا تستطيع كتابة ردود
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة


المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
محادثه مع نصاب r7y سوالف عامة 50 01-10-2007 09:53 PM
لخريجي الثانوية معلومات هامة ( مواعيد القبول في الكليات والجامعات ) بدر 821 سوالف عامة 7 19-08-2007 10:33 PM
فى 20 يوما فقط كن من حملة القرءان,مع دورة تغيير العقل ومضاعفة مقدار الحفظ الى 100 ضعف زند الاسى سوالف عامة 10 19-07-2007 12:59 PM
في MySQL كيف أجعل الـ ID أحرف وأرقام بدلاً من الأرقام فقط ؟ alwannah PHP 6 25-07-2005 09:40 AM


الساعة الآن: 09:44 AM بتوقيت المملكة العربية السعودية