মাইআইএসএএম থেকে ইনোডিবিতে রূপান্তর করে মোটেও কোনও গোচাছ?


11

আমি মাইআইএসএএম থেকে ইনোডিবিতে স্থানান্তরিত হতে প্রস্তুত কিন্তু জানতে চেয়েছি যে জিনিসগুলির সন্ধানের জন্য একটি সম্পূর্ণ তালিকা রয়েছে? উদাহরণস্বরূপ, আমি কোনও তালিকা উল্লেখ করে দেখিনি যে DISABLE KEYSম্যানুয়াল পৃষ্ঠা ব্যতীত কোনও InnoDB টেবিলের উপর চালানো কোনও সতর্কতা নিক্ষেপ করবে ALTER TABLE। এটি রূপান্তরিত হওয়ার আগে এই ধরণের জিনিসটি সম্পর্কে আমার জানা উচিত। আমি ভেবেছিলাম আমি আমার প্রশ্নগুলির সাথে ভাল থাকব তবে দৃশ্যত তা নয়।

উত্তর:


7

এখানে কিছু গেটচাস দেওয়া আছে

মেমরি ব্যবহার

MyISAM

InnoDB

  • ডেটা পৃষ্ঠাগুলি এবং সূচী পৃষ্ঠাগুলি ক্যাশে করে।
  • একটি বাফার পুল এবং মাইএসকিউএল 5.5 এর আগে একটি আকার
  • মাইএসকিউএল 5.5 দিয়ে শুরু করে 1 বা আরও বেশি বাফার পুল

এখানে মাইআইএসএএম কী ক্যাশে এবং ইনোডিবি বাফার পুলের জন্য উপযুক্ত আকারটি কীভাবে চয়ন করতে হবে তার আগে আমি লিখেছি এবং পোস্ট করেছি এমন কিছু প্রশ্ন রয়েছে

সম্পূর্ণ পাঠ্য সূচী

MyISAM

  • সম্পূর্ণ পাঠ্য সূচকে সমর্থন করে

InnoDB

  • মাইএসকিউএল ৫..6 দিয়ে শুরু করে, হ্যাঁ, তবে এখনও বিটাতে রয়েছে (আপডেট: মাইএসকিউএল ৫. exists উপস্থিত রয়েছে এবং ফুলটেক্সট সূচী রয়েছে you আপনি যদি মাইএসকিউএল ৫..6 এ ফুলটেক্সট ইনডেক্সিং ব্যবহার করছেন, নিশ্চিত হন যে আপনি ইনোডিবি-নির্দিষ্ট ফুলটেক্সট বিকল্পগুলি ব্যবহার করছেন )
  • মাইএসকিউএল 5.6 এর আগে, এর অর্থ আপনি মাইআইএসএএম-কে ইনোডিবিতে রূপান্তর করতে পারবেন না।

মাইএসকিউএল 5.5 এবং পিছনে

কোন মাইআইএসএএম টেবিলগুলির একটি সম্পূর্ণ টেক্সট রয়েছে এই কোয়েরিটি চালায়:

select tbl.table_schema,tbl.table_name from
(
    select table_schema,table_name
    from information_schema.tables
    where engine='MyISAM'
    and table_schema NOT IN ('information_schema','mysql')
) tbl
INNER JOIN
(
    select table_schema,table_name
    from information_schema.statistics
    where index_type='FULLTEXT'
) ndx
USING (table_schema,table_name);

আপনি এই মাইএসকিউএল 5.6 এ আপগ্রেড না করা পর্যন্ত এই কোয়েরিতে যা কিছু আসবে তা ইনোডিবিতে রূপান্তর করা যাবে না।

টেবিলটি অপ্টিমাইজ করুন

MyISAM

  • মাইআইএসএএম টেবিল সঙ্কুচিত
  • আনালাইজ টেবিল সমস্ত সূচকে সূচকের পরিসংখ্যান চালায়

InnoDB


ক্যোরির জন্য ধন্যবাদ, যদিও ছোট টাইপ: "ইঞ্জিন" এর পরিবর্তে "ইঞ্জিন"
অ্যান্ড্রু

@ রোল্যান্ডোমাইএসকিউএলডিবিএ: আপনি যুক্ত করতে পারেন যে ইনোডিবিতে স্থানিক সূচকগুলি নেই।
ypercubeᵀᴹ

2

আমার মনে হয় সবচেয়ে বড় গ্যাচা ইনডোডাবের চারপাশে হবে লেনদেনের কারণে। আপনি জানতে চাইবেন যে মাইএসকিউএল লাইব্রেরিগুলি আপনার অ্যাপ্লিকেশনগুলি অটো_কমিট ডিফল্টরূপে ব্যবহার করছে কিনা।

পাইথন উদাহরণস্বরূপ, স্বয়ংক্রিয় প্রতিশ্রুতি দেয় না। এর অর্থ যদি কোনও অ্যাপ্লিকেশন যদি কোনও সংযোগ বন্ধ করার আগে ডানদিকে সন্নিবেশ করছিল তবে সন্নিবেশকে পরিবর্তন করার পরে যদি সন্নিবেশ করা হয় তবে এটি পুনরায় ঘুরিয়ে দেওয়া হবে। উদাহরণস্বরূপ পাইথন স্ক্রিপ্টটি কানেকশন ডটমিট () কল করা নিশ্চিত হওয়া দরকার;

পার্থক্যের আরেকটি বিষয় মাল্টি সারি সন্নিবেশ বা আপডেটের কাছাকাছি হতে পারে। একটি একক বহু সারি সন্নিবেশ বিবেচনা করুন

insert into tbl values (...row1...),  (...row2...),  (...rowN....);

সারি 3-তে কোনও অনন্য কী সংঘর্ষের মতো কোনও ধরণের ত্রুটি থাকলে কী হয় তা বিবেচনা করুন। মাইআইএসএএমের সাহায্যে প্রথম দুটি সারি লেখা হত, ইনোনডাবের নীচে সমস্ত সারি লেখা হবে এমন কোনও ত্রুটির পরেও কিছু লেখা না রেখে ফিরে ঘুরিয়ে দেওয়া হবে।

ইনোডাবের সাহায্যে আপনি অচল জগতে প্রবেশ করবেন। এগুলি কোনও কাজ সম্পন্ন হতে বাধা দেওয়ার জন্য এ জাতীয় ফ্রিকোয়েন্সি নিয়ে ঘটছে না তবে এগুলি সহজাত খারাপ নয়। তবে আপনার অ্যাপ্লিকেশনগুলিকে এমনভাবে কোড করা দরকার যাতে তারা ডেডলকগুলি প্রাক্কলিত করে এবং যথাযথভাবে পরিচালনা করে (যার সম্ভবত সম্ভবত পুনরায় চেষ্টা করা)।

মেমরি / স্টোরেজ সীমাবদ্ধতা বিবেচনা করুন। ইনোডব মাইআইএসএএম এর চেয়ে অনেক বেশি সংস্থানযুক্ত resource আপনার বাফার পুলগুলি আপনার সমস্ত টেবিলের জন্য যথেষ্ট পরিমাণে রাখার জন্য যদি আপনার যথেষ্ট পরিমাণ র্যাম থাকে তবে আপনি সোনার।

সারণী সন্ধান করুন যাতে বড় প্রাথমিক কী আছে। ইনোডবের ক্লাস্টারড ইনডেক্সিং মানে প্রতিটি সেকেন্ডারি সূচকে সংশ্লিষ্ট সারিটির পিকে-র একটি অনুলিপি থাকে। আপনার যদি ২ টি মাধ্যমিক সূচক থাকে যার অর্থ প্রতিটি সারি পিকে 3 বার (পিকে + প্রতিটি সূচক) সঞ্চিত থাকে। যদি পিকে বিভিন্ন কলাম এবং বৃহত ডেটাটাইপগুলি (উদাহরণস্বরূপ চর (এন)) জুড়ে ছড়িয়ে পড়ে তবে আপনি দেখতে পাবেন যে সূচকের প্রয়োজনীয়তা কীভাবে ইনোডাবের নীচে দ্রুত বিস্ফোরিত হতে পারে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.