El-Hani الهـــاني

El-Hani الهـــاني Senior Software Engineer | Spezialist für Webdesign & Rebranding | Ich helfe Restaurants, Schulen & Vereinen, sichtbar und professionell aufzutreten.

🚀 ترتيب الأعمدة في الـ Index بيأثر على سرعة الـ Query!أحيانًا بتحس أنو الـ Database عندك بطيئة، وأول شيء ممكن تفكر فيه: ...
18/02/2025

🚀 ترتيب الأعمدة في الـ Index بيأثر على سرعة الـ Query!
أحيانًا بتحس أنو الـ Database عندك بطيئة، وأول شيء ممكن تفكر فيه: هل الاندكسات عندي معمولة بشكل صحيح؟
بتراجعهم، وبتلاقي أنو عندك Indexes، لكن الكويري لسا بطيئة! طيب وين المشكلة؟ 🤔
🔹 قبل كل شي، جاوبني ع هالسؤال:
عندنا هالكويري:
SELECT * FROM sales WHERE region = 'North' AND amount > 500 AND date >= '2024-01-01';
هل في فرق بين هالـ Indexes؟
INDEX(region, amount, date)
INDEX(date, region)
INDEX(region, amount)
أو كلن نفس الشي؟
الجواب: أكيد في فرق كبير! والـ Index الأفضل هو: INDEX(region, amount)
🤔 ليش ترتيب الأعمدة بالـ Index مهم؟
لأنو الـ Database Engine بيقرأ الاندكس بطريقة مرتبة ومنظمة، وأي خطأ بسيط بترتيب الأعمدة ممكن يخلي الكويري بطيئة بدل ما تكون سريعة! 🚀
إذا بدك تعرف كيف تختار الترتيب الصح، امشي على هالـ 5 خطوات البسيطة:
🛠 5 خطوات لاختيار أفضل Index!
✅ 1️⃣ ضع جميع الأعمدة اللي بتستخدم = أولًا.
✅ 2️⃣ بعدها ضع فقط عمود واحد فيه > أو < أو BETWEEN أو LIKE 'X%'.
✅ 3️⃣ إذا كان في ORDER BY أو GROUP BY، أضفهم آخر شي إذا ممكن.
✅ 4️⃣ لا تخلط ASC مع DESC، لأنو بيخلي الـ Index غير مفيد.
✅ 5️⃣ إذا الكويري بتستخدم أعمدة معينة، الأفضل تضيفها كلها بالـ Index حتى ما يضطر MySQL يقرأ من الجدول (Covering Index).
🔹 أمثلة عملية:
📌 مثال 1:
SELECT * FROM orders
WHERE status = 'shipped'
AND created_at >= '2025-01-01'
AND approved_at < '2025-02-01'
ORDER BY price ASC;
✅ أفضل Index هو: INDEX(status, created_at, price)
💡 ليش؟
• status = 'shipped' (شرط = يجي أول شي بالـ Index).
• created_at >= (شرط مقارنة >= يجي بعد =).
• ORDER BY price ASC (ممكن إضافته إذا كان بالترتيب الصح).
📌 مثال 2:
SELECT id, name FROM customers
WHERE country = 'Germany'
AND status = 'active'
ORDER BY last_purchase DESC;
✅ أفضل Index هو:INDEX(country, status, last_purchase, id, name)
💡 ليش؟
• country و status شروط =، بيجوا أول شي.
• last_purchase يساعد MySQL على ترتيب البيانات بدون ما يعمل Sorting إضافي.
• id, name لجعل الـ Index Covering (يعني MySQL بيقرأ البيانات مباشرة من الاندكس بدون الرجوع للجدول).
🚀 النتيجة؟ Queries أسرع بـ 10-100X! ⚡
• ترتيب الأعمدة داخل الـ Index مش اعتباطي، بيأثر مباشرة على سرعة الكويري.
• تطبيق هالخطوات رح يخفض وقت التنفيذ من ثواني إلى ميلي ثواني! 🚀
• استخدم EXPLAIN عشان تشوف إذا MySQL بيستخدم الاندكس بشكل صحيح.
📌 احفظ هالبوست ورح يفيدك كل مرة بتحسن أداء الـ Database!
بالصورة في بعض الأمثلة يلي ممكن تفيدك

🤔 Confused about GitLab and GitHub? Let's clear things up! 💡 Learn about the key differences between these two popular v...
27/09/2023

🤔 Confused about GitLab and GitHub? Let's clear things up! 💡 Learn about the key differences between these two popular version control platforms and choose the one that suits your project needs best. ⚙️ Get ready to supercharge your development workflow! 🚀

posted by:

"

🚀 Ignite your child's curiosity with the exciting world of SQL! 📚 Teach them the power of databases, queries, and data m...
27/09/2023

🚀 Ignite your child's curiosity with the exciting world of SQL! 📚 Teach them the power of databases, queries, and data manipulation in a playful and engaging way. 🌟 Learning SQL is not just for grown-ups anymore! 🧠💡 Let's embark on this educational adventure together!

posted by: Rahul Codes

"

🔍 Dive into the world of JavaScript storage options! 📦 Discover the key differences between Local Storage and Session St...
27/09/2023

🔍 Dive into the world of JavaScript storage options! 📦 Discover the key differences between Local Storage and Session Storage, and learn when to use each one for your web development projects. 🌐 Join the conversation and level up your coding knowledge! 💻

posted by: CodeBustler

English below 👇كتير منسمع خلال تنفيذ المشاريع عن الـ Design Pattern. هنن أحد أعم المفاهيم البرمجية يلي بتساعدنا بتصميم أ...
06/05/2023

English below 👇

كتير منسمع خلال تنفيذ المشاريع عن الـ Design Pattern. هنن أحد أعم المفاهيم البرمجية يلي بتساعدنا بتصميم أي مشروع أو سيستيم.

أحد أهم وأسهل الأنماط يلي منستعملها هو Singleton.
الـ Singleton هو نمط بستخدمو وقت بدي اضمن أنو استدعي instance وحيد بكل مشروعي، ومن أي منطقة بالمشروع.

شو يعني هالشي؟
لنفترض أنو بمشروعي في لازم اعمل اتصال مع قاعدة بيانات (Database) وفي عندي كلاس DB، عن طريق هالكلاس بقدر اعمل الاتصال. طيب أنا كيف فيني اضمن أنو بأي مكان بالمشروع ما يعمل أكتر من اتصال واحد مو كل مرة بعمل ملاش جديد واتصال جديد؟
هالشي بقدر أعملو عن طريق كتابة كلاس الـ DB باستخدام نمط الـ Singleton، لأنو بهالحالة متل ما قلنا أنو رح أضمن وجود instance واحد من كلاس الـ DB رح يعمل اتصال واحد فقط.

الكود بحسابي عالـ Git:
https://github.com/h-fares/design-patterns/blob/main/Singleton/DBConnection.php

🔥🔥🔥🔥🔥 ENGLISH VERSION 🔥🔥🔥🔥🔥

Today, I'd like to discuss the Singleton design pattern and its benefits for software development in PHP.

So, what exactly is the Singleton Design Pattern? It's a creational design pattern that ensures only one instance of a class exists throughout the ex*****on of a program. This pattern allows for a global point of access to this instance, making it easily accessible from anywhere in your codebase.

This code is in my Git repo:
https://github.com/h-fares/design-patterns/blob/main/Singleton/DBConnection.php

14/02/2022

SETTER /GETTERS
#المانيا #دراسة #جامعة #بالعربي #معلوماتية #برمجة

Adresse

Am Bernhardsgraben 50
Saalfeld
07318

Benachrichtigungen

Lassen Sie sich von uns eine E-Mail senden und seien Sie der erste der Neuigkeiten und Aktionen von El-Hani الهـــاني erfährt. Ihre E-Mail-Adresse wird nicht für andere Zwecke verwendet und Sie können sich jederzeit abmelden.

Teilen