MySql چیست؟
#1
Note 
[ATTACH=CONFIG]38[/ATTACH]

شايد تاكنون مقالات متعددي را درباره بانك اطلاعاتي MySQL در ماهنامه شبكه يا جاهاي ديگر ديده و خوانده باشيد. اكنون مي خواهيم به جاي برشمردن مزايا، معايب يا ويژگي هاي اين بانك اطلاعاتي، كمي وارد جزئيات ساختار آن شويم و قسمت ها و ابزارهاي مختلف آن را به طور مختصر بررسي كنيم تا وجوه تشابه و تمايز آن را نسبت به ساير بانك هاي اطلاعاتي و به ويژه SQLServer مايكروسافت ببينيم.

هدف از ايجاد MySQL
نسخه هاي اوليه MySQL را به هيچ عنوان نمي توان با نسخه هاي جديد آن مقايسه نمود. نسخه هاي قديمي به دليل ماهيت عمومي سيستم عاملي كه براي آن درنظر گرفته شده بودند (يعني يونيكس و لينوكس هاي اوليه) داراي واسط كاربر چندان جالبي نبودند و تمام فرامين مربوط به طراحي و مديريت بانك اطلاعاتي در آن ها از طريق دستورات خط فرمان انجام مي گرفت. اما به تدريج و با پيدايش محيط هاي گرافيكي توانمند و زيبا براي لينوكس، MySQL نيز همانند ساير نرم افزار هاي اپن سورس تحت لينوكس مراحل تكامل و بهينه شدن هسته و ابزارهاي جانبي خود را پيمود تا به جايي رسيد كه اكنون به عنوان يكي از سريع ترين، كاراترين و مقرون به صرفه ترين برنامه هاي بانك اطلاعاتي جهان شناخته مي شود.

غير از توانمندي هاي مربوط به واسط كاربر و امكانات جانبي، در نسخه هاي جديد MySQL سعي شده است نقاط ضعف هميشگي اين موتور بانك اطلاعاتي، يعني نبود سه عنصر مهمِ ديد (View)، روال هاي ذخيره شده و تريگرها، تا حدود زيادي رفع شود و اكنون ديگر MySQL به دليل نداشتن اين سه عنصر مهم، در رقابت با ساير بانك هاي اطلاعاتي مورد سرزنش و بي مهري برنامه نويسان و مديران بانك هاي اطلاعاتي قرار نمي گيرد.
به طوركلي وقتي به تاريخچه و مراحل تكامل MySQL مي نگريم، سه ويژگي آن، يعني قابليت اطمينان، كارايي مناسب و آساني استفاده را از نكات مورد توجه سازندگان آن در توليد اين اثر مي يابيم. قابليت اطمينان، از اين جهت كه يك بانك اطلاعاتي اپن سورس و با حمايت يك شبكه توانمند و در همه جا حاضري به نام MySQL Network در هرلحظه آماده ارائه خدمت به استفاده كنندگان آن و پشتيباني از آن ها است و به راحتي مي تواند دربسياري از كاربردهاي تجاري جايگزيني مناسب براي همتايان گرانقيمت خود باشد.

كارايي مناسب، از اين لحاظ كه با ارائه نسخه هاي متعدد تحت سيستم عامل هاي مختلف و تحت معماري هاي سخت افزاري گوناگون قادر است تا هم در كاربردهاي مبتني برتعداد فرايندهاي فراوان (OLTP) و هم در كاربردهاي داراي پردازشها و محاسبات سنگين (OLAP) مورد استفاده قرار گيرد. آسانيِ استفاده هم از اين جهت است كه كليه مراحل استفاده از آن، از دستيابي به فايلهاي مخصوص نصب كه به طور رايگان قابل دريافت است و هم از اين بابت كه مراحل نصب و پيكربندي كه حداكثر در ده دقيقه در سيستم عامل هاي مختلف صورت مي گيرد. همچنين در زمان بهره برداري به شيوه اي بسيار آسان و گويا، ابزارهاي خود را در اختيار توسعه دهندگان و مديران سيستم قرار مي دهد.

معماري MySQL
ويژگي اپن سورس بودن MySQL باعث شده است معماري داخلي آن، به صورت گويا و واضح و در قالب ماجول هاي اساسي يا جانبي آن براي كاربرانش شناخته شده باشد. شكل 1 به طور خلاصه ماجول هاي مختلف موجود در MySQL را با نامگذاري براساس وظايفشان، نشان مي دهد.


مديريت اتصال
كنترل و ايجاد محدوديت درتعداد اتصالات قابل انجام بين كلاينت ها و سرور بانك اطلاعاتي يكي از ماجول ها و وظايف اصلي MySQL است. درواقع موتور بانك اطلاعاتي با مديريت خودكار و ايجاد اشتراك بين كلاينت ها در استفاده بهينه از اتصالات موجود نقش مهمي را ايفا مي كند. درواقع اين ماجول سعي مي كند با ايجاد فضاي مشترك، از به وجود آمدن تعداد زيادي اتصالات بي كار و بلااستفاده به بانك اطلاعاتي جلوگيري كند و در استفاده كمتر از فضاي حافظه و پردازش پردازنده موثر واقع شود.

دستورات و عناصر اصلي
وظايف ماجول هاي مستقر در اين قسمت، ايجاد امكان ساخت جداول بانك اطلاعاتي ايندكس ها، ديدها، روال هاي ذخيره شده، توابع، تريگرها، و پشتيباني از دستورات SQL ويژه ساخت اين عناصر يا خواندن، درج، حذف و تغيير داده ها در آنان است.
مديريت حافظه
يكي از مهم ترين كارهايي كه يك موتور پايگاه داده اي بايد انجام دهد، تخصيص و مديريت حافظه مورد استفاده بانك اطلاعاتي و پردازش هاي مربوط به آن ها و همچنين فضاي موردنياز جهت عمليات بافرينگ ورودي و خروجي به علاوه عمليات caching براي افزايش سرعت خواندن اطلاعات است. اين كار به خوبي در MySQL انجام مي گيرد. ضمن اين كه در زمان ايجاد و نگهداري يك بانك اطلاعاتي نيز پارامترهاي مختلفي در اين زمينه توسط مديرسيستم و استفاده از ابزارهاي مختص MySQL قابل تنظيم است.




موتور ذخيره سازي اطلاعات
MySQL داراي ابزارهاي متعددي براي ذخيره سازي اطلاعات به شيوه هاي گوناگون است. براين اساس و درزمان ايجاد يك پايگاه داده، MySQL پرسش هاي خاصي درمورد انتخاب نوع كاربرد بانك اطلاعاتي و انتخاب موتور ذخيره سازي مطرح مي گردد.

در پرسش اول كه اختصاص به نوع كاربرد دارد، مديرسيستم مي تواند از بين دو نوع پيش فرض يعني يك پايگاه داده با تعداد زيادي فرايندهاي همزمان (OLTP) يا يك پايگاه داده با تعداد زيادي دستورات ويژه خواندن و آناليز اطلاعات (OLAP) يكي را انتخاب كند يا اقدام به تنظيم دستي نمايد.

با اين كار و طبق انتخاب وي، سيستم، تعداد اتصالات همزمان پايگاه داده اي را كه در بحث <مديريت اتصال> به آن اشاره كرديم تنظيم مي كند. براين اساس اولويت به كاربرد OLPA داده مي شود چون اصولاً كاربرد OLTP نياز به استفاده زماني كمتري از يك اتصال دارد و بدين سبب مي تواند تعداد اتصال همزمان بيشتري را مديريت نمايد.


اما درمورد سؤال دوم همانطور كه گفتيم، 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) بسيار مقرون به صرفه اي بزنند و تا هشتاددرصد هزينه هاي مربوط به توسعه طولي يا همان ارتقاي سخت افزاري را كاهش دهند.
parstools.com

پاسخ
ایجاد موضوع جدید   پاسخ به موضوع  

موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
Note مشکل تغییر نام جدول در Mysql 2Web 1 508 04-07-2014 ساعت 10:56
آخرین ارسال: Daniel
Note خطای phpMyAdmin بعد از تغییر پسورد MySQL Hamid67 1 512 29-04-2014 ساعت 11:33
آخرین ارسال: SOFTAFZAR
Note انتخاب تنها 5 رکورد اول در Mysql Hamid67 1 1,052 17-09-2013 ساعت 11:03
آخرین ارسال: SOFTAFZAR
Note خطای Error 2006: MySQL Server has gone away در XAMPP Mohsen 2 819 30-11-2012 ساعت 20:49
آخرین ارسال: Mohsen

کاربرانِ درحال بازدید از این موضوع:   1 مهمان