اطمینان از کارایی: انتخاب عاقلانه نوع داده صحیح در MySQL
تا به حال به این فکر کرده اید که چرا یک پایگاه داده دارای انواع مختلفی از مقادیر صحیح است؟ کوچک؟ BIGINT؟ آیا برای خوردن است؟
محتوا
- پیشگفتار
- انتخاب انواع در مدل های داده
- تصمیم گیری آگاهانه
- چه چیزی می توانم بایت بسازم؟
- حالا بیایید آن را عملی کنیم
- ملاحظات نهایی
1. مقدمه
در این زندگی به عنوان یک توسعهدهنده نرمافزار، یاد گرفتم که به اصول فناوریهایی که با آنها کار میکنم ارزش قائل شوم. در این مقاله همه انواع را بررسی خواهیم کرد عدد صحیح موارد موجود، چه ویژگیهایی دارند و چگونه میتوانیم از آن برای تصمیمگیری قاطعتر هنگام مدلسازی یک طرح واره استفاده کنیم. MySQL.
2. انتخاب انواع در مدل های داده
یک اصل اساسی برای مدلسازی دادهها، ارزیابی این است که آیا انواع انتخابشده برای مقادیری که دریافت میشوند بهترین هستند یا خیر. در این مقاله سعی می کنیم بفهمیم که چه نوع اعداد صحیح وجود دارد و چه تفاوت هایی با هم دارند تا بتوانیم بهترین تصمیم را هنگام ایجاد جداول خود بگیریم.
3. تصمیم گیری آگاهانه
برای اینکه بتوانیم آگاهانه ترین تصمیم را بگیریم، باید بدانیم کدام یک انواع عدد صحیح موجود و فضایی که در آن اشغال شده است بایت ها برای هر نوع، زیرا صرف نظر از اینکه عدد صحیح 1 را در یک رکورد وارد می کنید، فضای متفاوتی را با توجه به نوع داده طرحواره اشغال می کند.
مثلا نوع TINYINT اشغال می کند 1 byte
، در حالی که نوع BIGINT اشغال می کند 8 bytes
. بنابراین، حتی اگر عدد صحیح 1 را در یک رکورد وارد کنید، بسته به نوع داده مشخص شده در طرحواره (شما) فضای متفاوتی را اشغال می کند.
میتوانیم در نظر بگیریم که هر نوع اعداد صحیح به ما اجازه میدهد تا محدوده خاصی از مقادیر را ذخیره کنیم و هر محدوده تعدادی بایت ذخیره میکند.
بیایید به همه انواع و هزینه بایت آنها نگاه کنیم:
تایپ کنید | فضای ذخیره سازی (بایت) |
---|---|
TINYINT | 1 |
کوچک | 2 |
MEDIUMINT | 3 |
INT | 4 |
4. یک بایت چه کاری می تواند انجام دهد؟
با 1 بایت می توانیم از 8 بیت استفاده کنیم، یعنی با TINYINT می توانیم اعداد را در محدوده زیر ذخیره کنیم:
00000000 = 0
11111111 = 255
اگر نیاز به سیگنال داشته باشیم چه می کنیم؟ در این مورد، ما باید با کاهش دامنه خود به این صورت، مقداری را برای آن جدا کنیم:
0 1111111 = -128 (negative bit)
1 1111111 = 127 (positive bit)
در نتیجه جدول زیر را داریم:
تایپ کنید | فضای ذخیره سازی (بایت) | حداقل امضا شد | حداکثر امضا کرد | حداقل بدون امضا | حداکثر بدون امضا |
---|---|---|---|---|---|
TINYINT | 1 | -128 | 127 | 0 | 255 |
کوچک | 2 | -32768 | 32767 | 0 | 65535 |
MEDIUMINT | 3 | -8388608 | 8388607 | 0 | 16777215 |
INT | 4 | -2147483648 | 2147483647 | 0 | 4294967295 |
BIGINT | 8 | -2^63 | 2^63-1 | 0 | 2^64-1 |
5. حالا بیایید آن را عملی کنیم
CREATE TABLE `books` (
`id` bigint NOT NULL AUTO_INCREMENT,
`title` varchar(100) NOT NULL,
`num_pages` SMALLINT UNSIGNED,
PRIMARY KEY (id)
);
در این قطعه SQL، ما تصمیم می گیریم که مناسب ترین نوع عدد صحیح را بر اساس زمینه مورد استفاده خود انتخاب کنیم. هنگام تجزیه ستون num_pages
، که نمایانگر کل صفحات یک کتاب است، ما از نوع آن استفاده کردیم کوچک. این انتخاب با در نظر گرفتن عوامل زیر انجام شده است:
1. حداکثر مقدار مناسب: نوع TINYINT ارزش دارد máximo de 255
، که به راحتی می توانستند کتاب هایی با تعداد صفحات قابل توجهی از آن پیشی بگیرند. با این حال، نوع کوچک اندازه بزرگتر می دهد و حداکثر مقدار 65535 را می دهد. این محدوده برای نمایش تعداد صفحات یک کتاب در زندگی واقعی بهتر است، مگر اینکه در حال خواندن Game of Thrones باشید، در این صورت به BIGINIT نیاز دارید.
2. اصلاح کننده بدون امضا: ما از اصلاح کننده استفاده می کنیم UNSIGNED
برای نشان دادن اینکه نیازی به ذخیره مقادیر منفی برای تعداد صفحات کتاب نیست. این به ما امکان می دهد از یک کران مثبت بزرگتر در همان نوع داده استفاده کنیم، زیرا نیازی به رزرو فضای برای علامت نداریم.
بنابراین، هنگام انتخاب نوع SMALLINT UNSIGNED
به ستون num_pages
، ما حداکثر مقدار مناسب را در نظر می گیریم، با صرفه جویی در فضا و حذف امکان مقادیر منفی، از نمایش کارآمد و دقیق تعداد صفحات کتاب در سیستم خود اطمینان می دهیم.
6. ملاحظات نهایی
پس از درک تفاوت بین انواع عدد صحیح، متوجه شدم که انتخاب نوع داده مناسب برای هر موقعیت چقدر مهم است. با تأمل در تجربه خودم، زمان هایی را به یاد می آورم که از نوع استفاده می کردم عدد صحیح غیر ضروری پس از پرداختن به این موضوع و به اشتراک گذاشتن این اطلاعات، معتقدم که دیگر این اشتباه را انجام نخواهم داد. امیدوارم این مقاله برای شما نیز روشنگر بوده باشد و به شما کمک کند تا آگاهانه مناسب ترین نوع عدد صحیح را برای هر زمینه انتخاب کنید.
بیا بخشی از یک محیط آموزشی باشید.