الميزات التي أريدها في PostgreSQL

لقد قضيت نصيبي العادل من وقتي مع PostgreSQL. إنها لا تفتقر إلى الميزات وأعتقد أن مجموعة ميزاتها الواسعة كانت مساهماً رئيسياً في شعبيتها المتزايدة في 2010. مع انقضاء وقتي مع قاعدة البيانات ، توصلت إلى عدد قليل من الميزات التي أتمنى أن تمتلكها قاعدة البيانات. بعضها أفكار مستعارة من أنظمة أخرى ، والبعض الآخر اختراعاتي الخاصة. المأساة الحقيقية هي أنه ليس لدي الوقت لتنفيذ الإصلاحات بنفسي. - أنا - أنا - الدمية

تأتي هذه الفكرة من MySQL التي يدعم عميل CLI القياسي الخاص بها علامة –i-am-a-dummy. عند التمكين ، تحدد MySQL أي UPDATE أو DELETE لا تحتوي على جملة WHERE وتفشل فيها بخطأ. بعبارة أخرى ، إذا كنت تنوي الحذف من table1 WHERE pk = 10 ، فابدأ في كتابته في الموجه الخاص بك وحصلت فقط على DELETE FROM table1 قبل تشغيل الاستعلام عن طريق الخطأ ، فإن الاستعلام يولد خطأً بدلاً من حذف كل صف. تستخدم الإصدارات الأكثر حداثة من MySQL أيضًا العلامة لمنع الاستعلامات التي تُرجع أحجام نتائج كبيرة بشكل مفرط ، أو تتطلب WHERE للإشارة إلى عمود مفتاح ، أو السماح بـ LIMIT بدلاً من WHERE. وضع اختبار الوحدة (فرز عشوائي للنتائج)

يُعرف أن ترتيب نتائج الاستعلام غير محدد إلا إذا قمت بتعيينه باستخدام ORDER BY. المرونة مفيدة: في بعض الأحيان تحتاج إلى ترتيب مستقر لأي كود يستهلك نتائج الاستعلام وأحيانًا لا تحتاج إليه. لكن هناك سرًا ثالثًا: يعتمد الرمز بطريق الخطأ على ترتيب النتائج بالصدفة. للمساعدة في التخلص منها ، سيكون من الجيد أن تقوم PostgreSQL بتبديل ترتيب نتائج الاستعلام عن قصد إذا لم يحدد استعلام معين ORDER BY. أتخيل هذا كحقل تكوين وقت التشغيل لقاعدة البيانات التي ستقوم بتمكينها عند تشغيل الاختبارات الآلية أو في بيئة الاختبار. البديل ، المتمثل في طي كل استعلام في التطبيق الخاص بك في استعلام فرعي يقوم بفرز النتائج بشكل عشوائي ، هو أمر قبيح وغاز ، على الرغم من أن بعض ORMs قد تكون قادرة على تنفيذ الوظائف على مستواها. تقدم الاستعلام في psql

هذه ميزة أخرى لـ MariaDB. من الممكن في كلا قاعدتي البيانات الاستعلام عن قاعدة البيانات للحصول على معلومات حول تقدم عدة أنواع من الاستعلامات ، ولكن استعلامات ALTER TABLE و CREATE INDEX و DROP INDEX و LOAD DATA INFILE تقوم أيضًا بإخطار عميل CLI تلقائيًا بتقدمها. يستخدمه CLI لرسم شريط حالة متحرك لطيف به رسائل إعلامية. تسمح لك PostgreSQL بالاستعلام عن كتالوج النظام لمعرفة مدى تقدم عدة أنواع من الاستعلامات ، ولكن ليس لديها وظيفة تحديث مباشر في عميل psql.

التحقق من صحة الانضمام مثل الباندا

أنا خبير حقيقي في قواعد البيانات ولم أفسد صلة من قبل. ولكن هناك الكثير من المبتدئين وسيكون من الجيد توسيع لغة SQL لدعم ميزات التحقق من الصحة مثل Pandas لوظيفة الانضمام الخاصة بها. أثناء عملية الربط ، تحدد العلاقة التي تتوقع أن يكون لها مفاتيح فريدة وأي منها يحتوي على تكرارات محتملة وقد تنبهك PostgreSQL أو تصيب بالذعر عند تشغيل هذا التأكيد. بعض التركيبات الافتراضية: حدد x ، y من t1 انضم إلى t2 باستخدام (مفتاح) تحقق 1: m

مما يسمح لـ PostgreSQL بالتحقق من أن t1.key لا يحتوي على صفوف وأخطاء مكررة إذا واجه أيًا منها. هذا مكان آخر حيث يكون من المفيد أن يكون لديك خيار وقت التشغيل لتعطيل عمليات التحقق من التفرد المكلفة.

وسيطة "اللواحق" في Pandas ، التي تعيد تلقائيًا تسمية الأعمدة المتداخلة في الإخراج ، و "المؤشر" ، الذي يُصدر عمودًا جديدًا يحدد الجدول الأيسر أو الأيمن أو كليهما كمصدر لسطر ، هي أيضًا أفكار رائعة يبدو مفيدًا حقًا للمبتدئين في العلاقات الذين يحاولون استكشاف أخطاء صلاتهم وإصلاحها. تحظى Pandas بشعبية لا تصدق ، وقد تم تدريسها للكثير من المطورين عديمي الخبرة ، وأعتقد أن ميزات مثل هذه تم اكتسابها بدم المبتدئين. أظن أن مستخدمي ومطوري PostgreSQL ليسوا معرضين للمبتدئين ومشاكلهم المعتادة ، ولكن لا يوجد سبب يمنعهم من التعلم من تجربة Pandas المكتسبة بشق الأنفس ودمج بعض الأفكار الجيدة.

تحديث: قدم مستخدم richbell على Hacker News لغة SQL سهلة الاستخدام لـ DuckDB ، وهي مجموعة شاملة من امتدادات SQL. أتفق مع كل هذه الأفكار ، باستثناء إصلاح الفاصلة اللاحقة: انضم إلى الجانب المظلم واستخدم فواصل لاحقة! دعم JIT لـ CREATE INDEX

اليوم ، يرتبط دعم JIT في PostgreSQL ارتباطًا وثيقًا بتخطيط الاستعلام وتنفيذه. يعتمد على الطبيعة الموجهة للكائنات لخطة التنفيذ ويصدر LLVM IR لكل عقدة خطة أثناء عبوره ...

لقد قضيت نصيبي العادل من وقتي مع PostgreSQL. إنها لا تفتقر إلى الميزات وأعتقد أن مجموعة ميزاتها الواسعة كانت مساهماً رئيسياً في شعبيتها المتزايدة في 2010. مع انقضاء وقتي مع قاعدة البيانات ، توصلت إلى عدد قليل من الميزات التي أتمنى أن تمتلكها قاعدة البيانات. بعضها أفكار مستعارة من أنظمة أخرى ، والبعض الآخر اختراعاتي الخاصة. المأساة الحقيقية هي أنه ليس لدي الوقت لتنفيذ الإصلاحات بنفسي. - أنا - أنا - الدمية

تأتي هذه الفكرة من MySQL التي يدعم عميل CLI القياسي الخاص بها علامة –i-am-a-dummy. عند التمكين ، تحدد MySQL أي UPDATE أو DELETE لا تحتوي على جملة WHERE وتفشل فيها بخطأ. بعبارة أخرى ، إذا كنت تنوي الحذف من table1 WHERE pk = 10 ، فابدأ في كتابته في الموجه الخاص بك وحصلت فقط على DELETE FROM table1 قبل تشغيل الاستعلام عن طريق الخطأ ، فإن الاستعلام يولد خطأً بدلاً من حذف كل صف. تستخدم الإصدارات الأكثر حداثة من MySQL أيضًا العلامة لمنع الاستعلامات التي تُرجع أحجام نتائج كبيرة بشكل مفرط ، أو تتطلب WHERE للإشارة إلى عمود مفتاح ، أو السماح بـ LIMIT بدلاً من WHERE. وضع اختبار الوحدة (فرز عشوائي للنتائج)

يُعرف أن ترتيب نتائج الاستعلام غير محدد إلا إذا قمت بتعيينه باستخدام ORDER BY. المرونة مفيدة: في بعض الأحيان تحتاج إلى ترتيب مستقر لأي كود يستهلك نتائج الاستعلام وأحيانًا لا تحتاج إليه. لكن هناك سرًا ثالثًا: يعتمد الرمز بطريق الخطأ على ترتيب النتائج بالصدفة. للمساعدة في التخلص منها ، سيكون من الجيد أن تقوم PostgreSQL بتبديل ترتيب نتائج الاستعلام عن قصد إذا لم يحدد استعلام معين ORDER BY. أتخيل هذا كحقل تكوين وقت التشغيل لقاعدة البيانات التي ستقوم بتمكينها عند تشغيل الاختبارات الآلية أو في بيئة الاختبار. البديل ، المتمثل في طي كل استعلام في التطبيق الخاص بك في استعلام فرعي يقوم بفرز النتائج بشكل عشوائي ، هو أمر قبيح وغاز ، على الرغم من أن بعض ORMs قد تكون قادرة على تنفيذ الوظائف على مستواها. تقدم الاستعلام في psql

هذه ميزة أخرى لـ MariaDB. من الممكن في كلا قاعدتي البيانات الاستعلام عن قاعدة البيانات للحصول على معلومات حول تقدم عدة أنواع من الاستعلامات ، ولكن استعلامات ALTER TABLE و CREATE INDEX و DROP INDEX و LOAD DATA INFILE تقوم أيضًا بإخطار عميل CLI تلقائيًا بتقدمها. يستخدمه CLI لرسم شريط حالة متحرك لطيف به رسائل إعلامية. تسمح لك PostgreSQL بالاستعلام عن كتالوج النظام لمعرفة مدى تقدم عدة أنواع من الاستعلامات ، ولكن ليس لديها وظيفة تحديث مباشر في عميل psql.

التحقق من صحة الانضمام مثل الباندا

أنا خبير حقيقي في قواعد البيانات ولم أفسد صلة من قبل. ولكن هناك الكثير من المبتدئين وسيكون من الجيد توسيع لغة SQL لدعم ميزات التحقق من الصحة مثل Pandas لوظيفة الانضمام الخاصة بها. أثناء عملية الربط ، تحدد العلاقة التي تتوقع أن يكون لها مفاتيح فريدة وأي منها يحتوي على تكرارات محتملة وقد تنبهك PostgreSQL أو تصيب بالذعر عند تشغيل هذا التأكيد. بعض التركيبات الافتراضية: حدد x ، y من t1 انضم إلى t2 باستخدام (مفتاح) تحقق 1: m

مما يسمح لـ PostgreSQL بالتحقق من أن t1.key لا يحتوي على صفوف وأخطاء مكررة إذا واجه أيًا منها. هذا مكان آخر حيث يكون من المفيد أن يكون لديك خيار وقت التشغيل لتعطيل عمليات التحقق من التفرد المكلفة.

وسيطة "اللواحق" في Pandas ، التي تعيد تلقائيًا تسمية الأعمدة المتداخلة في الإخراج ، و "المؤشر" ، الذي يُصدر عمودًا جديدًا يحدد الجدول الأيسر أو الأيمن أو كليهما كمصدر لسطر ، هي أيضًا أفكار رائعة يبدو مفيدًا حقًا للمبتدئين في العلاقات الذين يحاولون استكشاف أخطاء صلاتهم وإصلاحها. تحظى Pandas بشعبية لا تصدق ، وقد تم تدريسها للكثير من المطورين عديمي الخبرة ، وأعتقد أن ميزات مثل هذه تم اكتسابها بدم المبتدئين. أظن أن مستخدمي ومطوري PostgreSQL ليسوا معرضين للمبتدئين ومشاكلهم المعتادة ، ولكن لا يوجد سبب يمنعهم من التعلم من تجربة Pandas المكتسبة بشق الأنفس ودمج بعض الأفكار الجيدة.

تحديث: قدم مستخدم richbell على Hacker News لغة SQL سهلة الاستخدام لـ DuckDB ، وهي مجموعة شاملة من امتدادات SQL. أتفق مع كل هذه الأفكار ، باستثناء إصلاح الفاصلة اللاحقة: انضم إلى الجانب المظلم واستخدم فواصل لاحقة! دعم JIT لـ CREATE INDEX

اليوم ، يرتبط دعم JIT في PostgreSQL ارتباطًا وثيقًا بتخطيط الاستعلام وتنفيذه. يعتمد على الطبيعة الموجهة للكائنات لخطة التنفيذ ويصدر LLVM IR لكل عقدة خطة أثناء عبوره ...

What's Your Reaction?

like

dislike

love

funny

angry

sad

wow