মাইএসকিউএল কার্যকরভাবে 64 জিবি র‌্যামের সুবিধা নিতে পারে?


22

আমরা এমন একটি সমস্যায় পড়ে যাচ্ছি যেখানে প্রায় ৫০ মিলিয়ন সারি রয়েছে এমন একটি টেবিলটি জিজ্ঞাসা করা হচ্ছে, এবং ডাটাবেস সার্ভারের অদলবদল মেমরির ফলস্বরূপ এবং 4 গিগাবাইটের একটি সূচী আকার (প্রায় 6 গিগাবাইটের টেবিলের আকার) রয়েছে এবং নাটকীয়ভাবে ধীর হয়ে যায়। আমি বেশ নিশ্চিত যে এটি টেম্প টেবিলের আকারটি অতিক্রম করে এবং এটি ডিস্কে সরে যায় with

যদি আমি আমার ডাটাবেস সার্ভারটি 32 গিগাবাইট র‌্যাম থেকে 64 গিগাবাইট র‌্যামে আপগ্রেড করি তবে আমি ভাবছি যে মাইএসকিউএল ডাটাবেসটি এই অতিরিক্ত মেমরির পুরোপুরি সুবিধা নিতে সক্ষম হবে এবং অদলবদল করবে না। আমি কয়েকটি ভেরিয়েবল (উদাহরণস্বরূপ KEY_BUFFER_SIZE, ইত্যাদি ...) পেরিয়েছি এবং তারা 64৪ জিবি-র উপরে মান নির্ধারণকে সমর্থন করে বলে মনে হচ্ছে। তবে মাইএসকিউএল ডকুমেন্টেশন বলছে যে tmp_table_size সর্বোচ্চ 4 গিগাবাইটে বেরিয়ে আসে।

সুতরাং মেমরি আপগ্রেড এর মূল্য হবে? "ক্যোয়ারিং-লার্জ-টেবিল" সমস্যাটি কি এতে উপকৃত হবে, বা 4 জিবি সীমাবদ্ধতার কারণে এটি কোনও উপকারে আসবে না? আমি জানি যে সম্ভাব্যভাবে অন্যান্য সমাধান রয়েছে যেমন টেবিলটিকে বিভিন্ন উপায়ে ভাগ করার জন্য পুনর্গঠন করা ইত্যাদি ইত্যাদি ... তবে টেবিলটি সম্পর্কে কোনও পরিবর্তন না করে অতিরিক্ত মেমরি সাহায্য করবে?

এছাড়াও, সাধারণভাবে, মাইএসকিউএল 32 থেকে 64 জিবি র‌্যামে স্থানান্তরিত করার সময় মাইএসকিউএল সুবিধা নিতে সক্ষম হবে না?

আমরা আমাদের ডাটাবেস সার্ভার হিসাবে 64 বিট লিনাক্স (উবুন্টু) ব্যবহার করছি।

ধন্যবাদ, গ্যালেন

উত্তর:


5

আপনি যদি InnoDB ব্যবহার করছেন তবে সেট করার জন্য সবচেয়ে গুরুত্বপূর্ণ ভেরিয়েবল innodb_buffer_pool_size। আমি এটি আপনার সিস্টেমের মেমরির প্রায় 80% এ সেট করব। একবার আপনি কিছু ব্যবহারের পরে উষ্ণ হয়ে উঠলে আপনার সর্বাধিক সক্রিয় ডেটা (ওয়ার্কিং ডেটা সেট) মেমরিতে থাকবে (ইনোডাব_বফার_পুল_সাইজ) এবং এতে আপনার ক্রিয়াকলাপগুলি খুব দ্রুত হওয়া উচিত। GB৪ জিবি মেমরির সাহায্যে আপনি অবশ্যই সেখানে প্রচুর পরিমাণে ফিট করতে পারেন। স্মৃতি সর্বদা ডিবি সার্ভারগুলির জন্য একটি ভাল ক্রয়।


11

হ্যাঁ - আপনি যদি ইনোডিবি ব্যবহার করেন এবং পাঠ্য-নিবিড় কাজের চাপ রাখেন তবে আপনি অবশ্যই প্রচুর পরিমাণে র‌্যামের সুবিধা নিতে পারবেন [আপনার ডেটা সেটটি মেমের সাথে মাপসই করা হবে - আপনার সার্ভারটি জ্বলজ্বল-জ্বলজ্বল হবে]]

আমি মেমরিতে ওয়ার্কিং সেট ফিটিংয়ের সাথে 8-16 জিবি সার্ভারে ইনোডিবি স্টোরেজ সহ মাইএসকিউএল ব্যবহার করছি।


এখানেও একই - আমরা 64 জিবি বাক্সগুলিতে ইনোডিবি চালাই এবং এটি দুর্দান্ত।
জেমস

9

সম্ভবত এটি মেমরির উপর অর্থ ব্যয় করার আগে সিস্টেমটি কীভাবে অদলবদল হচ্ছে তা গবেষণায় কিছুটা অতিরিক্ত সময় এবং প্রচেষ্টা করা উপযুক্ত হবে?

32 গিগাবাইট মেমরি পুরো টেবিল, সূচক এবং সর্বাধিক টেম্প_সটকে মেমরিতে লোড করার পরেও প্রচুর উপলভ্য মেমরি ছেড়ে দেয়। একটি দ্রুত অনুসন্ধান এই দুটি ডকুমেন্টেশনের টুকরো নিয়ে এসেছিল যা প্রাসঙ্গিক হতে পারে:


0

যদি আপনি মনে করেন এটি খুব বড় টেম্প টেবিল তৈরি হওয়ার কারণে হয়েছে, আপনি অস্থায়ী টেবিলগুলি এড়াতে কোয়েরিতে কী কী উন্নতি করতে পারেন সেগুলি বিবেচনা করতে পারেন।

আপনি স্ট্যাকওভারফ্লোতে স্কিমা, ক্যোয়ারী, ব্যাখ্যা পরিকল্পনা এবং সমস্যাটির জন্য কিছু বিশদ সম্বলিত একটি পোস্ট পোস্ট করতে পারেন।

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