PDA

View Full Version : مقاله: مزایای استفاده از Stored Procedure در MySql



Keramatifar
یک شنبه 28 آذر 1389, 18:41 عصر
بسیاری از برنامه نویسان ترجیح می دهند به روش های قدیمی برنامه های خود را توسعه دهند و تمایلی به استفاده از متدهای جدید، پیاده سازی اصول مهندسی نرم افزار، برنامه نویسی شی گرا و ... ندارند و به همین دلیل در توسعه نرم افزار در آینده به مشکلات زیادی برخورد می کنند. یکی از متدهای برنامه نویسی چند لایه جدا کردن لایه دیتا (DataLayer) از کدهای php است و لازمه پیاده سازی آن استفاده از StoredProcedure است. در این مقاله برخی از مهمترین مزایای استفاده از توابع سمت دیتابیس را بررسی می کنیم



با استفاده از SP می توانیم به میزان قابل ملاحضه ای Performance و بازدهی Query ها را بیشتر کنیم، با اولین باری که یک Stored Procedure اجرا می شود، MySql یک Execution Plan (نقشه ی اجرایی) برای آن ایجاد می کند و در اجراهای بعدی با استفاده از همان EP اقدام به اجرای SP می نماید و در نتیجه بازدهی و سرعت Query بالاتر می رود.
استفاده از SP علاوه بر اینکه در نگهداری و ارائه ی داده های دیتابیس به ما کمک می کند، لازمه برنامه نویسی چند لایه (Multi-Tier Programming) نیز محسوب می شود. Stored Procuder های دیتابیس لایه دیتا (Data Layer) در برنامه نویسی سه لایه (three-tier programming) می باشد.
درصد امنیت داده ها در کار با دیتابیس بیشتر می شود، زیرا MySql این امکان را دارد تا برای هر SP تنظمیات امنیتی (Security Setting) جداگانه در نظر بگیریم.
کوئری های نوشته شده در php از نظر امنیتی ضعیف بوده و سایت را در برابر حملات موسوم به SQL Injection Attack آسیب پذیر می کنند.
استفاده از SP و جدا کردن SQL Logic از کد php باعث می شود تا مدیریت کدها راحت تر باشد، قطعا فراخوانی یک StoredProcedure بسیار راحتر و منطقی تر از ایجاد کوئری با چسباندن چندین String بهم می باشد.

منبع:
http://keramatifar.ir/ShowTopic.php?id=%2049