۳۰ شهریور ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

به روز رسانی یا مهاجرت؟ برنامه ریزی برای MySQL 5.7 EOL

در اکتبر 2023، MySQL 5.7 دیگر به‌روزرسانی یا وصله‌های امنیتی را دریافت نخواهد کرد. وقت آن است که گزینه های خود را درک کنید و برای مسیر پیش رو برنامه ریزی کنید.

در اکتبر ۲۰۲۳، MySQL 5.7 دیگر به‌روزرسانی یا وصله‌های امنیتی را دریافت نخواهد کرد. وقت آن است که گزینه های خود را درک کنید و برای مسیر پیش رو برنامه ریزی کنید.

بر اساس DB-Engines،

MySQL محبوب‌ترین پایگاه داده منبع باز در جهان است، و برای بیش از یک دهه به عنوان دومین پایگاه داده محبوب در کل رتبه بندی شده است. MySQL به ظهور پشته LAMP دامن زد و در طول سال ها همراهی قابل اعتماد برای بسیاری از توسعه دهندگان و DBA بوده است. در اکتبر ۲۰۲۳، نسخه ۵.۷ به وضعیت پایان عمر می رسد، به این معنی که این نسخه دیگر به روز رسانی یا وصله های امنیتی را دریافت نخواهد کرد.

این امر بسیار مهم است زیرا، در چهار ماه دیگر، بیش از نیمی از سرورهای MySQL در حال حاضر بر اساس داده‌های دریافت شده از کسانی که از مانیتورینگ و مدیریت Percona برای وظایف مدیریت پایگاه داده خود استفاده می‌کنند و انتخاب کرده‌اند، در نسخه ۵.۷ هستند. داده های تله متری را با ما به اشتراک بگذارید. از آنجایی که این نمونه معرف نصب پایگاه داده است، به این معنی است که سرورهای پایگاه داده زیادی در آنجا وجود دارند که تنها چهار ماه تا پایان عمرشان فاصله دارند.

برای آماده شدن برای حرکت، از چه چیزهایی باید آگاه باشید؟ من هزینه ها و مزایای گزینه های مختلف را در زیر ترسیم کرده ام.

مهاجرت به MySQL 8.0

برای شروع، باید به آنچه در انتقال از MySQL 5.7 به MySQL 8.0 که تنها نسخه پشتیبانی شده MySQL در آینده خواهد بود، توجه کنید. MySQL 8.0 از سال ۲۰۱۶ وارد بازار شده است، بنابراین یک گزینه بسیار پایدار است، اما تغییرات قابل توجهی نسبت به نسخه قبلی وجود دارد.

یک تغییر عمده، پیشرفت‌هایی در SQL (زبان پرس و جوی ساختاریافته) است که در MySQL 8.0 پشتیبانی می‌شود که پشتیبانی از جستارها را برای توسعه‌دهندگان و DBAها آسان‌تر کرده است. به عنوان مثال، اگر در نوشتن سوالات فرعی مشکل دارید، از پشتیبانی از اتصالات مشتق شده جانبی و عبارات جدول رایج (CTE) خوشحال خواهید شد. همچنین یک بند تقاطع جدید برای کمک به مجموعه ها وجود دارد.

MySQL 8.0 همچنین از دستورات جدیدی پشتیبانی می کند که در MySQL 5.7 گنجانده نشده اند. یک مثال EXPLAIN ANALYZE است که برای تنظیم پرس و جو یک امتیاز بزرگ است. فرمان EXPLAIN تجزیه و تحلیل تخمینی سرور از عملکرد درخواست شما را به شما می دهد. افزودن ANALYZE باعث اجرای پرس و جو می شود و اعداد برگردانده می شوند تا اعداد واقعی عملکرد پرس و جو را گزارش کنند. این بینش بیشتری در مورد نحوه اجرای پرس‌و‌جوها در عمل ارائه می‌دهد و یافتن پیشرفت‌ها را آسان‌تر می‌کند. علاوه بر این، دستور INVISIBLE INDEX به شما کمک می کند کارایی یک شاخص را بدون خطر بازسازی فاجعه بار پس از حذف آزمایش کنید.

انجام انبارداری داده به روش اشتباه

در کنار این تغییرات، مجموعه کاراکترهای پیش‌فرض به‌روزرسانی شده UTF8MB4 از نسخه ۹.۰ یونیکد پشتیبانی می‌کند، به این معنی که می‌توانید از نویسه‌های بین‌المللی پشتیبانی کنید. این به ویژه در صورتی مفید است که باید از عملیات جهانی پشتیبانی کنید.

مهاجرت به MySQL 8.0 یک راه یک طرفه است، بنابراین باید تعیین کنید که آیا برنامه و پایگاه داده شما از این حرکت پشتیبانی می کند یا خیر. یکی از راه‌های کارآمد برای بررسی این موضوع، استفاده از ابزار util.checkForServerUpgrade() MySQL Shell است که ۲۱ تست مختلف را برای یافتن مشکلات احتمالی که ممکن است پس از شروع فرآیند مهاجرت انجام شود، انجام می‌دهد. این شامل بررسی جدول‌هایی با نام‌هایی است که با کلمات کلیدی رزرو شده جدید در تضاد هستند، برای جداول پارتیشن‌بندی شده که از موتورهایی با پارتیشن‌بندی غیربومی استفاده می‌کنند، برای مراجع دایرکتوری دایره‌ای در مسیرهای فایل داده tablespace و استفاده از توابع حذف شده. به طور مشابه، ابزار به دنبال مشکلاتی در مورد متغیرهای سیستم است که حذف شده یا به مقادیر پیش‌فرض جدید تغییر یافته‌اند.

بسته به پیاده سازی MySQL موجود، ممکن است برای آماده شدن فقط نیاز به ایجاد برخی تغییرات جزئی داشته باشید. با این حال، اگر برنامه شما با چندین مشکل و به‌روزرسانی بازگردد، کار بیشتری برای انجام دادن خواهید داشت.

در نظر گرفتن جایگزین های DBaaS و MySQL

در کنار بررسی سیستم های خود برای مشکلات احتمالی مهاجرت، باید گزینه های خود را نیز به طور کلی بررسی کنید. به عنوان مثال، آیا MySQL هنوز بهترین پایگاه داده برای شما و تیمتان است یا باید جایگزین هایی را در نظر بگیرید؟ اگر باید حجم قابل توجهی از کار را در برنامه خود انجام دهید تا آن را به مرحله اول برسانید، آیا باید این تلاش را برای انتقال به پلتفرم دیگری انجام دهید؟ به همین ترتیب، آیا به اجرای زیرساخت پایگاه داده خود به همان روش ادامه می دهید یا باید از رویکرد متفاوتی مانند پایگاه داده به عنوان سرویس (DBaaS) استفاده کنید؟

بهترین ORM ها برای برنامه های پایتون مبتنی بر پایگاه داده

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

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

گزینه دوم این است که حرکت را انجام دهید، اما محل میزبانی پایگاه داده خود را تغییر دهید. برای مثال، سرویس‌های ابری سازگار با MySQL و ارائه‌دهندگان میزبانی می‌توانند این ماشین‌ها را از طرف شما مدیریت کنند نه اینکه شما مجبور باشید زیرساخت‌های خود را اجرا کنید. گزینه‌های DBaaS می‌توانند برخی از دردسرهای مدیریت زیرساخت را از بین ببرند، اما آنها باید به تنهایی مدیریت و به‌روزرسانی شوند.

گزینه سوم انتقال به پایگاه داده دیگری است. هنگامی که برنامه و نصب پایگاه داده شما باید به روز شود و کار قابل توجه خواهد بود، هر تلاشی که انجام می شود می تواند برای انتقال به یک پایگاه داده دیگر استفاده شود. اگر می‌خواهید سیستم‌های خود را به طور کلی جابجا کنید، این می‌تواند مفید باشد، اما می‌تواند به برنامه‌ریزی بیشتری برای بررسی منطق کسب‌وکار و همچنین زیرساخت‌های شما نیاز داشته باشد.

MySQL یا PostgreSQL؟

متداول‌ترین گزینه خارجی برای مهاجرت MySQL، PostgreSQL است، زیرا یک پایگاه داده منبع باز محبوب با جامعه قابل توجهی در اطراف آن است. PostgreSQL خود اخیراً برای پشتیبانی از دستور SQL MERGE که معمولاً در سرور Microsoft SQL، پایگاه داده Oracle و MySQL استفاده می شود، به روز شده است. این در PostgreSQL 15 اضافه شد تا انتقال به PostgreSQL بدون بازنویسی قابل توجه آسان تر شود. این انتقال ممکن است نیاز به بازنویسی داشته باشد، اما اگر از قبل باید تغییراتی برای انتقال به MySQL 8.0 ایجاد کنید، پس چرا به یک تغییر تغییر ندهید؟

چگونه نمودارهای دانش هوش مصنوعی مولد را بهبود می بخشند

مهاجرت MERGE همچنین می‌تواند با استفاده از نسخه تجاری یا DBaaS PostgreSQL پشتیبانی کند. بسیاری از خدمات پایگاه داده مبتنی بر PostgreSQL، به لطف مجوز منبع باز منعطف آن، وجود دارد، بنابراین بسیاری از شرکت ها توانایی خود را برای پشتیبانی از این پیشنهاد می کنند. با این حال، ارزش این را دارد که ببینیم آیا هر یک از این گزینه‌ها کاملاً سازگار هستند و واقعاً از PostgreSQL منبع باز پشتیبانی می‌کنند، نه اینکه نوع خاص خودشان باشند. این می تواند یک خیابان یک طرفه شبیه به مهاجرت MySQL باشد، اما پس از انجام حرکت با گزینه های کمتری.

مهاجرت از MySQL 5.7 به MySQL 8.0 یا بالاتر، وظیفه ای خواهد بود که بسیاری از توسعه دهندگان و DBA ها باید طی چند ماه آینده از آن پشتیبانی کنند. با برنامه ریزی از قبل و درک گزینه های خود شروع کنید. با نگاهی به برنامه های کاربردی موجود خود، میزان کاری که باید انجام دهید، و آنچه در آینده از زیرساخت برنامه خود می خواهید یا نیاز دارید، می توانید هزینه ها و مزایای مسیرهای مختلف پیش رو را ارزیابی کنید.

به‌روزرسانی MySQL در محل، انتقال کامل به یک پلتفرم جدید، یا حتی ماندن در محل، همه گزینه‌هایی هستند که می‌توانید در نظر بگیرید. با این حال، به جای اینکه بنشینید یا سر خود را در شن و ماسه قرار دهید، می‌توانید از مشکلات پیشی بگیرید و از فرصت‌های خود نهایت استفاده را ببرید.

دیو استوکس مبشر فناوری در Percona است.

انجمن فناوری جدید مکانی را برای کاوش و بحث در مورد فناوری سازمانی نوظهور در عمق و وسعت بی سابقه ای فراهم می کند. انتخاب ذهنی است، بر اساس انتخاب ما از فناوری هایی که معتقدیم مهم هستند و برای خوانندگان InfoWorld بیشترین علاقه را دارند. InfoWorld وثیقه بازاریابی را برای انتشار نمی پذیرد و حق ویرایش تمام محتوای ارائه شده را برای خود محفوظ می دارد. همه سوالات را به newtechforum@infoworld.com ارسال کنید.