efixhost 

تیر 26, 1398

دیتابیس MySQL چیست؟

دیتابیس MySQL پایگاه اطلاعاتی قدرتمند و شناخته شده در سرویس دهی بر روی هاست های لینوکسی می باشد. این پایگاه اطلاعاتی قدرتمند چندین سال از بهترین پایگاه ها بوده و آمار خوبی از خود به جای گذاشته است. این پایگاه اطلاعاتی همراه کنتل پنل های محبوب مانند Directadmin و سایر پنل های لینوکسی رایگان به صورت پیشفرض نصب می شوند. استفاده از این دیتابیس بسیار رایج بوده و جهت سرویس دهی نصب و کانفیگ می شود.

این پایگاه داده بصورت رایگان Community و هم بصورت تجاری Enterprise عرضه شده است که در ادامه تفاوت این دو ورژن برسی خواهد شد. نسخه استفاده در سیستم های هاستینگ ورژن رایگان بوده و نسخه تجازی ان برای سازمانهای بزرگ و دیتابیس های حجیم با درگیری بالا قابل استفاده میباشد.
MySQL یک سیستم مدیریت پایگاه داده رابطه ای بوده و در سال ۱۹۹۴ معرفی و منتشر شد. در حال حاضرMySQL در اختیار کمپانی Oracle بوده نسخه تجازی ان نیز توسط همین شرکت پشتیبانی میشود.

 

دیتابیس چیست؟

دیتابیس یک پایگاه جداگانه جهت ذخیری اطلاعات میباشد. هر پایگاه داده برای ایجاد، دسترسی، مدیریت، جستجو و تکثیر اطلاعات خود API مخصوص به خود را دارد. درگی مدل ها، ذخیره سازی اطلاعات روی فایل سیستم یا بصورت هش های بزرگ روی حافظه میباشد که البته دستیابی به آدرس و نوشتن در ان نمیتوانید راحت و سریع باشد. امروزه برای مدیریت دیتاهای عظیم از پایگاه داده رابطه ای RDBMS که از امکان کلید اصلی Primary Key و کلید خارجی Foreign Key را داراست استفاده می شود.

 

پایگاه داده رابطه ای نرم افزاریست که :

  • شما را قادر خواهد ساخت تا یک پایگاه داده با جدول [Table]، ستون [Columns] و شاخص [Indexes] داشته باشید.
  • ارتباط جامع بین سطر ها و جداول مختلف را داراست.
  • شاخص را را بصورت اتوماتیک اپدیت میکند.
  • دستورات SQL را تفسیر و اطلاعات مختلف در جداول را ترکیب میکند.

واژه های RDBMS یا همان پایگاه داده رابطه ای

  • Database :یک دیتابیس تشکیل شده از تعدادی جدول با اطلاعات مرتبط
  • Table : جدول ماتریسی از اطلاعات است.
  • Column : یک ستون از اطلاعات هم نوع است. مانند کد پستی
  • Row : ردیفی از گروهی از اطلاعات مرتبط است. مانند اطلاعات ثبت نام یک شخص
  • Redundancy : ذخیره اطلاعات بصورت دو برابر که باعث افزایش سرعت سیستم میشود.
  • Primary Key : کلید منحصر به فرد یا کلید اصلی شناخته میشود. کلید اصلی منحصر به فرد است و نمیتواند از ان ۲ عدد در جدول داشت.
  • Foreign Key : به کلید هایی که دو جدول را به هم مرتبط میسازد گفته میشود.
  • Compound Key : به کلیدی که چند کلید را شامل میشود و منحصر به فرد نیست.
  • Index : شاخص نیز مانند ایندکس های کتاب است.
  • Referential Integrity : این امکان مشخص میکند که کلید های خارجی حتما درست روی Row یا سطر موجود قرار داشته باشد.

پایگاه داده MySQL :

MySQL یک پایگاه داده سریع و آسان در نصب و استفاده میباشد که توسط سایت های کوچک و یا تجازی در حال استفاده میباشد. mysql به دلیل مزایای بسیاری که دارد معروف و محبوب شد.

 

مزایای این پایگاه داده به شرح زیر است:

  • mysql تحت لایسنس Open-Source میباشد(البته نسخه Community)، پس نیازی نیست نگران هزینه لایسنس باشید.
  • این پایگاه داده از دستورات استاندارد SQL پشتیبانی میکند.
  • mysql روی اکثر سیستم عامل ها کار میکند و از بسیاری از زیانها مانند PHP, PERL, C,CPP, Java و … پشتیبانی میکند.
  • mysql بسیار سریع بوده و توانایی کار با دیتابیس های حجیم را داراست.
  • این پایگاه داده از پایگاه داده بسیار حجیم پشتیبانی میکند. سایز پیشفرض برای دین پایگاه داده ۴GB میباشد که میتوانید در صورت نیاز تا ۸ میلیون ترابایت (در صورتی که سیستم عامل پشتیبانی کند) حجم ان را افزایش دهید.
  • mysql به دلیل open source بودن قابل تغییر است و در صورت نیاز میتوانید ان را دستکاری کرده و با توجه به نیاز خود ان را تغییر دهید.

ENGINE های پایگاه داده MySQL :

این پایگاه داده از engine های مختلفی پشتیبانی میکند. اشنایی و شناخت Engine های دیتابیس کاربردی بوده و ممکن است در شرایط مختلف از یک engine خاص استفاده شود. engine های MyISAM و InnoDB بیشترین استفاده را در حال حاضر دارند. engine های زیر توسط mysql پشتیبانی میشود:

  • MyISAM
  • InnoDB
  • MERGE
  • MEMORY (HEAP)
  • ARCHIVE
  • CSV
  • FEDERATED

هر کدام از engine ها فواید و معایب خود را دارد. دانستن امکانات و کارایی هر engine بسیار مهم است تا برای سرویس دهی مشخص بهترین engine انتخاب شود. انتخاب engine درست باعث افزایش کارایی و سرعت خواهد شد. در ادامه مطالب امکانات هر engine مختصر معرفی میبشود تا بتوانید بهترین گزینه را برای سرور خود انتخاب کنید.

MyISAM

MyISAM نوع گسترش یافته engine ذخیره سازی ISAM میباشد. جداول MyISAM جهت فشرده سازی و افزایش سرعت، بهینه سازی شده است و همچنین MyISAM میتواند بصورت پرتابل بین انواع سیستم عامل ها یا پلتفرم ها جا به جا شود.

سایز MyISAM میتواند تا ۲۵۶ ترابایت افزایش یابد. این engine جداول را پس از فشرده سازی Read-Only میکند تا در فضای ذخیره اطلاعات صرفه جویی شود. MyISAM جداول را در هنگام شروع به کار برسی و چنانچه در ان اختلال [Corruption] و یا دیگر مشکلی مشاهده کند جدول مورد نظر را تعمیر [Repair] میکند. جداول MyISAM تراکنش-امن [Transaction-Safe] نمیباشد.

قبل از نسخه ۵٫۵ پایگاه داده MySQL بصورت پیفرض از این engine استفاده میکرد و زمانی که شما بدون مشخص سازی engine یک جدول ایجاد میکردید جدول شما از MyISAM به عنوان engine استفاده میکرد. از MySQL 5.5 به بعد InnoDB به عنوان engine پیشفرض استفاده میشود.

InnoDB

جداول InnoDB کاملا از ACID-Comliant و تراکنش ها پشتیبانی میکند که برای کارایی بالا نیز بهینه سازی شده است. InnoDB از کلید خارجی، commit، rollback و roll forward نیز پشتیبانی میکند. سایز جدول InnoDB میتواند تا ۶۴TB افزایش یابد.
مانند جداول MyISAM جدول InnoDB میتوانید در بین سیستم عامل ها و پلتفرم های مختلف جا به جا شود. MySQL جداول InnoDB را در صورت نیاز check میکند.

MERGE

MERGE روشی را فراهم کرد تا جداول MyISAM یکسان را بصورت منطقی به یک جدول ترکیب نمایید. MERGE با نام MRG_MyISAM نیز شناخته میشود. زمانی که چند جدول را ادقام میکنید استفاده از MERGE باعث افزایش سرعت میشود. در MERGE عملیات هایی مانند: SELECT, DELETE, UPDATE و INSERT قابل انجام است.

Memory

جدول های MEMORY در حافظه ذخیره شده و از Hash Indexes استفاده میکند به همین دلیل سریع تر از MyISAM عمل میکند. عمر اطلاعات Memory به Uptime سرور دیتابیس وابسطه است. Memory عموما با نام HEAP هم شناخته میشود.

Archive

این engine این امکان را به شما میدهد تا تعداد زیادی رکورد را با هدف ارشیو کردن ذخیره نمایید. Archive زمانی که یک رکورد Insert میشود ان را فشرده و زمانی Read میشود ان را با استفاده از zlib از حالت فشرده خارج میکند.

Archive از Index گذاری پشتیبانی نمیکند و برای Read کردن یک رکورد نیاز است تمامی ان اسکن شود. این engine فقط از دستورات INSERT و SELECT پشتیبانی میکند.

CSV

CSV اطلاعات را بصورت comma-seprated (جدا شده توسط کاما) مانند فرمت csv ذخیره میکند. این نوع به شما این امکان را میدهد تا اطلاعات غیر SQL را به این دیتابیس Migrate نمایید.

CSV از اطلاعات از نوع NULL پشتیبانی نمیکند. جهت عملیات Read نیز نیاز است همه دیتابیس ها اسکن شود.

FEDERATED

این engine امکان مدیریت اطلاعات را بصورت Remote بدون استفاده از تکنولوژی های cluster و replication به شما میدهد.جداول federated در local هیچ اطلاعاتی ذخیره نمیکند.

efixhost