رویه های ذخیره شده و جنگو: مسابقه ای ساخته شده در عملکرد بهشت

آیا تا به حال متوجه شده اید که به چرخ چرخان مرگ در وب سایت خود خیره شده اید و از خود می پرسید که چه اشتباهی رخ داده است؟ احتمالاً با خود فکر کرده اید، “قسم می خورم، این چیزی که برای اولین بار آن را ساختم برق آسا بود!” اما همانطور که پایگاه داده شما رشد می کند و برنامه شما پیچیده تر می شود، آن زمان های بارگذاری سریع مانند یک خاطره دور به نظر می رسد.
حقیقت این است که وقتی با دادههای زیادی سر و کار دارید، پرسوجو درباره آن دادهها میتواند به یک جانور کند و سخت تبدیل شود که تمام منابع سرور شما را میکشد. اما نترسید، توسعه دهنده عزیز – راه حلی وجود دارد که می تواند به شما کمک کند آن جانور را رام کنید.
وارد رویه های ذخیره شده. این تکه های کوچک مفید از کد از پیش کامپایل شده را می توان مستقیماً بر روی سرور پایگاه داده اجرا کرد، که به معنای انتقال داده کمتر و عملکرد سریعتر برای برنامه شما است. در این پست وبلاگ، رویه های ذخیره شده را بررسی خواهیم کرد و چگونه رویه های ذخیره شده می توانند به شما در بهینه سازی عملکرد برنامه خود کمک کنند. پس دست و پنجه نرم کنید، یک فنجان قهوه بگیرید و بیایید بهینه سازی کنیم!
رویه های ذخیره شده چیست؟
رویههای ذخیرهشده، برنامهها یا روتینهای از پیش نوشته شده و از پیش کامپایلشدهای هستند که در سرور پایگاه داده ذخیره میشوند. آنها برای اجرای مجموعه ای از دستورالعمل ها یا عبارات از پیش تعریف شده، معمولاً در یک زبان برنامه نویسی رویه ای مانند SQL، در یک سیستم مدیریت پایگاه داده استفاده می شوند.
رویه های ذخیره شده معمولاً برای کپسوله کردن عملیات پایگاه داده پیچیده یا پرکاربرد مانند درج، به روز رسانی یا حذف رکوردها استفاده می شوند و می توان آنها را از داخل برنامه ها یا اسکریپت های دیگر فراخوانی کرد. این می تواند فرآیند توسعه را ساده کرده و کارایی و عملکرد عملیات پایگاه داده را بهبود بخشد.
رویههای ذخیرهشده همچنین میتوانند برای اجرای قوانین تجاری، ارائه کنترلهای امنیتی و بهبود ثبات و یکپارچگی دادهها مورد استفاده قرار گیرند. آنها اغلب در برنامه های سطح سازمانی استفاده می شوند که به سطوح بالایی از عملکرد، قابلیت اطمینان و مقیاس پذیری نیاز دارند.
بسیار خوب، اکنون که به این موضوع پرداختیم که رویه های ذخیره شده چیست و چرا می توانند بسیار مفید باشند، بیایید نحوه استفاده از آنها در جنگو را بررسی کنیم.
استفاده از رویه های ذخیره شده در جنگو
برای شروع با استفاده از رویه های ذخیره شده در جنگو، درک مفهوم مکان نما ضروری است.
مکان نما یک شی پایگاه داده است که به شما امکان می دهد ردیف ها را از مجموعه نتایجی که توسط یک پرس و جو پایگاه داده بازگردانده شده است واکشی و دستکاری کنید. در جنگو می توانید از cursor()
روش از connection
شی برای ایجاد یک شی مکان نما که می توانید از آن برای اجرای پرس و جوهای SQL به طور مستقیم در پایگاه داده استفاده کنید.
هنگامی که یک رویه ذخیره شده را با استفاده از مکان نما در جنگو اجرا می کنید، از آن استفاده می کنید callproc()
متد برای فراخوانی رویه ذخیره شده و ارسال هر آرگومان مورد نیاز. را fetchall()
سپس از روش برای بازیابی نتایج رویه ذخیره شده به عنوان لیستی از تاپل ها استفاده می شود.
حال، بیایید فرض کنیم که یک جدول کاربران داریم که شامل سه ردیف با داده های زیر است:
| name | email | age |
|---------|-----------------------|-----|
| Alice | alice@example.com | 25 |
| Bob | bob@example.com | 30 |
| Charlie | charlie@example.com | 35 |
حالا بیایید یک رویه ذخیره شده بنویسیم get_users
که تمام نام های کاربری، ایمیل ها و سن ها را از جدول برمی گرداند.
CREATE PROCEDURE get_users()
BEGIN
SELECT name, email, age FROM users;
END;
حال بیایید ببینیم چگونه میتوانیم این SP را با استفاده از مکاننما در جنگو اجرا کنیم و نتایج را بهعنوان فهرستی از تاپلها بازیابی کنیم. در اینجا نحوه انجام این کار آمده است:
from django.db import connection
with connection.cursor() as cursor:
cursor.callproc('get_users')
results = cursor.fetchall()
در این مثال ابتدا یک شی مکان نما با استفاده از شی اتصال جنگو ایجاد می کنیم. سپس رویه ذخیره شده get_users را با استفاده از متد callproc() روی شی مکان نما فراخوانی می کنیم. در نهایت از متد fetchall() برای بازیابی نتایج رویه ذخیره شده استفاده می کنیم.
متد fetchall() لیست تاپل های زیر را برمی گرداند:
[ ('Alice', 'alice@example.com', 25), ('Bob', 'bob@example.com', 30), ('Charlie', 'charlie@example.com', 35)]
هر تاپل در لیست مربوط به یک ردیف در مجموعه نتایجی است که توسط رویه ذخیره شده بازگردانده شده است. مقادیر در هر تاپل به ترتیبی که با رویه ذخیره شده برگردانده شده اند، با ستون های مجموعه نتیجه مطابقت دارد. در این مورد، رویه ذخیره شده سه ستون (نام، ایمیل و سن) را برمی گرداند، بنابراین هر تاپل در لیست شامل سه مقدار است.
نتیجه
رویه های ذخیره شده می تواند ابزار قدرتمندی در بهینه سازی عملیات پایگاه داده شما و بهبود عملکرد برنامه شما باشد. آنها به شما امکان می دهند دستورالعمل ها یا عبارات از پیش تعریف شده را مستقیماً روی سرور پایگاه داده اجرا کنید که می تواند انتقال داده ها را کاهش داده و کارایی را بهبود بخشد.
با استفاده از رویه های ذخیره شده در برنامه جنگو خود، می توانید فرآیند توسعه را ساده کنید، ثبات و یکپارچگی داده ها را بهبود بخشید و به عملکرد و مقیاس پذیری بهتری دست یابید.
ممنون که خواندید! اگر سوالی یا بازخوردی در مورد این مقاله دارید، لطفاً در نظرات خود دریغ نکنید. من همیشه به دنبال پیشرفت هستم و دوست دارم از شما بشنوم.
همچنین، اگر از این محتوا لذت بردید و میخواهید در پستهای آینده بهروز باشید، در لینکدین با من در ارتباط باشید یا نمایه Github من را بررسی کنید. من نکات و ترفندهای بیشتری را در مورد جنگو و سایر فن آوری ها به اشتراک خواهم گذاشت، پس از دست ندهید!