اکنون می خواهیم به جای برشمردن مزایا، معایب یا ویژگی های این بانک اطلاعاتی، کمی وارد جزئیات ساختار آن شویم و قسمت ها و ابزارهای مختلف آن را به طور مختصر بررسی کنیم ت

ا وجوه تشابه و تمایز آن را نسبت به سایر بانک های اطلاعاتی و به ویژه 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) یکی را انتخاب کند یا اقدام به تنظیم دستی نماید.

با این کار و طبق انتخاب وی، سیستم، تعداد اتصالات همزمان پایگاه داده ای را که در بحث