چهارشنبه, ۲۶ دی, ۱۴۰۳ / 15 January, 2025
مجله ویستا
گذری بردنیای MySQL
اکنون میخواهیم بهجای برشمردن مزایا، معایب یا ویژگیهای این بانک اطلاعاتی، کمی وارد جزئیات ساختار آن شویم و قسمتها و ابزارهای مختلف آن را بهطور مختصر بررسی کنیم تا وجوه تشابه و تمایز آن را نسبت به سایر بانکهای اطلاعاتی و بهویژه SQLServer مایکروسافت ببینیم.
● هدف از ایجاد MySQL
نسخههای اولیه MySQL را به هیچ عنوان نمیتوان با نسخههای جدید آن مقایسه نمود. نسخههای قدیمی بهدلیل ماهیت عمومی سیستمعاملی که برای آن درنظر گرفته شده بودند (یعنی یونیکس و لینوکسهای اولیه) دارای واسط کاربر چندان جالبی نبودند و تمام فرامین مربوط به طراحی و مدیریت بانک اطلاعاتی در آنها از طریق دستورات خط فرمان انجام میگرفت. اما بهتدریج و با پیدایش محیطهای گرافیکی توانمند و زیبا برای لینوکس،MySQL نیز همانند سایر نرمافزارهای اپنسورس تحت لینوکس مراحل تکامل و بهینه شدن هسته و ابزارهای جانبی خود را پیمود تا به جایی رسید که اکنون به عنوان یکی از سریعترین، کاراترین و مقرون به صرفهترین برنامههای بانک اطلاعاتی جهان شناخته میشود.
غیر از توانمندیهای مربوط به واسط کاربر و امکانات جانبی، در نسخههای جدید MySQL سعی شدهاست نقاط ضعف همیشگی این موتور بانک اطلاعاتی، یعنی نبود سه عنصر مهمِ دید (View)، روالهای ذخیره شده و تریگرها، تا حدود زیادی رفع شود و اکنون دیگر MySQL به دلیل نداشتن این سه عنصر مهم، در رقابت با سایر بانکهای اطلاعاتی مورد سرزنش و بیمهری برنامهنویسان و مدیران بانکهای اطلاعاتی قرار نمیگیرد.
بهطورکلی وقتی به تاریخچه و مراحل تکامل MySQL مینگریم، سه ویژگی آن، یعنی قابلیت اطمینان، کارایی مناسب و آسانی استفاده را از نکات مورد توجه سازندگان آن در تولید این اثر مییابیم. قابلیت اطمینان، از این جهت که یک بانک اطلاعاتی اپنسورس و با حمایت یک شبکه توانمند و در همهجا حاضری به نام MySQL Network در هرلحظه آماده ارائه خدمت به استفاده کنندگان آن و پشتیبانی از آنها است و به راحتی میتواند دربسیاری از کاربردهای تجاری جایگزینی مناسب برای همتایان گرانقیمت خود باشد.
کارایی مناسب، از این لحاظ که با ارائه نسخههای متعدد تحت سیستم عاملهای مختلف و تحت معماریهای سخت افزاری گوناگون قادر است تا هم در کاربردهای مبتنی برتعداد فرایندهای فراوان (OLTP) و هم در کاربردهای دارای پردازشها و محاسبات سنگین (OLAP) مورد استفاده قرار گیرد. آسانیِ استفاده هم از اینجهت است که کلیه مراحل استفاده از آن، از دستیابی به فایلهای مخصوص نصب که بهطور رایگان قابل دریافت است و هم از این بابت که مراحل نصب و پیکربندی که حداکثر در ده دقیقه در سیستمعاملهای مختلف صورت میگیرد. همچنین در زمان بهرهبرداری به شیوهای بسیار آسان و گویا، ابزارهای خود را در اختیار توسعهدهندگان و مدیران سیستم قرار میدهد.
● معماری MySQL
ویژگی اپنسورس بودن MySQL باعث شده است معماری داخلی آن، بهصورت گویا و واضح و در قالب ماجولهای اساسی یا جانبی آن برای کاربرانش شناخته شده باشد. شکل ۱ بهطور خلاصه ماجولهای مختلف موجود درMySQL را با نامگذاری براساس وظایفشان، نشان میدهد.
همانطور که مشاهده میکنید ساختار این بانک اطلاعاتی شامل ماجولهای مختلفی برای انجامدادن وظایف مختلف و استاندارد یک موتور پایگاه دادهای همه منظوره است. برخی از قسمتهای اصلی و شیوه عملکرد آنها در MySQL عبارتند از:
▪ مدیریت اتصال
کنترل و ایجاد محدودیت درتعداد اتصالات قابل انجام بین کلاینتها و سرور بانک اطلاعاتی یکی از ماجولها و وظایف اصلی MySQL است. درواقع موتور بانک اطلاعاتی با مدیریت خودکار و ایجاد اشتراک بین کلاینتها در استفاده بهینه از اتصالات موجود نقش مهمی را ایفا میکند. درواقع این ماجول سعی میکند با ایجاد فضای مشترک، از به وجود آمدن تعداد زیادی اتصالات بیکار و بلااستفاده به بانک اطلاعاتی جلوگیری کند و در استفاده کمتر از فضای حافظه و پردازش پردازنده موثر واقع شود.
▪ دستورات و عناصر اصلی
وظایف ماجولهای مستقر در این قسمت، ایجاد امکان ساخت جداول بانک اطلاعاتی ایندکسها، دیدها، روالهای ذخیره شده، توابع، تریگرها، و پشتیبانی از دستورات SQL ویژه ساخت این عناصر یا خواندن، درج، حذف و تغییر دادهها در آنان است.
▪ مدیریت حافظه
یکی از مهمترین کارهایی که یک موتور پایگاه دادهای باید انجام دهد، تخصیص و مدیریت حافظه مورد استفاده بانک اطلاعاتی و پردازشهای مربوط به آنها و همچنین فضای موردنیاز جهت عملیات بافرینگ ورودی و خروجی بهعلاوه عملیات caching برای افزایش سرعت خواندن اطلاعات است. این کار بهخوبی در MySQL انجام میگیرد. ضمن اینکه در زمان ایجاد و نگهداری یک بانکاطلاعاتی نیز پارامترهای مختلفی در این زمینه توسط مدیرسیستم و استفاده از ابزارهای مختص MySQL قابل تنظیم است.
▪ موتور ذخیرهسازی اطلاعات
MySQL دارای ابزارهای متعددی برای ذخیرهسازی اطلاعات به شیوههای گوناگون است. برایناساس و درزمان ایجاد یک پایگاه داده، MySQL پرسشهای خاصی درمورد انتخاب نوع کاربرد بانک اطلاعاتی و انتخاب موتور ذخیرهسازی مطرح میگردد.
در پرسش اول که اختصاص به نوع کاربرد دارد، مدیرسیستم میتواند از بین دو نوع پیش فرض یعنی یک پایگاه داده با تعداد زیادی فرایندهای همزمان (OLTP) یا یک پایگاه داده با تعداد زیادی دستورات ویژه خواندن و آنالیز اطلاعات (OLAP) یکی را انتخاب کند یا اقدام به تنظیم دستی نماید.
با این کار و طبق انتخاب وی، سیستم، تعداد اتصالات همزمان پایگاه دادهای را که در بحث <مدیریت اتصال> به آن اشاره کردیم تنظیم میکند. براین اساس اولویت به کاربرد OLPA داده میشود چون اصولاً کاربرد OLTP نیاز به استفاده زمانی کمتری از یک اتصال دارد و بدین سبب میتواند تعداد اتصال همزمان بیشتری را مدیریت نماید.
اما درمورد سؤال دوم همانطور که گفتیم، MySQL امکان انتخاب نوع ابزار و موتور ذخیرهسازی را به مدیرسیستم میدهد. به عنوان مثال موتور InnoDB بهطور پیشفرض برای کاربردهای OLTP و موتوری به نام MyISAM برای کاربردهای OLAP و نگهداری انبوه اطلاعات پرحجم مثل Data Warhousing یا وب سایتها مورد استفاده MySQL قرار میگیرد. در ضمن همانطور که در شکل ۱ نیز مشاهده میکنید، MySQL نیز همانند سایر بانکهای اطلاعاتی مشهور، علاوه بر دو موتور مختص به خودش که برشمردیم، راهحلهایی برای ذخیرهسازی اطلاعات بهصورت آرشیو (Archive)، تجمعی (Federated Servers)، توزیع شده یا خوشهای (Cluster) یا حتی بانکهای اطلاعاتی سریع حافظهای (In Memory) و چند نوع دیگر را دارد.
● ویژگیهای برتر
در MySQL معمولاً اکثر روشهای ساخت و بهرهبرداری از یک بانکاطلاعاتی به دو کاربرد OLTP و OLAP ختم میشود که موتور بانک اطلاعاتی برای پشتیبانی و کارایی بهینه از هردو کاربرد مذکور، به خوبی ساخته و پرداخته شده است. به عنوان نمونه، در کاربردهای OLTP، وجود سازوکارها و استانداردهای یک بانک اطلاعاتی برای تضمین صحت اطلاعات مثل پشتیبانی کامل از انواع فرایندها (Transaction) و حتی فرایندهای توزیع شده، روابط اطلاعاتی (کلید اولیه، کلیدهای خارجی) و وجود ایندکسهای منحصر بهفرد (UNIQE INDEX) را میتوان گواهی براین مسئله دانست. ضمن اینکه موتور ذخیرهسازی InnODB نیز به نوبه خود با مدیریت فضا و صفحات حاوی اطلاعات (Pages)درحال ایجاد نظم و ترتیب در اطلاعات و حذف فضاهای خالی برای افزایش سرعت جستجو است.
این موتور ذخیرهسازی همچنین قادر است با یک تصویر حایل از اطلاعات چندین جدول یک بانک اطلاعاتی، از تداخل عملیات خواندن با فرایندها (تغییر، درج، حذف) و بروز مشکلات مربوط به قفل شدن رکوردها (Blocking) جلوگیری نماید. اما درمورد کاربردهای OLAP، موتور MyISAM با فراهم نمودن یک فضای اطلاعاتی ترابایتی، محیط بسیار وسیعی را برای انباشت اطلاعات و دسترسی سریع به آنها در مواقع موردنظر را پدید آورده است.
تجربه نشان داده است که بسیاری از شرکتهای معتبر و سایتهای اینترنتی مشهور که با مشکل ذخیرهسازی و آنالیز انبوه اطلاعات مواجه بودهاند و سعی داشتند با استفاده از روشهای توسعه طولی (Scale UP) مثل استفاده از سرورهایی با حافظه و هارددیسکهای پرظرفیتتر و سریعتر یا پردازندههای قدرتمندتر، ظرفیت سیستم خود را بالا ببرند، موفق شدند با روی آوردن به MySQL و استفاده از موتور ذخیرهسازی MyISAM به نوعی دست به توسعه عرضی (Scale Out) بسیار مقرون به صرفهای بزنند و تا هشتاددرصد هزینههای مربوط به توسعه طولی یا همان ارتقای سختافزاری را کاهش دهند.
● ابزارهای مدیریتی
اپنسورس بودن MySQL باعث شدهاست بسیاری از شرکتها بتوانند برای هرچه آسانتر کردن و پیشرفتهتر نمودن ابزارها و محیطهای گرافیکی مبتنی بر MySQL وارد کار شوند و به سرعت کمبود واسط کاربرهای ویژه مدیریت درMySQL را جبران نمایند. یکی از معتبرترین واسطهای کاربرهای گرافیکی در زمینه مدیریت، برنامه Query Browser است که شرکتMySQL آنرا ساخته و رسمیترین برنامه مدیریت در MySQL است.
این برنامه نیز به صورت رایگان از سایت MySQL.Com قابل دانلود و نصب است. با استفاده از این برنامه قادر خواهید بود جداول، دیدها، توابع و هرچه که در یک بانک اطلاعاتی با دستورات SQL باید ساخته شود را طراحی و پیادهسازی نمایید. درهمین رده از برنامهها میتوان به ابزارهای دیگری چون ویزارد پیکربندی (Configuration Wizard) و یا ویزارد مخصوص ارتقا یا مهاجرت به MySQL یعنی Migration Wizard و بسیاری برنامههای دیگر برای برپایی سرورهای MySQL، عملیات بکآپگیری، کلاسترینگ و امثال آن، نیز اشاره نمود.
شایان ذکر است که برخی از سایر توزیعکنندگان MySQL نیز ابزارهای مدیریتی خاص خود را تهیه و ارائه نمودهاند که مشهورترین آنها محصول شرکت اروپایی SAP موسوم به MAXDB است که نسخهای براساس MySQL میباشد و ابزارهای مدیریتی متنوعی مثل DBManager یا SQL Studio را به همراه خود دارد.
منبع : شرکت نرمافزاری ایدهتک
ایران مسعود پزشکیان دولت چهاردهم پزشکیان مجلس شورای اسلامی محمدرضا عارف دولت مجلس کابینه دولت چهاردهم اسماعیل هنیه کابینه پزشکیان محمدجواد ظریف
پیاده روی اربعین تهران عراق پلیس تصادف هواشناسی شهرداری تهران سرقت بازنشستگان قتل آموزش و پرورش دستگیری
ایران خودرو خودرو وام قیمت طلا قیمت دلار قیمت خودرو بانک مرکزی برق بازار خودرو بورس بازار سرمایه قیمت سکه
میراث فرهنگی میدان آزادی سینما رهبر انقلاب بیتا فرهی وزارت فرهنگ و ارشاد اسلامی سینمای ایران تلویزیون کتاب تئاتر موسیقی
وزارت علوم تحقیقات و فناوری آزمون
رژیم صهیونیستی غزه روسیه حماس آمریکا فلسطین جنگ غزه اوکراین حزب الله لبنان دونالد ترامپ طوفان الاقصی ترکیه
پرسپولیس فوتبال ذوب آهن لیگ برتر استقلال لیگ برتر ایران المپیک المپیک 2024 پاریس رئال مادرید لیگ برتر فوتبال ایران مهدی تاج باشگاه پرسپولیس
هوش مصنوعی فناوری سامسونگ ایلان ماسک گوگل تلگرام گوشی ستار هاشمی مریخ روزنامه
فشار خون آلزایمر رژیم غذایی مغز دیابت چاقی افسردگی سلامت پوست