মাইএসকিউএল-তে ভর্চার এবং চরের মধ্যে পার্থক্য কী?
আমি এমডি 5 হ্যাশগুলি সংরক্ষণ করার চেষ্টা করছি।
মাইএসকিউএল-তে ভর্চার এবং চরের মধ্যে পার্থক্য কী?
আমি এমডি 5 হ্যাশগুলি সংরক্ষণ করার চেষ্টা করছি।
উত্তর:
VARCHAR
পরিবর্তনশীল দৈর্ঘ্য।
CHAR
দৈর্ঘ্য স্থির।
আপনার বিষয়বস্তু যদি স্থির আকার হয় তবে আপনি আরও ভাল পারফরম্যান্স পাবেন CHAR
।
বিস্তারিত ব্যাখ্যার জন্য CHAR এবং VARCHAR প্রকারের মাইএসকিউএল পৃষ্ঠাটি দেখুন (মন্তব্যগুলিও অবশ্যই পড়ুন)
Values in VARCHAR columns are variable-length strings. The length can be specified as a value from 0 to 255 before MySQL 5.0.3, and 0 to 65,535 in 5.0.3 and later versions.
CHAR Vs VARCHAR
CHAR স্থির দৈর্ঘ্যের আকারের
জন্য ব্যবহৃত হয় চলক দৈর্ঘ্যের আকারের পরিবর্তনশীল জন্য VARCHAR ব্যবহৃত হয়।
যেমন
Create table temp
(City CHAR(10),
Street VARCHAR(10));
Insert into temp
values('Pune','Oxford');
select length(city), length(street) from temp;
আউটপুট হবে
length(City) Length(street)
10 6
উপসংহার: স্টোরেজ স্পেসটি দক্ষতার সাথে ব্যবহারের জন্য ভেরিয়েবলের দৈর্ঘ্য পরিবর্তনশীল হলে পরিবর্তে CHAR ব্যবহার করতে হবে
একটি CHAR(x)
কলামে ঠিক x
অক্ষর থাকতে পারে।
একটি VARCHAR(x)
কলাম থাকতে পারে আপ x
অক্ষর।
যেহেতু আপনার এমডি 5 হ্যাশগুলি সর্বদা একই আকারের হবে, আপনার সম্ভবত একটি ব্যবহার করা উচিত CHAR
।
তবে, আপনাকে প্রথমে এমডি 5 ব্যবহার করা উচিত নয়; এটি দুর্বলতাগুলি জানে।
পরিবর্তে SHA2 ব্যবহার করুন।
যদি আপনি পাসওয়ার্ডগুলি হ্যাশ করে থাকেন তবে আপনার বিসিপি ব্যবহার করা উচিত।
মাইএসকিউএল-তে ভর্চার এবং চরের মধ্যে পার্থক্য কী?
ইতিমধ্যে প্রদত্ত উত্তরের জন্য আমি যুক্ত করতে চাই যে ওলটিপি সিস্টেমে বা নিয়মিত সিস্টেমে ঘন ঘন আপডেটগুলি আপডেটের সময় CHAR
সম্ভাব্য VARCHAR
কলাম বিভাজনের কারণে এমনকি পরিবর্তনশীল আকারের কলামগুলির জন্য ব্যবহার বিবেচনা করে ।
আমি এমডি 5 হ্যাশগুলি সংরক্ষণ করার চেষ্টা করছি।
সুরক্ষা সত্যিই গুরুত্বপূর্ণ যদি MD5 হ্যাশ সেরা পছন্দ নয়। তবে, আপনি যদি কোনও হ্যাশ ফাংশন ব্যবহার করেন, BINARY
পরিবর্তে এর জন্য টাইপ বিবেচনা করুন (যেমন MD5 16 বাইট হ্যাশ তৈরি করবে, তাই হেক্স অঙ্কগুলি উপস্থাপনকারী 32 টি অক্ষরের BINARY(16)
পরিবর্তে যথেষ্ট হবে CHAR(32)
This এটি আরও স্থান সাশ্রয় করবে এবং কার্যকারিতা কার্যকর হবে)।
বর্ণচক্র ঘোষিত দৈর্ঘ্যের চেয়ে কম হলে প্রচ্ছন্ন স্থানগুলি কেটে দেয়, যখন চরটি হবে না। চর স্পেস প্যাড করবে এবং সর্বদা ঘোষিত দৈর্ঘ্যের দৈর্ঘ্য হবে। দক্ষতার দিক থেকে, বর্ণচর আরও পারদর্শী কারণ এটি আরও সমন্বয় করার জন্য অক্ষরকে ছাঁটাই করে। তবে আপনি যদি চরের সঠিক দৈর্ঘ্য জানেন তবে চরটি আরও কিছুটা গতিতে চালিত হবে।
বর্তমানে বেশিরভাগ আরডিবিএমএসে এগুলি প্রতিশব্দ। তবে যে সমস্ত সিস্টেমে এখনও পার্থক্য রয়েছে, তাদের জন্য একটি CHAR ক্ষেত্র একটি নির্দিষ্ট-প্রস্থের কলাম হিসাবে সংরক্ষণ করা হয়। যদি আপনি এটিকে CHAR (10) হিসাবে সংজ্ঞায়িত করেন, তবে টেবিলে 10 টি অক্ষর লেখা হয়, যেখানে "প্যাডিং" (সাধারণত স্পেসস) ডেটা ব্যবহার না করে এমন কোনও স্থান পূরণ করতে ব্যবহৃত হয়। উদাহরণস্বরূপ, "বব" সংরক্ষণ করা ("বব" +7 স্পেস) হিসাবে সংরক্ষণ করা হবে। একটি ভর্চার (ভেরিয়েবল ক্যারেক্টার) কলাম বলতে বোঝায় যে কোনও CHAR কলামের অতিরিক্ত স্থান নষ্ট না করে ডেটা সঞ্চয় করা।
সর্বদা হিসাবে, উইকিপিডিয়া আরও জোরে কথা বলে।
CHAR একটি নির্দিষ্ট দৈর্ঘ্যের ক্ষেত্র; VARCHAR একটি পরিবর্তনশীল দৈর্ঘ্যের ক্ষেত্র। আপনি যদি নামের মতো বুননীয় পরিবর্তনশীল দৈর্ঘ্যের সাথে স্ট্রিংগুলি স্টোর করে রাখেন, তবে একটি VARCHAR ব্যবহার করুন, যদি দৈর্ঘ্য সর্বদা একই থাকে তবে একটি CHAR ব্যবহার করুন কারণ এটি কিছুটা বেশি আকারের দক্ষ এবং কিছুটা দ্রুতও।
CHAR নির্ধারিত দৈর্ঘ্য এবং VARCHAR পরিবর্তনশীল দৈর্ঘ্য। CHAR সর্বদা এন্ট্রি প্রতি একই পরিমাণ স্টোরেজ স্পেস ব্যবহার করে, যখন VARCHAR কেবল আসল পাঠ্য সংরক্ষণের জন্য প্রয়োজনীয় পরিমাণ ব্যবহার করে।
চরটি একটি স্থির দৈর্ঘ্যের অক্ষর ডেটা টাইপ, বর্ণচর একটি পরিবর্তনশীল দৈর্ঘ্যের অক্ষর ডেটা টাইপ।
চরটি একটি স্থির দৈর্ঘ্যের ডেটা ধরণের হওয়ায়, এই কলামটির জন্য চরের মান সঞ্চয়স্থানের আকার সর্বাধিক আকারের সমান। যেহেতু বার্চর একটি পরিবর্তনশীল-দৈর্ঘ্যের ডেটা ধরণের, তাই ভার্চার মানের স্টোরেজ আকারটি প্রবেশ করা তথ্যের প্রকৃত দৈর্ঘ্য, এই কলামটির সর্বোচ্চ আকার নয়।
আপনি কলের ব্যবহার করতে পারেন যখন কোনও কলামে ডেটা এন্ট্রি একই আকারের প্রত্যাশিত হয়। যখন কোনও কলামে ডেটা এন্ট্রিগুলি আকারে যথেষ্ট পরিমাণে পৃথক হবে বলে আশা করা হয় আপনি বার্চর ব্যবহার করতে পারেন।
হাই পারফরম্যান্স মাইএসকিউএল বই অনুসারে :
VARCHAR ভেরিয়েবল-দৈর্ঘ্যের অক্ষরের স্ট্রিংগুলি সংরক্ষণ করে এবং এটি সর্বাধিক সাধারণ স্ট্রিং ডেটা টাইপ। এটির জন্য স্থির দৈর্ঘ্যের ধরণের চেয়ে কম সঞ্চয় স্থান প্রয়োজন হতে পারে, কারণ এটি কেবলমাত্র তার প্রয়োজনীয় স্থানটি ব্যবহার করে (যেমন, সংক্ষিপ্ত মান সংরক্ষণের জন্য কম স্থান ব্যবহৃত হয়)। ব্যতিক্রমটি ROW_FORMAT = FIXED দিয়ে তৈরি একটি মাইআইএসএএম টেবিল, যা প্রতিটি সারির জন্য ডিস্কে একটি নির্দিষ্ট পরিমাণ স্থান ব্যবহার করে এবং এভাবে স্থান নষ্ট করতে পারে। VARCHAR পারফরম্যান্সে সহায়তা করে কারণ এটি স্থান সংরক্ষণ করে।
CHAR স্থির দৈর্ঘ্য: মাইএসকিউএল সর্বদা নির্দিষ্ট বর্ণের সংখ্যার জন্য পর্যাপ্ত স্থান বরাদ্দ করে। একটি CHAR মান সংরক্ষণ করার সময়, মাইএসকিউএল যে কোনও পিছনের স্থান সরিয়ে দেয়। (এটি মাইএসকিউএল ৪.১-এ এবং মার্চীন সংস্করণগুলিতেও সত্য ছিল and CHAR এবং VAR CHAR যৌক্তিকরূপে অভিন্ন ছিল এবং কেবলমাত্র স্টোরেজ ফর্ম্যাটেই পৃথক ছিল Values) তুলনা করার জন্য প্রয়োজনীয় মূল্যবোধগুলি ফাঁকা জায়গায় প্যাড করা হয়।
VARCHAR
গতিশীলভাবে মেমরির বরাদ্দ করা দরকার এবং যখন প্রয়োজন হয় ঠিক তখন বিপরীতে কর্মক্ষমতা হ্রাস করতে হয় CHAR
?
চর বা বার্চার- এটি টেক্সচুয়াল ডেটা প্রবেশের জন্য ব্যবহৃত হয় যেখানে বন্ধনীতে দৈর্ঘ্য নির্দেশ করা যেতে পারে যেমন- নাম চর (20)
(
এবং )
বন্ধনী নয়, বন্ধনী নয়।
(
এবং )
বন্ধনীগুলি, এবং অনেক ব্রিটিশ সম্ভবত এও বুঝতে পারে না যে ইংরেজির উপভাষাগুলি রয়েছে যেখানে "বন্ধনী" শব্দটি একটি বিরাম চিহ্নকে বোঝাতে পারে। "বন্ধনী" থেকে "বন্ধনী" পছন্দ করার জন্য একটি শক্তিশালী কেস তৈরি করা দরকার - এটি সম্ভবত ভারসাম্যের ভিত্তিতে প্রোগ্রামারদের আন্তর্জাতিক শ্রোতাদের লক্ষ্য করার সময় সর্বাধিক স্পষ্ট বিকল্প - তবে "বন্ধনী" ঠিক ভুল হওয়ার চেয়ে এটি আরও জটিল কেস।