sql - VARCHAR এবং CHAR মধ্যে পার্থক্য কি?




mysql (10)

MySQL মধ্যে VARCHAR এবং CHAR মধ্যে পার্থক্য কি?

ইতিমধ্যে উত্তর দেওয়ার জন্য আমি OLTP সিস্টেমে বা ঘন ঘন আপডেটগুলির সাথে সিস্টেমগুলিকে যোগ করতে চাই যে আপডেটের সময় VARCHAR কলামের বিভাজন সম্ভব হওয়ার কারণে CHAR ব্যবহার করে ভেরিয়েবল সাইজ কলামের জন্য বিবেচনা করুন।

আমি MD5 হ্যাশ সংরক্ষণ করার চেষ্টা করছি।

নিরাপত্তা সত্যিই গুরুত্বপূর্ণ যদি MD5 হ্যাশ সেরা পছন্দ নয়। যাইহোক, যদি আপনি কোন হ্যাশ ফাংশন ব্যবহার করেন তবে পরিবর্তে এটির জন্য BINARY টাইপ বিবেচনা করুন (উদাহরণস্বরূপ MD5 16-বাইট হ্যাশ তৈরি করবে, তাই BINARY(16) CHAR(32) পরিবর্তে 32 অক্ষরের জন্য হ্যাক সংখ্যাগুলি উপস্থাপন করে যথেষ্ট হবে। আরো স্থান এবং কার্যকর কর্মক্ষমতা হতে।

MySQL মধ্যে VARCHAR এবং CHAR মধ্যে পার্থক্য কি?

আমি MD5 হ্যাশ সংরক্ষণ করার চেষ্টা করছি।


CHAR

  1. নির্দিষ্ট দৈর্ঘ্যের অক্ষর স্ট্রিং মান সংরক্ষণ করতে ব্যবহৃত হয়।
  2. সর্বোচ্চ সংখ্যা। ক্যারেক্টারের ডাটা টাইপ 255 অক্ষর ধরে রাখতে পারে।
  3. এটি VARCHAR এর চেয়ে 50% দ্রুত
  4. স্ট্যাটিক মেমরি বরাদ্দ ব্যবহার করে।

VARCHAR

  1. পরিবর্তনশীল দৈর্ঘ্য আলফানিউমেরিক তথ্য সংরক্ষণ করতে ব্যবহৃত হয়।
  2. সর্বোচ্চ এই তথ্য টাইপ ধরে রাখতে পারেন
    • প্রাক-মাইএসকিউএল 5.0.3: 255 অক্ষর
    • পোস্ট-মাইএসকিউএল 5.0.3: 65,535 অক্ষর সারির জন্য ভাগ করা হয়েছে।
  3. এটা CHAR চেয়ে ধীর
  4. গতিশীল মেমরি বরাদ্দ ব্যবহার করে *

CHAR স্থির দৈর্ঘ্য এবং VARCHAR পরিবর্তনশীল দৈর্ঘ্য হয়। CHAR সর্বদা একই এন্ট্রি প্রতি স্টোরেজ স্পেস ব্যবহার করে, যখন VARCHAR শুধুমাত্র প্রকৃত পাঠ্য সঞ্চয় করতে প্রয়োজনীয় পরিমাণ ব্যবহার করে।


একটি CHAR(x) কলামটি অবশ্যই ঠিক x অক্ষর থাকতে পারে।
একটি VARCHAR(x) কলামে x অক্ষর থাকতে পারে।

যেহেতু আপনার MD5 হ্যাশ সবসময় একই আকারের হবে, আপনি সম্ভবত একটি CHAR ব্যবহার করা উচিত।

যাইহোক, আপনি প্রথম স্থানে MD5 ব্যবহার করা উচিত নয়; এটা দুর্বলতা পরিচিত হয়েছে।
পরিবর্তে SHA2 ব্যবহার করুন।
আপনি যদি পাসওয়ার্ড হাশিং করতে থাকেন তবে আপনাকে bcrypt ব্যবহার করতে হবে।


চর বা ভার্চার- এটি তাত্ক্ষণিক ডেটাতে প্রবেশ করার জন্য ব্যবহৃত হয় যেখানে দৈর্ঘ্যটি বন্ধনীগুলিতে নির্দেশিত করা যেতে পারে যেমন Eg-name char (20)


চার্চ ভি

চার্চ স্থায়ী দৈর্ঘ্য আকার পরিবর্তনশীল জন্য ব্যবহৃত হয়
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

উপসংহার: পরিবর্তনশীল দৈর্ঘ্য পরিবর্তনশীল যদি পরিবর্তে স্টোরেজ স্পেস ব্যবহার করার জন্য VARCHAR ব্যবহার করা আবশ্যক


বেশিরভাগ RDBMSs আজ, তারা প্রতিশব্দ। তবে যে সিস্টেমগুলিতে এখনও কোন পার্থক্য রয়েছে, তার জন্য একটি CHAR ক্ষেত্র একটি নির্দিষ্ট-প্রস্থ কলাম হিসাবে সংরক্ষণ করা হয়। আপনি যদি CHAR (10) হিসাবে এটি সংজ্ঞায়িত করেন তবে তারপরে 10 টি অক্ষর টেবিলে লেখা হয়, যেখানে "প্যাডিং" (সাধারণত স্পেসগুলি) কোনও ডেটা ব্যবহার না করে এমন কোনও স্থান পূরণ করতে ব্যবহৃত হয়। উদাহরণস্বরূপ, "bob" সংরক্ষণ করা হবে ("বব" +7 স্পেস) হিসাবে সংরক্ষণ করা হবে। একটি VARCHAR (পরিবর্তনশীল চরিত্র) কলাম একটি ChAR কলাম যে অতিরিক্ত স্থান নষ্ট না করে তথ্য সংরক্ষণ করতে বোঝানো হয়।

সর্বদা হিসাবে, Wikipedia জোরে কথা বলে।


হাই পারফরমেন্স মাইএসকিউএল বই অনুসারে:

VARCHAR ভেরিয়েবল-দৈর্ঘ্য অক্ষর স্ট্রিং সংরক্ষণ করে এবং সবচেয়ে সাধারণ স্ট্রিং ডেটা টাইপ। এটি স্থির-দৈর্ঘ্যের প্রকারের চেয়ে কম স্টোরেজ স্পেসের প্রয়োজন হতে পারে, কারণ এটি যতটা প্রয়োজন তা কেবলমাত্র এটি ব্যবহার করে (অর্থাত, ছোট স্থানগুলি সংরক্ষণ করার জন্য কম স্থান ব্যবহার করা হয়)। ব্যতিক্রমটি একটি MyISAM টেবিল যা ROW_FORMAT = FIXED দিয়ে তৈরি হয়েছে, যা প্রত্যেকটি সারির জন্য ডিস্কে স্থির পরিমাণ স্থির করে এবং এভাবে স্থান নষ্ট করে। VARCHAR কর্মক্ষমতা সাহায্য করে কারণ এটি স্থান সংরক্ষণ করে।

CHAR স্থির দৈর্ঘ্য: MySQL সর্বদা নির্দিষ্ট সংখ্যক অক্ষরের জন্য পর্যাপ্ত স্থান বরাদ্দ করে। একটি CHAR মান সংরক্ষণ করার সময়, MySQL যে কোনও পিছিয়ে থাকা স্থানগুলি সরিয়ে দেয়। (এটি MySQL 4.1 এবং পুরোনো সংস্করণগুলিতে VARCHAR- এর সত্য ছিল - CHAR এবং VAR CHAR যৌক্তিকভাবে অভিন্ন ছিল এবং কেবলমাত্র স্টোরেজ ফর্ম্যাটে বিভক্ত।) তুলনা করার জন্য প্রয়োজন অনুসারে মানগুলি প্যাড করা হয়।


VARCHAR পরিবর্তনশীল-দৈর্ঘ্য।

CHAR দৈর্ঘ্য নির্দিষ্ট করা হয়।

আপনার সামগ্রী একটি নির্দিষ্ট আকারের হয়, আপনি CHAR সঙ্গে ভাল কর্মক্ষমতা পাবেন।

বিস্তারিত বিবরণের জন্য CHAR এবং VARCHAR ধরনগুলিতে MySQL পৃষ্ঠাটি দেখুন (মন্তব্যগুলি পড়তে ভুলবেন না)।


CHAR:

  • অক্ষর এবং সংখ্যা উভয় সমর্থন করে।
  • 2000 অক্ষর সমর্থন করে।
  • নির্দিষ্ট দৈর্ঘ্যের.

VARCHAR:

  • অক্ষর এবং সংখ্যা উভয় সমর্থন করে।
  • সমর্থন 4000 অক্ষর।
  • পরিবর্তনশীল দৈর্ঘ্য.

কোন মন্তব্য......!!!!





mysql