270 likes | 480 Views
ارزیابی کارآیی موتورهای ذخیره سازی InnoDB و Falcon در MySQL. استاد راهنما: دکتر رهگذر. ارائه دهنده: هما برادران هاشمي. زمستان 87. فهرست مطالب. بررسی موتورهای ذخیره سازی در MySQL مروری بر محیط تست و اسکریپتهای نوشته شده روش ارزیابی نتایج ارزیابی جمعبندی منابع.
E N D
ارزیابی کارآیی موتورهای ذخیره سازیInnoDB و Falconدر MySQL استاد راهنما: دکتر رهگذر ارائه دهنده: هما برادران هاشمي زمستان 87
فهرست مطالب بررسی موتورهای ذخیره سازی در MySQL مروری بر محیط تست و اسکریپتهای نوشته شده روش ارزیابی نتایج ارزیابی جمعبندی منابع
مروری بر MySQL محبوبترین پایگاه داده منبع آزاد • MySQL • قابلیت اطمینان بالا • کارآیی مناسب • آسانی استفاده • کم هزینه • معایب نسخههای اولیه MySQL • نبود دید (view) • نبود روالهای ذخیره شده(store procedure) • نبود تریگرها • پشتیبانی از انواع داده فضایی در نسخههای جدید
موتور ذخیره سازی چیست؟ (Storage Engine) • معماری نسخههای ابتدایی MySQL • لایه SQL: مسئول تمام عملیات سطح بالا • لایه Storage: مسئول ذخیره سازی، تراکنشها و غیره • تغییر معماری در MySQL 5.1 به بعد • وجود یک لایه رابط موتور ذخیرهسازی پیمانهای • قابلیت کامپایل جداگانه موتور ذخیره سازی و بارگذاری آن در سرور • ترویج توسعه موتورهای ذخیره سازی داخلی و خارجی • بنابراین افزایش تعداد زیادی از آنها
معماریMySQL ماژولهای مختلف موجود درMySQLبا نامگذاری براساس وظایفشان
موتور ذخیره سازی چیست؟ (ادامه) • موتورهای ذخیره سازی مسئول ذخیره سازی دادهها • توانایی پیاده سازی • مفاهیم ذخیره سازی متفاوت • انواع فایلها • ذخیره سازی از راه دور • پیمایش کارآ • عدم توانایی رفتار با توابع سطح بالا • Sorting • Group by • Limit • برآوردن این انتظارات در نسخههای آینده MySQL • بعضی از فروشندگان (همانند Kickfire) • دستکاری کد • قطع پردازش query • اجرای آن توسط موتور پردازشی جدید
انواعموتورهای ذخیره سازی • موتورهای ذخیره سازی عمومی • تراکنشی • Innodb, Falcon, PBXT, Maria (future) • غیر تراکنشی • MyISAM, ISAM (dead),Maria(current) • موتورهای ذخیره سازی خوشه بندی • NDB, ScaleDB (CloseSource) • موتورهای ذخیره سازی خاص منظوره • Memory, Federated, Archive,Blackhole, CSV, NitroDB(CS), SphinxSE , InfoBright(CS), Queue, Graph(CS)
موتورهای ذخیره سازی در MySQL(انواع جداول) عدم پشتیبانی از Transaction و کلید خارجی سرعت بیشتر پشتیبانی از Transaction و کلید خارجی تراکنش امن در سال 2001 به همراه نسخه MySQL-3.23.34a ISAM MyISAM BDB (BerkeleyDB) InnoDB Falcon
موتور ذخیره سازی MyISAM CREATE TABLE articles (articleIDint not null auto_increment primary key,title varchar (2MERGE),body text,fulltext (title,body)); SELECT titleFROM articleWHERE MATCH (title, body) AGAINST ('miniprogrammer'); • بهینه سازی برای • افزایش سرعت • قابلیت اطمینان • ذخیره سازی سریع • ارائه تراکنشهای غیر امن • امکان FullText Searching • جستجو برای یک کلمه یا رشته در یک متن • پشتیبانی از stemming
موتور ذخیره سازیInnoDB • شروع نوشتن InnoDB 10 سال پیش • هدف نویسنده: • جستجوی راهی برای توسعه کارآیی پایگاه دادههای سنتی • پشتیبانی کامل از سطحهای جداسازی SQL • براي تراكنش هاي ACID • بهتر كردن زمان پاسخ توسط • MVCC(multi-version concurrency control ) • قفل گذاري سطح پايين (بر روي سطر) • Fuzzy Checkpointing • كلاستر كردن توسط كليد اصلي و نوشتن بر روي صفحات يكسان
مزایای موتورهای ذخیره سازی InnoDB • امنتر • هنگام خرابی MySQL و یا سختافزار • روش ترمیم خودکار از طریق دادههای پشتیبان به همراه logهای تراکنشها • پشتیبانی از کلیدهای خارجی • افزایش همزمانی • قفل در سطح سطر • خواندنهای بدون قفل در دستورات SELECT (مشابه Oracle) • برگشت تغییرات انجام شده توسط دستور ROLLBACK نیاز به امن بودن تراکنش موجب افزایش زمان اجرا، فضای دیسک و حافظه
نتیجه کوئری خواندن یک سطر توسط کلید اصلی
نتیجه کوئری خواندن چند سطر توسط کلید اصلی
نتیجه کوئری خواندن چند سطر توسط کلید اصلی به همراه LIMIT
خواندن چند سطر توسط کلید به همراه مقدار ذخیره شده در آن
نتیجه کوئری خواندن چند سطر توسط کلید اصلی به همراه مقدار ذخیره شده در آن باLIMIT
نتیجه کوئری خواندن یک سطر توسط کلید اصلی و INDEX
نتیجه کوئری خواندن محدودای از سطرها توسط کلید اصلی
نتیجه کوئری خواندن محدودای از سطرها توسط کلید اصلی و INDEX
نتیجه کوئری خواندن محدودای از سطرها توسط کلید
نتیجه کوئری خواندن محدودای از سطرها توسط کلید به همراه LIMIT
نتیجه کوئری خواندن محدودای از سطرها توسط کلید به همراه مقدار ذخیره شده در آن
نتیجه کوئری خواندن محدودای از سطرها توسط کلید به همراه مقدار ذخیره شده در آن وLIMIT
نتیجه گیری و جمعبندی (ادامه) • نقاط ضعف InnoDB • سرعت توسعه کم در سالهای اخیر • هنوز داشتن مشكل با چندین CPU • هنوز داشتن مشكل در یکپارچه شدن آن با MySQL
منابع • Bannon, Chin, Kassam, and Roszko, “InnoDB Concrete Architecture”. Waterloo, Ontario: Software Architecture Group, University of Waterloo, 2002 • Leon Atkinson, “Core MySQL”, Prentice Hall PTR,ISBN 0-13-00661902, 2002. • Silberschatz, H. Korth and S. Sudarshan, “Database system concepts”, Mc Graw Hill 4th Edition, ISBN 0-07-112268-0, 2002. • MySQL reference manual, available at http://www.mysql.org. • Atkinson, Leon. Core, “MySQL: The Serious Developer’s Guide.” New Jersey: Prentice Hall Publishing, 2002. • http:// www.innoDB.com