Bog'liq Ma’lumotlar bazasida jadvallani import va eksport qilish. (3)
So'rovlar yordamida zaxira nusxalarini yaratish va MySQL ma'lumotlar bazasidan ma'lumotlarni chiqarish Biz MySQL ma'lumotlar bazasini - bitta va bir nechtasini, shuningdek ularning alohida jadvallarini qanday qilib tashlab yuborish haqida suhbatlashdik. Ammo ba'zida amalda bitta jadval bilan cheklanmagan ma'lumotlar to'plamini eksport qilish kerak bo'lgan holatlar mavjud. Yoki faqat jadvaldan ba'zi ma'lumotlarni tanlashingiz kerak. Bu, ayniqsa, korporativ loyihalarni ishlab chiquvchilar tomonidan menejerlar har qanday statistik ma'lumotlarni taqdim etishni so'rashganda tez-tez uchraydi. Yoki jadvalni ma'lum bir qismini tezda tiklash uchun uning zaxira nusxasini yaratish kerak bo'lganda. Zaxira nusxasini olish uchun bizga bir xil yordam dasturi kerak. mysqldump, shunday nomlanishi kerak bo'ladi:
Mysqldump -u user_name -p db_name table_name - qaerda qidirish\u003e dumpfile ning path_and_name Natijada, biz butun tuzilishi bilan jadval yaratish uchun SQL buyruqlari bo'lgan faylni olamiz, yaratilgandan so'ng qidiruv so'rovi yordamida tanlangan ma'lumotlar bilan to'ldiriladi. Agar biz faqat bitta yoki bir nechta jadvalda saqlangan ma'lumotlarni olishimiz kerak bo'lsa, unda barcha jadval ma'lumotlarini olishda avvalgi holatda ishlatilgan buyruqni o'zgartirishimiz kerak, faqat ba'zi tushuntirishlar bilan:
Mysql -u user_name -p -e "SELECT * FROM table_name WHERE lookup_query"\u003e path_and_file_name Xuddi shu amalni quyidagi buyruq yordamida MySQL buyruq satrida ishlash paytida ham bajarish mumkin: SELECT * FROM db_table WHERE lookup_query INTO OFFILE "path_and_file_name"; Ushbu buyruq faqat tanlov natijalari bilan fayllarni yaratishga mo'ljallangan. Bundan tashqari, natijalarni nafaqat fayllarga eksport qilish, balki o'zgaruvchilarga yozish va chiqish ma'lumotlarini turli usullar bilan formatlash mumkin. Agar yuqorida aytilganlar sizning holatingizda bo'lsa, unda siz ushbu buyruqni chaqirish uchun parametrlar va variantlarning to'liq ro'yxatini bu erda topishingiz mumkin - https://dev.mysql.com/doc/refman/5.7/en/select-into.html Mysqldump-ga qisqa ekskursiyam oxirida men MySQL ma'lumotlar bazasi va jadvallarini optimallashtirilgan dempini yaratish uchun parametrlar ro'yxati bilan buyruqni chaqirishning bir variantini berishni istayman, bu oddiy qo'ng'iroqdan ko'ra ko'proq vaqt talab qiladigan ma'lumotlar bazasini va alohida jadvallarni tiklaydi:
mysqldump -u foydalanuvchi nomi -h host_or_IP_MySQL_server -p - no-autocommit --opt database_name\u003e dumpfile ning path_and_name;
Tajriba uchun men ushbu parametrdan 143 MB hajmdagi MySQL ma'lumotlar bazasini tashlab qo'yish uchun foydalandim. Keyingi tiklash ma'lumotlar bazasini mysqldump-ga qo'ng'iroq qilish orqali maxsus parametrlarsiz qayta tiklanganda 1 soniya va 3 soniya bilan 59 soniyani tashkil etdi. Men bu arzimas narsaga qo'shilaman. Ammo bu faqat ma'lum miqdordagi ma'lumotlarga tegishli. Agar siz ushbu texnikani 1 Gb dan katta axlatxonani yaratishda qo'llasangiz, bu farq yanada muhimroq bo'ladi. Agar siz bunday vaziyatga duch kelsangiz, MySQL ma'lumotlar bazasini arxivga oldindan yig'ib qo'yishni unutmang. Tar.gz eng yaxshisi. Keyin tiklanish yanada kam vaqt talab etadi.