واضح آرشیو وب فارسی:پی سی سیتی: گذری بردنيای MySQL
ماهنامه شبکه - فروردين و ارديبهشت ۱۳۸۵ شماره 64
اشاره :
شايد تاكنون مقالات متعددي را درباره بانك اطلاعاتي MySQL در ماهنامه شبكه يا جاهاي ديگر ديده و خوانده باشيد. اكنون ميخواهيم بهجاي برشمردن مزايا، معايب يا ويژگيهاي اين بانك اطلاعاتي، كمي وارد جزئيات ساختار آن شويم و قسمتها و ابزارهاي مختلف آن را بهطور مختصر بررسي كنيم تا وجوه تشابه و تمايز آن را نسبت به ساير بانكهاي اطلاعاتي و بهويژه SQLServer مايكروسافت ببينيم.
هدف از ايجاد MySQL
نسخههاي اوليه MySQL را به هيچ عنوان نميتوان با نسخههاي جديد آن مقايسه نمود. نسخههاي قديمي بهدليل ماهيت عمومي سيستمعاملي كه براي آن درنظر گرفته شده بودند (يعني يونيكس و لينوكسهاي اوليه) داراي واسط كاربر چندان جالبي نبودند و تمام فرامين مربوط به طراحي و مديريت بانك اطلاعاتي در آنها از طريق دستورات خط فرمان انجام ميگرفت. اما بهتدريج و با پيدايش محيطهاي گرافيكي توانمند و زيبا براي لينوكس،MySQL نيز همانند ساير نرمافزارهاي اپنسورس تحت لينوكس مراحل تكامل و بهينه شدن هسته و ابزارهاي جانبي خود را پيمود تا به جايي رسيد كه اكنون به عنوان يكي از سريعترين، كاراترين و مقرون به صرفهترين برنامههاي بانك اطلاعاتي جهان شناخته ميشود.
غير از توانمنديهاي مربوط به واسط كاربر و امكانات جانبي، در نسخههاي جديد MySQL سعي شدهاست نقاط ضعف هميشگي اين موتور بانك اطلاعاتي، يعني نبود سه عنصر مهمِ ديد (View)، روالهاي ذخيره شده و تريگرها، تا حدود زيادي رفع شود و اكنون ديگر MySQL به دليل نداشتن اين سه عنصر مهم، در رقابت با ساير بانكهاي اطلاعاتي مورد سرزنش و بيمهري برنامهنويسان و مديران بانكهاي اطلاعاتي قرار نميگيرد.
بهطوركلي وقتي به تاريخچه و مراحل تكامل MySQL مينگريم، سه ويژگي آن، يعني قابليت اطمينان، كارايي مناسب و آساني استفاده را از نكات مورد توجه سازندگان آن در توليد اين اثر مييابيم. قابليت اطمينان، از اين جهت كه يك بانك اطلاعاتي اپنسورس و با حمايت يك شبكه توانمند و در همهجا حاضري به نام MySQL Network در هرلحظه آماده ارائه خدمت به استفاده كنندگان آن و پشتيباني از آنها است و به راحتي ميتواند دربسياري از كاربردهاي تجاري جايگزيني مناسب براي همتايان گرانقيمت خود باشد.
كارايي مناسب، از اين لحاظ كه با ارائه نسخههاي متعدد تحت سيستم عاملهاي مختلف و تحت معماريهاي سخت افزاري گوناگون قادر است تا هم در كاربردهاي مبتني برتعداد فرايندهاي فراوان (OLTP) و هم در كاربردهاي داراي پردازشها و محاسبات سنگين (OLAP) مورد استفاده قرار گيرد. آسانيِ استفاده هم از اينجهت است كه كليه مراحل استفاده از آن، از دستيابي به فايلهاي مخصوص نصب كه بهطور رايگان قابل دريافت است و هم از اين بابت كه مراحل نصب و پيكربندي كه حداكثر در ده دقيقه در سيستمعاملهاي مختلف صورت ميگيرد. همچنين در زمان بهرهبرداري به شيوهاي بسيار آسان و گويا، ابزارهاي خود را در اختيار توسعهدهندگان و مديران سيستم قرار ميدهد.
معماري MySQL
ويژگي اپنسورس بودن MySQL باعث شده است معماري داخلي آن، بهصورت گويا و واضح و در قالب ماجولهاي اساسي يا جانبي آن براي كاربرانش شناخته شده باشد. شكل 1 بهطور خلاصه ماجولهاي مختلف موجود درMySQL را با نامگذاري براساس وظايفشان، نشان ميدهد.
همانطور كه مشاهده ميكنيد ساختار اين بانك اطلاعاتي شامل ماجولهاي مختلفي براي انجامدادن وظايف مختلف و استاندارد يك موتور پايگاه دادهاي همه منظوره است. برخي از قسمتهاي اصلي و شيوه عملكرد آنها در MySQL عبارتند از:
شكل 1
مديريت اتصال
كنترل و ايجاد محدوديت درتعداد اتصالات قابل انجام بين كلاينتها و سرور بانك اطلاعاتي يكي از ماجولها و وظايف اصلي MySQL است. درواقع موتور بانك اطلاعاتي با مديريت خودكار و ايجاد اشتراك بين كلاينتها در استفاده بهينه از اتصالات موجود نقش مهمي را ايفا ميكند. درواقع اين ماجول سعي ميكند با ايجاد فضاي مشترك، از به وجود آمدن تعداد زيادي اتصالات بيكار و بلااستفاده به بانك اطلاعاتي جلوگيري كند و در استفاده كمتر از فضاي حافظه و پردازش پردازنده موثر واقع شود.
دستورات و عناصر اصلي
وظايف ماجولهاي مستقر در اين قسمت، ايجاد امكان ساخت جداول بانك اطلاعاتي ايندكسها، ديدها، روالهاي ذخيره شده، توابع، تريگرها، و پشتيباني از دستورات SQL ويژه ساخت اين عناصر يا خواندن، درج، حذف و تغيير دادهها در آنان است.
مديريت حافظه
يكي از مهمترين كارهايي كه يك موتور پايگاه دادهاي بايد انجام دهد، تخصيص و مديريت حافظه مورد استفاده بانك اطلاعاتي و پردازشهاي مربوط به آنها و همچنين فضاي موردنياز جهت عمليات بافرينگ ورودي و خروجي بهعلاوه عمليات caching براي افزايش سرعت خواندن اطلاعات است. اين كار بهخوبي در MySQL انجام ميگيرد. ضمن اينكه در زمان ايجاد و نگهداري يك بانكاطلاعاتي نيز پارامترهاي مختلفي در اين زمينه توسط مديرسيستم و استفاده از ابزارهاي مختص MySQL قابل تنظيم است.
شكل 2
موتور ذخيرهسازي اطلاعات
MySQL داراي ابزارهاي متعددي براي ذخيرهسازي اطلاعات به شيوههاي گوناگون است. برايناساس و درزمان ايجاد يك پايگاه داده، MySQL پرسشهاي خاصي درمورد انتخاب نوع كاربرد بانك اطلاعاتي و انتخاب موتور ذخيرهسازي مطرح ميگردد.
در پرسش اول كه اختصاص به نوع كاربرد دارد، مديرسيستم ميتواند از بين دو نوع پيش فرض يعني يك پايگاه داده با تعداد زيادي فرايندهاي همزمان (OLTP) يا يك پايگاه داده با تعداد زيادي دستورات ويژه خواندن و آناليز اطلاعات (OLAP) يكي را انتخاب كند يا اقدام به تنظيم دستي نمايد.
با اين كار و طبق انتخاب وي، سيستم، تعداد اتصالات همزمان پايگاه دادهاي را كه در بحث <مديريت اتصال> به آن اشاره كرديم تنظيم ميكند. براين اساس اولويت به كاربرد OLPA داده ميشود چون اصولاً كاربرد OLTP نياز به استفاده زماني كمتري از يك اتصال دارد و بدين سبب ميتواند تعداد اتصال همزمان بيشتري را مديريت نمايد. (شكل 2)
اما درمورد سؤال دوم همانطور كه گفتيم، MySQL امكان انتخاب نوع ابزار و موتور ذخيرهسازي را به مديرسيستم ميدهد. به عنوان مثال موتور InnoDB بهطور پيشفرض براي كاربردهاي OLTP و موتوري به نام MyISAM براي كاربردهاي OLAP و نگهداري انبوه اطلاعات پرحجم مثل Data Warhousing يا وب سايتها مورد استفاده MySQL قرار ميگيرد. در ضمن همانطور كه در شكل 1 نيز مشاهده ميكنيد، 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 را به همراه خود دارد. در شمارههاي آينده سعي ميكنيم به محيط MySQL و ابزارهاي كار با آن، بيشتر بپردازيم.
به نقل از ماهنامه شبكه
این صفحه را در گوگل محبوب کنید
[ارسال شده از: پی سی سیتی]
[تعداد بازديد از اين مطلب: 430]