ماي اسكيوال تدمج جافا
#1
السلام عليكم ورحمة الله


صار بالامكان الان ان تستخدم كود جافا في محرك قواعد بيانات ماي اسكيوال

كود :
mysql> CREATE FUNCTION add_nos(arg1 INT, arg2 INT)     ->  RETURNS INT LANGUAGE JAVASCRIPT AS     ->  $$     $>    return arg1 + arg2     $>  $$     ->  ; Query OK, 0 rows affected (0.01 sec) mysql> SELECT add_nos(12,52); +----------------+ | add_nos(12,52) | +----------------+ |            64 | +----------------+ 1 row in set (0.00 sec)

يمكن مراجعة الرابط لمزيد من المعلومات

MySQL Enterprise Stored Programs

JavaScript Stored Programs
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
[-] كل من 3 users say قال شكرا ل Delphi4Us على المشاركة المفيدة
  • h-farid, أبو معاذ, الفجر الابيض
الرد
#2
تنفع في الامور المعقدة التي لا يمكن فعلها احيانا بالاستعلام العادي
مثال عملي — استخراج بريد إلكتروني من نص:  

كود :
CREATE FUNCTION extract_email(text TEXT) RETURNS TEXT LANGUAGE JAVASCRIPT AS $$   const match = text.match(/[\w.-]+@[\w.-]+\.\w+/);   return match ? match[0] : null; $$;
تقليل نقل البيانات بين التطبيق وقاعدة البيانات فعندما تواجهك مشكلة لا تستطيع ان تحلها باستعلام تجلب البيانات وتعالجها في جهاز العميل وتفلترها
وهنا يصبح نقل البيانات كبير ولكن ان تفلترها على السيرفر سوف تختصر كمية كبيرة من البيانات

ملاحظات مهمة
  • تحتاج إلى تثبيت MLE Component حتى تعمل هذه الميزة.
  • الأداء قد يتأثر: تشغيل JavaScript داخل المحرك أبطأ من SQL الأصلي، لكنه يوفر مرونة هائلة.
  • الأفضل استخدامه في الحالات التي يصعب أو يستحيل تنفيذها بـ SQL، وليس في العمليات البسيطة مثل الجمع والطرح.

يمكن استدعاء دوال JavaScript في أي مكان يُسمح فيه بالدوال: WHERE, HAVING, ORDER BY, JOIN, وحتى داخل Triggers و Events.

هذا يعني أنك تستطيع مثلاً كتابة Trigger فيه منطق JavaScript لمعالجة البيانات قبل إدخالها.

رغم أن MySQL تدعم JSON، إلا أن التعامل مع المصفوفات المعقدة والعمليات مثل map, filter, و reduce كان كابوساً في SQL.

سابقاً: كنت تحتاج لاستعلامات JSON_EXTRACT طويلة ومعقدة.

الآن: يمكنك تمرير حقل JSON لدالة JavaScript ومعالجته ككائن (Object) طبيعي وإعادة النتيجة.

استخدام مكتبات JavaScript الخارجية (NPM)
هذه هي القوة الضاربة؛ محرك GraalVM يسمح (نظرياً وفي بيئات محددة) باستيراد وحدات قد لا تتوفر في SQL:

التحقق من الصيغ: مثل التأكد من صحة رقم بطاقة ائتمان أو رقم هاتف دولي باستخدام مكتبات جاهزة.

التنسيق: تحويل التاريخ من صيغ غريبة أو تنسيق النصوص (Markdown to HTML) مباشرة عند الاستعلام.

العمليات الحسابية المتسلسلة (Stateful Logic)
لغة SQL تعتمد على "المجموعات" (Sets)، لكن الجافا سكريبت تتفوق في "الخوارزميات" (Algorithms).

مثال: إذا كنت تريد حساب "المسار الأقصر" بين نقطتين أو تنفيذ خوارزمية هندسية معقدة، كتابتها بلغة JavaScript أسهل بـ 100 مرة من محاولة محاكاتها بـ SQL Stored Procedures العقيمة.

متى تستخدمها فعلياً؟
تخيل أنك تبني نظام تجارة إلكترونية، وتريد حساب "الخصم الديناميكي" بناءً على سلة المشتريات: بدل أن تجلب كل البيانات لتطبيقك (Backend) ثم تحسب الخصم، يمكنك القيام بذلك داخل قاعدة البيانات باستخدام دالة JS بسيطة، والنتيجة تعود للمستخدم فوراً في جملة SELECT.
إذا رأيت منتجاً مجانياً فأعلم بأنك أنت السّلعة
[-] كل من 1 user says قال شكرا ل الفجر الابيض على المشاركة المفيدة
  • أبو معاذ
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم