1. හැඳින්වීම
MySQL යනු බොහෝ වෙබ් යෙදුම් සහ දත්ත ගබඩා පද්ධතිවල පුළුල් ලෙස භාවිතා වන ජනප්රිය සම්බන්ධිත දත්ත ගබඩා කළමනාකරණ පද්ධතියකි. එහි දත්ත වර්ග අතර, INT වර්ගය සංඛ්යාත්මක අගයන් හසුරවීමට වඩාත්ම භාවිතා වන වර්ග之一 වේ. මෙම ලිපිය MySQL INT වර්ගය පිළිබඳ විස්තරාත්මක විවරණයක් ලබා දෙයි. විශේෂයෙන්, INT වර්ගය සහය දක්වන උපරිම අගයන් සහ එය කාර්යක්ෂමව භාවිතා කරන ආකාරය අපි පරීක්ෂා කරමු. මෙම ලිපිය කියවීමෙන්, MySQL හි INT වර්ගය නිසි ලෙස භාවිතා කිරීමට අවශ්ය දැනුම ඔබට ලැබේ.
2. INT වර්ගයේ මූලික විශේෂණාංග
INT හි උපරිම සහ අවම අගයන්
MySQL INT වර්ගය 4 බයිට් (32 බිට්) ගබඩා භාවිතා කරයි, එය ගබඩා කළ හැකි අගයන්ගේ පරාසය පහත පරිදි වේ:
- Signed (SIGNED) :
- අවම අගය: -2,147,483,648
- උපරිම අගය: 2,147,483,647
- Unsigned (UNSIGNED) :
- අවම අගය: 0
- උපරිම අගය: 4,294,967,295
INT හි ගබඩා ප්රමාණය
INT වර්ගය සෑම විටම 4 බයිට් ගබඩා භාවිතා කරයි. මෙම ප්රමාණය ගබඩා කරන අගය මත පදනම් නොවී ස්ථිර වේ. එබැවින්, ඔබට විශාල සංඛ්යා පරාසයක් හසුරවීමට අවශ්ය නොවේ නම්, කුඩා දත්ත වර්ග (උදාහරණයක් ලෙස TINYINT හෝ SMALLINT) භාවිතා කිරීම කාර්යක්ෂම වේ.
INT සඳහා භාවිතා කේස්
INT වර්ගය පහත සඳහන් අවස්ථා වල සාමාන්යයෙන් භාවිතා වේ:
- ස්වයං-ආරෝහණ අග (උදා. පරිශීලක ID, ඇණවුම් අංක)
- ගණනය හෝ සංඛ්යාත්මක සැකසුම් සඳහා භාවිතා වන පූර්ණ සංඛ්යා දත්ත (උදා. ගබඩා ප්රමාණ, ක්ලික් ගණන)
- නියමිත පරාසයක් තුළ නියමිත අගයන් (උදා. වයස හෝ පරීක්ෂණ ලකුණු)
මෙම භාවිතා කේස් වලදී, අවශ්ය සංඛ්යා පරාසය සහ මතක කාර්යක්ෂමතාවය සැලකිල්ලට ගැනීම වැදගත් වේ.
3. INT(M) හි M යනු කුමක්ද?
දර්ශන පළල (M) යනු කුමක්ද?
MySQL හි INT(M) හි M යනු “දර්ශන පළල” (display width) නමින් හැඳින්වේ. එය දත්ත ගබඩා කරන සැබෑ සංඛ්යාත්මක අගයට බලපාන්නේ නැත; ඒ වෙනුවට, අගය ප්රදර්ශනය වන විට එය කොපමණ අක්ෂර පළලකින් පෙන්විය යුතුද යන්න නියම කරයි. උදාහරණයක් ලෙස, INT(5) ලෙස නිර්වචනය කර ඇත්නම්, සංඛ්යාව 5 අක්ෂර පළලකින් පෙන්වනු ලැබේ.
කෙසේ වෙතත්, දර්ශන පළල M එකට අර්ථයක් ඇති වන්නේ පහත අවස්ථාවල පමණි:
- ZEROFILL විකල්පය සක්රිය කර ඇති විට
- උදාහරණය:
INT(5) ZEROFILLයන විධානයේ, අගය123නම්, එය00123ලෙස පෙන්වනු ලැබේ.
ZEROFILL ගැන වැදගත් සටහන්
ZEROFILL විකල්පය භාවිතා කරන විට, පහත ලක්ෂණය පවතී:
- වම්පසින් ස්වයංක්රීයව ශූන්ය (0) අගයන් එක් කරයි.
UNSIGNEDගුණාංගය ස්වයංක්රීයව යෙදේ.
ඒ නිසා, ඔබට ඍණ අගයන් ගබඩා කිරීමට අවශ්ය නම්, ZEROFILL භාවිතා කළ නොහැක.
සාමාන්ය වැරදි අවබෝධයන් ඉවත් කිරීම
බොහෝ ආරම්භකයන් M එක උපරිම ගබඩා කළ හැකි අගය සීමා කරයි යැයි වැරදි ලෙස සිතති. නමුත්, M එක පමණක් දර්ශන ආකෘතියට බලපායි; එය සැබෑ ගබඩා පරාසයට කිසිදු බලපෑමක් නොකරයි.
4. වෙනත් පූර්ණ සංඛ්යා වර්ග සමඟ සංසන්දනය
පූර්ණ සංඛ්යා දත්ත වර්ග සහ ඒවායේ පරාස
MySQL පහත පූර්ණ සංඛ්යා වර්ග ලබා දේ:
| Type Name | Bytes | Signed Range | Unsigned Range |
|---|---|---|---|
| TINYINT | 1 byte | -128 to 127 | 0 to 255 |
| SMALLINT | 2 bytes | -32,768 to 32,767 | 0 to 65,535 |
| MEDIUMINT | 3 bytes | -8,388,608 to 8,388,607 | 0 to 16,777,215 |
| INT | 4 bytes | -2,147,483,648 to 2,147,483,647 | 0 to 4,294,967,295 |
| BIGINT | 8 bytes | -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 | 0 to 18,446,744,073,709,551,615 |
තෝරා ගැනීමේ මාර්ගෝපදේශ
දත්ත ගබඩා සැලසුම් කිරීමේදී, පහත මාර්ගෝපදේශ අනුව සුදුසු දත්ත වර්ගය තෝරන්න:
- පරාසය කුඩා නම්: මතකය සුරකින්න
TINYINTහෝSMALLINTභාවිතා කරන්න. - විශාල පරාසයක් අවශ්ය නම්:
BIGINTභාවිතා කරන්න. - සාමාන්ය-ඉලක්ක භාවිතය සඳහා:
INTසාමාන්යයෙන් සුදුසු වේ.
5. MySQL 8.0.17 සිට වෙනස්කම්
දර්ශන පළල (M) අහෝසි කිරීම
MySQL 8.0.17 ආරම්භයෙන්, පූර්ණ සංඛ්යා වර්ග සඳහා “දර්ශන පළල (M)” අහෝසි කර ඇත. මෙම වෙනස්කම ZEROFILL විකල්පය අහෝසි කිරීමත් සමඟ පැමිණි අතර, එය අනාගත MySQL අනුවාදවලින් ඉවත් කර දැමීමට ඉඩ ඇත.
දර්ශන පළල අහෝසි කිරීමේ හේතු පහත පරිදි වේ:
- අවබෝධයේ ගැටලු
* බොහෝ පරිශීලකයන්Mඑක උපරිම ගබඩා කළ හැකි අගය හෝ අංක ගණන සීමා කරයි යැයි වැරදි ලෙස සිතති. - ප්රායෝගික භාවිතය සීමිත
*Mඑක පමණක් දර්ශන ආකෘතිය පාලනය කළ නිසා, දැන් එම ආකෘතිය වැඩිහිටියෙන් යෙදුම් පාර්ශවයෙන් කළ හැකි අතර, එහි අවශ්යතාවය අඩු වී ඇත.
ZEROFILL අහෝසි කිරීම
The ZEROFILL විකල්පයද ඒම සංස්කරණයේ අහෝසි කරන ලදී. ZEROFILL ඉදිරිපස ශූන්ය (zero) සමඟ සංඛ්යා පූරණය කිරීම සඳහා පහසු වූවත්, පහත සඳහන් හේතු මත එය තවදුරටත් නිර්දේශ නොකෙරේ:
- විශාල ලෙස භාවිතා වන විකල්ප ක්රම:
- ඉදිරිපස ශූන්ය පූරණය දැන් යෙදුම් හෝ UI ස්තරයේ පහසුවෙන් කළ හැක.
- ගැටුම් වැළැක්වීම:
ZEROFILLභාවිතා කරන විටUNSIGNEDගුණාංගය ස්වයංක්රීයව යෙදීම අරඹන පරිශීලකයන්ට ගැටුම් ඇති කළේය.
අහෝසි කිරීමට අනුකූල වීමේ ක්රම
මෙම අහෝසි කිරීම්වලට ප්රතිචාරයක් ලෙස, දත්ත ගබඩා සැලසුම් කිරීමේදී පහත ක්රම සලකා බලන්න:
- යෙදුම් ස්තරයේ ආකෘතිකරණය කළමනාකරණය කරන්න:
- ඉදිරිපස ශූන්ය පූරණය සහ ආකෘතිකරණය යෙදුම් හෝ ප්රදර්ශන ස්තරයේ සිදු කරන්න.
- උදාහරණය: PHP හෝ JavaScript භාවිතා කර ඉදිරිපස ශූන්ය පූරණය ක්රියාත්මක කරන්න.
- දර්ශන පළල (display width) මත පදනම් නොවන සැලසුමක් අනුගමනය කරන්න:
Mනිරූපණය නොකරINTවර්ගය නිර්වචනය කර, දර්ශන ආකෘතිකරණය වෙනුවට දත්ත නිරවද්යතාවයට අවධානය යොමු කරන්න.
6. ප්රායෝගික FAQ කොටස
නිතර අසන ප්රශ්න
Q1. INT වර්ගයේ උපරිමය ඉක්මවන අගයක් සුරකින්නේ නම් කුමක් වේ?
A. MySQL හි, INT වර්ගයේ පරාසයට පිටත අගයක් සුරැකීමට උත්සාහ කිරීම දෝෂයක් ඇති කරයි. ඔබට සහය දක්වන පරාසය තුළ අගයක් තෝරාගත යුතුය, නැතහොත් විශාල පරාසයක් ඇති දත්ත වර්ගයක් (උදාහරණයක් ලෙස BIGINT) වෙත මාරු විය යුතුය.
Q2. INT සහ BIGINT අතර වෙනස කුමක්ද?
A. BIGINT වර්ගය INT (8 බයිට්) වලට වඩා දෙගුණයක් ගබඩා භාවිතා කරයි සහ ඉතා පුළුල් සංඛ්යා පරාසයක් ලබා දෙයි. උදාහරණයක් ලෙස, BIGINT හි අත්සන් කළ පරාසය ±9 කෝටි කෝටි (quintillion) ඉක්මවා යයි, එය විශාල දත්ත කට්ටලයන් සකස් කිරීම සඳහා සුදුසු වේ.
Q3. ZEROFILL අහෝසි කිරීමෙන් පසු, ඉදිරිපස ශූන්ය පූරණය කෙසේ ක්රියාත්මක කළ යුතුද?
A. ඉදිරිපස ශූන්ය පූරණය යෙදුම් ස්තරයේ කළමනාකරණය කිරීම නිර්දේශ කරයි. උදාහරණයක් ලෙස, PHP හි str_pad() ක්රියාවලිය භාවිතා කළ හැකි අතර, JavaScript හි padStart() ක්රමය භාවිතා කර ඉදිරිපස ශූන්ය පූරණය ක්රියාත්මක කළ හැක.
Q4. INT සහ අනෙකුත් පූර්ණ සංඛ්යා වර්ග අතර කෙසේ තේරිය යුතුද?
A. දත්ත පරාසය අනුව වර්ගය තෝරන්න. කුඩා සංඛ්යා අග (උදාහරණයක් ලෙස වයස හෝ ලකුණු) TINYINT සඳහා සුදුසු, මධ්යම පරිමාණ දත්ත (උදාහරණයක් ලෙස පරිශීලක ID) INT සඳහා සුදුසු, ඉතා විශාල අග (උදාහරණයක් ලෙස මූල්ය ගනුදෙනු දත්ත) BIGINT සඳහා සුදුසු වේ.
7. නිගමනය
මෙම ලිපියේ, අපි MySQL INT දත්ත වර්ගය පිළිබඳ විස්තරාත්මක විස්තරයක් ලබා දී ඇත. ප්රධාන කරුණු පහත පරිදි වේ:
INTවර්ගයේ අත්සන් සහ අත්සන් නොකළ උපරිම සහ අවම අග අතර වෙනස්කම් අවබෝධ කර ගැනීම නිවැරදි දත්ත සැලසුම් කිරීමේ පදනම වේ.- අහෝසි කරන ලද “දර්ශන පළල (M)” සහ “ZEROFILL” විකල්පයන්ට විකල්ප ක්රම අවබෝධ කර ගැනීම සහ අනාගත MySQL යාවත්කාලීන කිරීම්ට අනුකූල වන දත්ත ගබඩා සැලසුම් කිරීම වැදගත් වේ.
- දත්ත ලක්ෂණ අනුව සුදුසු පූර්ණ සංඛ්යා වර්ගය තෝරා, කාර්යක්ෂම සහ නඩත්තු කළ හැකි දත්ත ගබඩාවක් ගොඩනඟන්න.
ඔබගේ INT වර්ග භාවිතය උපරිම කර ගැනීමට සහ MySQL දත්ත ගබඩා සැලසුම් කිරීමේ කාර්යක්ෂමතාව වැඩිදියුණු කිරීමට මෙම ලිපිය යොමු කරගන්න.


