আপনি কীভাবে একটি মাইএসকিউএল ডাটাবেস ইঞ্জিন চয়ন করবেন


16

বিশেষত, আপনি মাইআইএসএএম এবং ইনোডিবি-র মধ্যে কীভাবে চয়ন করবেন, যখন দু'জনেরই কোনও প্রয়োজনীয় বৈশিষ্ট্য নেই (যেমন আপনার বিদেশী কীগুলির দরকার নেই)।

এটি সর্বদা চেষ্টা এবং পরিমাপ উভয়ই নেমে আসে? বা পাঠ্য বনাম লেখার সংখ্যা এবং ফ্রিকোয়েন্সি এবং এর মতো অন্যান্য ব্যবস্থা সম্পর্কে কি থাম্বের ভাল নিয়ম রয়েছে? টেবিলের আকারের কি সাধারণ পছন্দটিতে কোনও প্রভাব আছে?

উত্তর:


6

উত্তরটি হ'ল আপনার সর্বদা পরিমাপ করা উচিত, যদি সম্ভব হয় তবে নিজের নিজের ডেটা এবং কাজের চাপ দিয়ে।

যেহেতু ডেটা অ্যাক্সেসের ধরণগুলি অ্যাপ্লিকেশন থেকে অ্যাপ্লিকেশনটিতে ব্যাপকভাবে পরিবর্তিত হতে পারে, তাই বলা শক্ত এবং সমস্ত কাজের চাপের জন্য একটি "সেরা" স্টোরেজ ইঞ্জিন নির্ধারণ করা অসম্ভব।

যাইহোক, মাইএসকিউএল স্পেসে গত সপ্তাহে মাইএসকিউএলফ / পারকোনা পারফরম্যান্স কনফারেন্সে অংশ নেওয়া খুব উত্সাহজনক উন্নয়ন ঘটেছে।

কিছু বিকল্প স্টোরেজ ইঞ্জিন:

  1. XtraDB (InnoDB এর কাঁটাচামচ)
  2. InnoDB প্লাগইন
  3. PBXT
  4. TokuDB

অতিরিক্তভাবে, পারকোনা, গুগল ইত্যাদি প্যাচগুলি অবদান রেখেছে যা InnoDB পারফরম্যান্সে ব্যাপক সহায়তা করে। ব্যক্তিগতভাবে, আমি একটি আওয়ারডেল্টা বিল্ড পরিচালনা করি। এটি আমার পক্ষে দুর্দান্তভাবে কাজ করে এবং আমি আওয়ারডেল্টা এবং পারকোনা বিল্ডগুলি খুঁজে বার করতে উত্সাহিত করি।


আপনি যদি মানদণ্ডে আগ্রহী হন, সিস্বেঞ্চ বা আইবেঞ্চ চেষ্টা করুন।
জৌদার হো

বিকল্প স্টোরেজ ইঞ্জিনগুলির মধ্যে কি কোনওগুলি পর্যাপ্ত স্থিতিশীল যে তারা কোনও প্রোডাকশন সাইটের জন্য উপযুক্ত?
টনি মায়ার

ডন ম্যাকএকসিল XtraDB প্রযোজনায় রাখার দিকে তাকিয়ে আছেন। YMMV।
জাউদার হো

পারফরম্যান্স একমাত্র প্রয়োজন নয় - পাশাপাশি অপারেশনাল সমস্যাগুলি বিবেচনা করুন (বাস্তবে তারা সাধারণত আমার অভিজ্ঞতায় আরও বেশি গুরুত্বপূর্ণ)
মার্কআর

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

5

যদি এটি কেবল একটি সাধারণ স্টোর / রিপোর্ট সিস্টেম হয় তবে আমি মাইএসএএম এর কাঁচা পারফরম্যান্সের জন্য ব্যবহার করি।

সারি-স্তর লকিংয়ের সুবিধা নিতে আমি প্রচুর লেখার সাথে একাধিক একযোগে প্রবেশের বিষয়ে উদ্বিগ্ন থাকলে আমি ইনোডিবি ব্যবহার করব।


1
যে কোনও কাজের চাপের সাথে মেশানো পঠন এবং লেখার জন্য ইনোডিবিই একমাত্র বিকল্প (এটি বর্তমানে শিপিং) is
ডেভ চেনি 10

4

বিভিন্ন মাইএসকিউএল ডাটাবেস ইঞ্জিনগুলির জন্য বেশ কয়েকটি মানদণ্ড রয়েছে। সেখানে একটি শালীন উপর MyISAM, InnoDB এবং ফ্যালকন তুলনা এক Percona মাইএসকিউএল পারফরমেন্স ব্লগ দেখুন এখানে

পূর্বোক্ত দুটি ইঞ্জিনের মধ্যে বিবেচনা করার জন্য অন্য একটি জিনিস (মাইআইএসএএম এবং ইনোডিবি) হ'ল লক করার ক্ষেত্রে তাদের পদ্ধতি। মাইআইএসএএম টেবিল-লকিং সম্পাদন করে, যখন ইনোডিবি সারি-লকিং সম্পাদন করে। বিবেচনা করার মতো বিভিন্ন বিষয় রয়েছে, কেবল নিখরচায় পারফরম্যান্সের পরিসংখ্যানই নয়।


4

এমন কিছু বৈশিষ্ট্য রয়েছে যা অপারেশনাল কারণে আপনি খুব কার্যকর খুঁজে পাবেন, এমনকি যদি আপনার অ্যাপ্লিকেশনটির একেবারে প্রয়োজন না হয়:

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

বিদেশী কী বাধা সত্ত্বেও, আপনি সম্ভবত যাইহোক InnoDB ব্যবহার করতে চান।

অবশ্যই এটি সার্ভারফল্ট, স্ট্যাক ওভারফ্লো নয়, তাই সঠিক উত্তরটি হ'ল:

  • অ্যাপ্লিকেশন বিকাশকারীরা যে ইঞ্জিনটি বেছে নিয়েছে তা আপনাকে অবশ্যই সর্বদা ব্যবহার করতে হবে
  • যদি তারা একটি নির্দিষ্ট ইঞ্জিন না চয়ন করে থাকে তবে তারা মাইএসকিউএল ব্যবহার সম্পর্কে খুব সিরিয়াস নন এবং সম্ভবত এটি সঠিকভাবে কীভাবে ব্যবহার করবেন তা জানেন না।
  • আপনি যে অ্যাপ্লিকেশনটিতে পরীক্ষা করেছিলেন সেটিতে আপনি আলাদা ইঞ্জিনে স্যুইচ করতে পারবেন না, এটি বাগগুলি প্রবর্তন করতে পারে।

2
আপনি কি সত্যিই মনে করেন যে ডেটাবেস ইঞ্জিনটি বিকাশকের সিদ্ধান্ত, প্রশাসকদের নয়? বিকাশকারী হিসাবে, আমি বলতে চাই "আমার কাছে এই ডেটা রয়েছে, আমি এটি দিয়ে এটি করব", এবং ডেটাবেসটির অপ্টিমাইজিং (এবং ব্যাকআপ, এবং ...) প্রশাসকের কাছে ছেড়ে দিন।
টনি মায়ার

1
হ্যাঁ, বিকাশকারীকে একটি নির্দিষ্ট ইঞ্জিনের বিপরীতে তাদের অ্যাপ্লিকেশনটি বিকাশ এবং পরীক্ষা করতে সক্ষম হতে হবে; তারা কার্যকরীভাবে এবং পারফরম্যান্সে উভয়ই আলাদাভাবে আচরণ করে।
মার্কআর

2

আমার হোস্টিং সরবরাহকারী আমাদের মাইআইএসএএম সম্পূর্ণরূপে মুক্তি এবং ইনোএনডিবিতে স্যুইচ করার পরামর্শ দিয়েছেন, যদি না এটি সম্ভব না হয়।

আমাদের ক্ষেত্রে আমাদের মধ্যে প্রচুর ডেটা দুর্নীতি হয়েছিল যা প্রতিদিন কয়েকবার থেকে কয়েকবার পর্যন্ত দেখা শুরু হয়েছিল, সর্বদা মেরামত টেবিল এবং সম্পর্কিত কমান্ডের প্রয়োজন হয়, যা বড় টেবিলে যুগে যুগে লেগেছিল।

একবার আমরা InnoDB এ রূপান্তরিত (বা: রূপান্তরিত হয়েছিল), তাত্ক্ষণিকভাবে সমস্যাগুলি চলে যায়। ডাউনসাইড / ক্যাভেটস আমাদের ছিল:

  • ফুল টেক্সট সূচকের সাথে টেবিলগুলি রূপান্তর করতে পারে না (এই সমস্যাটি সময়ের সাথে সাথে চলে গেছে; এটি সলারের / লুসিন ভিত্তিক সমাধান দ্বারা প্রতিস্থাপন করা হয়েছে যা যাইহোক আরও ভাল মানের রয়েছে)
  • সারি যা প্রায়ই COUNT টি (*) ছিল প্রয়োজন লক্ষ লক্ষ সঙ্গে বিগ টেবিল খুব ধীর, আমরা সেইসব পারেন স্যুইচ করতে সক্ষম ছিল না।

তবে দ্রষ্টব্য: এটি আমাদের পরিবেশ ইত্যাদির জন্য নির্দিষ্ট, তাই এটি সাধারণত প্রয়োগ হয় না generally


কেবলমাত্র সারণী থেকে গণনা নির্বাচন করুন ( ) মাইআইএসএএম-তে দ্রুত। সারণী থেকে গণনা নির্বাচন করুন ( ) যেখানে মাইআইএসএএম এবং ইনোডিবি উভয় ক্ষেত্রে কলাম = মানটির সমান পারফরম্যান্স রয়েছে। mysqlperformanceblog.com/2006/12/01/count-for-innodb-tables
sumar
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.