নোড_স্যাভ () এর অদক্ষতা নিয়ে আমার অনেক সমস্যা হচ্ছে। তবে নোড কি আমার সমস্যা বাঁচায়? এটিই আমি শেষ পর্যন্ত অনুসন্ধান করার চেষ্টা করছি।
আমি 100,000 পুনরাবৃত্তি সহ একটি লুপ তৈরি করেছি। নোড অবজেক্টটি বৈধ হওয়ার জন্য এবং সঠিকভাবে সংরক্ষণ করার জন্য আমি বেয়ার ন্যূনতম তৈরি করেছি। এখানে নোড সেভ কোড:
$node = new stdClass();
$node->type = "test_page";
node_object_prepare($node);
$node->uid = 1;
$node->title = $node_title;
$node->status = 1;
$node->language = LANGUAGE_NONE;
if($node = node_submit($node)){
node_save($node);
}
ফলাফল এখানে:
100,000 নোড সংরক্ষণ করা হয়েছিল, প্রতিটি নোড_সেস () ব্যবহার করে। এটি সম্পূর্ণ হতে 5196.22 সেকেন্ড সময় নিয়েছে। এটি কেবলমাত্র 19 টি একটি সেকেন্ড সঞ্চয় করে।
মোটামুটি বলতে গেলে এটি গ্রহণযোগ্য নয়, বিশেষত যখন এই ব্যক্তি প্রতি সেকেন্ডে প্রায় 1200 স্বতন্ত্র সন্নিবেশ অনুসন্ধানগুলি পাচ্ছেন এবং এই ব্যক্তি প্রতি সেকেন্ডে 25,000 সন্নিবেশ পাচ্ছেন ।
তো, এখানে কি চলছে? বাধা কোথায়? এটি কি নোড_সেভ () ফাংশন সহ এবং এটি কীভাবে ডিজাইন করা হয়েছে?
এটা কি আমার হার্ডওয়্যার হতে পারে? আমার হার্ডওয়্যার একটি ডেভলপমেন্ট সার্ভার, এটি ছাড়া আমার ব্যতীত আর কেউ নেই - ইন্টেল ডুয়াল কোর, 3 জিএইচজেড, উবুন্টু 12.04 16 গিগ র্যাম সহ।
যখন লুপটি চালিত হয় আমার সংস্থান ব্যবহারগুলি: মাইএসকিউএল 27% সিপিইউ, 6 এম র্যাম; পিএইচপি 22% সিপিইউ 2 এম র্যাম।
আমার মাইএসকিএল কনফিগারেশনটি পেরকোনা উইজার্ড দ্বারা সম্পন্ন হয়েছিল ।
মাইএসকিএল বলেছে যে আমার সিপিইউ ব্যবহার যদি 70% এর নিচে হয় তবে আমার সমস্যাটি ডিস্কের সাথে সীমাবদ্ধ । মঞ্জুর, আমার কাছে কেবল মিল ডাব্লুডি ক্যাভিয়ার 7200 আরপিএম আছে, তবে আমার 19 টিরও বেশি সেকেন্ড পাওয়া উচিত এটির সাথে আমি আশা করি!
খুব বেশি দিন আগে আমি একদিনে 30,000 নোড সংরক্ষণ করার বিষয়ে লিখেছিলাম । তবে, স্পষ্ট করে বলতে গেলে, এই নোডের কোনও বাহ্যিক শক্তির সাথে কোনও সম্পর্ক নেই। নোড_সেভ () এ কল করার গতি কীভাবে বাড়ানো যায় সে সম্পর্কে শিখতে নিখুঁতভাবে এটি একটি মানদণ্ড।
বাস্তবিকভাবে, আমার নোড_সেভ ব্যবহার করে প্রতি মিনিটে 30,000 আইটেমটি ডাটাবেসে পাওয়া দরকার। নোড সেভ যদি কোনও বিকল্প না হয় তবে আমি অবাক হয়েছি যে আমি নিজের ড্রুপাল এপিআই ফাংশন "নোড_ব্যাচ_স্যাভ ()" বা এমন কিছু লিখতে পারি যা INSERT ক্যোয়ারির সাথে বাল্ক সন্নিবেশগুলি করার জন্য মাইএসকিএল-এর ক্ষমতা গ্রহণ করে । কিভাবে এই সম্পর্কে চিন্তাভাবনা?