আপনাকে অবশ্যই CHAR বনাম VARCHAR ব্যবহারের ট্রেড অফগুলি বুঝতে হবে
CHAR ক্ষেত্রের সাথে, আপনি যা বরাদ্দ করেন তা হ'ল যা আপনি পান। উদাহরণস্বরূপ, CHAR (15) 15 বাইট বরাদ্দ করে এবং সঞ্চয় করে, আপনি ক্ষেত্রের মধ্যে যতগুলি অক্ষর রাখেন তা নির্বিশেষে। স্ট্রিং ম্যানিপুলেশন সহজ এবং সোজা, যেহেতু ডেটা ক্ষেত্রের আকার সম্পূর্ণ অনুমানযোগ্য।
VARCHAR ক্ষেত্রগুলির সাথে, আপনি একটি সম্পূর্ণ আলাদা গল্প পাবেন। উদাহরণস্বরূপ, ভোরচার (১৫) আসলে ডাইনামিকভাবে 16 বাইট অবধি, ডেটার জন্য 15 অবধি এবং কমপক্ষে 1 অতিরিক্ত বাইট উপাত্তের দৈর্ঘ্য সংরক্ষণ করার জন্য বরাদ্দ করে। স্ট্রিংটিতে 'হ্যালো' স্টোর থাকলে have বাইট লাগবে, ৫ টি নয় St স্ট্রিং ম্যানিপুলেশন সর্বদা সব ক্ষেত্রে দৈর্ঘ্য পরীক্ষার কিছু ফর্ম করা উচিত।
আপনি দুটি কাজ করার সময় ট্রেডঅফটি আরও স্পষ্ট হয়:
১ লক্ষ বা বিলিয়ন বিলিয়ন সারিগুলি সংরক্ষণ করা
2. ইনচারেক্সিং কলামগুলি যা হয় চার বা ভ্রচার
ব্যবসায় # 1
স্পষ্টতই, ভেরচারের সুবিধা রয়েছে যেহেতু ভেরিয়েবল-দৈর্ঘ্যের ডেটা আরও কম সারি তৈরি করে এবং এভাবে ছোট্ট শারীরিক ফাইল তৈরি করে।
ব্যবসায় # 2
যেহেতু CHAR ক্ষেত্রগুলিকে স্থির ক্ষেত্রের প্রস্থের কারণে কম স্ট্রিং ম্যানিপুলেশন প্রয়োজন, তাই CHAR ক্ষেত্রের বিরুদ্ধে সূচকগুলি ভিউচআরআর ক্ষেত্রের তুলনায় গড়ে ২০% দ্রুত। এটি আমার পক্ষে কোনও অনুমান নয়। এটি প্রমাণ করার জন্য মাইএসকিউএল ডেটাবেস ডিজাইন এবং টিউনিং বইটি মাইআইএসএএম টেবিলে দুর্দান্ত কিছু সম্পাদন করেছে। বইয়ের উদাহরণ নীচের মত কিছু করেছে:
ALTER TABLE tblname ROW_FORMAT=FIXED;
এই নির্দেশিকা শক্তিগুলি CHARs হিসাবে আচরণ করার জন্য ভর্চার হয়। আমি 2007 সালে ফিরে আমার আগের কাজটিতে এটি করেছি এবং 300 গিগাবাইটের টেবিলটি নিয়েছি এবং অন্য কোনও পরিবর্তন ছাড়াই সূচী দৃষ্টিকোণ 20% বাড়িয়েছি। এটি প্রকাশিত হিসাবে কাজ করে। তবে এটি প্রায় দ্বিগুণ আকারের একটি টেবিল তৈরি করেছিল, তবে এটি কেবল ট্রেড অফ # 1 এ ফিরে যায়।
মাইএসকিউএল কলাম সংজ্ঞায়নের জন্য কী প্রস্তাব দেয় তা দেখতে আপনি সংরক্ষণ করা ডেটা বিশ্লেষণ করতে পারেন। যে কোনও টেবিলের বিরুদ্ধে কেবল নিম্নলিখিতটি চালান:
SELECT * FROM tblname PROCEDURE ANALYSE();
এটি পুরো টেবিলটি অতিক্রম করবে এবং এতে থাকা ডেটা, ন্যূনতম ক্ষেত্রের মান, সর্বাধিক ক্ষেত্রের মান এবং আরও কিছু উপর ভিত্তি করে প্রতিটি কলামের জন্য কলাম সংজ্ঞা প্রস্তাব করবে। কখনও কখনও, আপনাকে কেবল CHAR বনাম VARCHAR পরিকল্পনা করার সাথে সাধারণ জ্ঞান ব্যবহার করতে হবে। এখানে একটি ভাল উদাহরণ:
আপনি যদি আইপি ঠিকানাগুলি সঞ্চয় করে থাকেন তবে এই জাতীয় কলামের মুখোশ সর্বাধিক 15 টি অক্ষর (xxx.xxx.xxx.xxx)। আমি হার্টবিটটিতে ডানদিকে CHAR (15) এ ঝাঁপিয়ে পড়ব কারণ আইপি অ্যাড্রেসের দৈর্ঘ্য এত বেশি এবং অতিরিক্ত বাইট দ্বারা নিয়ন্ত্রিত স্ট্রিং ম্যানিপুলেশনের যুক্ত জটিলতা আলাদা হবে না। আপনি এখনও এই জাতীয় কলামের বিপরীতে একটি প্রক্রিয়া বিশ্লেষণ () করতে পারেন। এটি এমনকি VARCHAR সুপারিশ করতে পারে। আমার অর্থ এই মুহুর্তে ভ্রচারের তুলনায় CHAR এ থাকবে।
CHAR বনাম VARCHAR সমস্যাগুলি কেবল সঠিক পরিকল্পনার মাধ্যমে সমাধান করা যেতে পারে। দুর্দান্ত শক্তির সাথে মহান দায়িত্ব আসে (ক্লিচ তবে সত্য)