হালনাগাদ:
ইন MySQL
, এটি করার একটি কারণ থাকতে পারে।
যেহেতু ভেরিয়েবল ডেটাটাইপগুলি (যেমন VARCHAR
) এর মধ্যে ভেরিয়েবল দৈর্ঘ্যের সাথে সঞ্চিত থাকে InnoDB
তাই প্রদত্ত একটির অফসেট সন্ধানের জন্য ডাটাবেস ইঞ্জিনকে প্রতিটি সারিতে পূর্ববর্তী সমস্ত কলামগুলি অতিক্রম করতে হবে।
কলামগুলির জন্য প্রভাবটি 17% এর চেয়ে বড় হতে পারে 20
।
আরও বিস্তারিত জানার জন্য আমার ব্লগে এই এন্ট্রিটি দেখুন:
ইন Oracle
, পিছনে থাকা NULL
কলামগুলি কোনও স্থান খায় না, এজন্য আপনার সর্বদা সেগুলি টেবিলের শেষে রাখা উচিত।
এছাড়াও Oracle
এবং এর SQL Server
মধ্যেও, একটি বৃহত সারির ক্ষেত্রে, একটি ROW CHAINING
ঘটতে পারে।
ROW CHANING
একটি সারি বিভক্ত করা হচ্ছে যা একটি ব্লকের সাথে মানানসই নয় এবং এটি লিঙ্কযুক্ত তালিকার সাথে সংযুক্ত একাধিক ব্লকের উপর ছড়িয়ে পড়ে।
প্রথম ব্লকের সাথে মানানসই ট্রেলিং কলামগুলি পড়ার জন্য লিঙ্কযুক্ত তালিকায় ট্র্যাভারিংয়ের প্রয়োজন হবে, যার ফলে অতিরিক্ত I/O
ক্রিয়াকলাপ হবে।
দেখুন এই পৃষ্ঠার এর দৃষ্টান্তের জন্য ROW CHAINING
এ Oracle
:
এজন্য আপনার প্রায়শই ব্যবহার করা কলামগুলি টেবিলের শুরুতে রাখা উচিত এবং আপনি যে কলামগুলি প্রায়শই ব্যবহার করেন না সেগুলি বা NULL
টেবিলের শেষে থাকা কলামগুলি ব্যবহার করা উচিত ।
গুরুত্বপূর্ণ তথ্য:
আপনি যদি এই উত্তরটি পছন্দ করেন এবং এটির জন্য ভোট দিতে চান তবে দয়া করে তার @Andomar
উত্তরটির জন্যও ভোট দিন ।
তিনি একই উত্তর দিয়েছিলেন, তবে মনে হয় অকারণে তা হ্রাস পেয়েছে।