Char vs Varchar
Char болон Varchar нь өгөгдлийн сангийн системд түгээмэл хэрэглэгддэг тэмдэгтийн өгөгдлийн төрлүүд бөгөөд хадгалалтын шаардлагын хувьд хоорондоо ижил төстэй харагддаг боловч тэдгээрийн хооронд ялгаа байдаг. Өгөгдлийн сангийн дизайн хийхэд маш олон өгөгдлийн төрлийг ашигладаг. Тэдгээрийн дотроос тэмдэгтийн өгөгдлийн төрлүүд нь тоонуудтай харьцуулахад маш их мэдээлэл хадгалахад ашиглагддаг тул илүү тод байр суурь эзэлдэг. Тэмдэгтийн өгөгдлийн төрлүүд нь тэмдэгтүүд эсвэл үсэг тоон өгөгдлийг мөрөнд хадгалахад ашиглагддаг. Өгөгдлийн санг үүсгэх үед мэдээллийн сангийн тэмдэгтийн төрлийг тодорхойлно. Дахин хэлэхэд эдгээр тэмдэгтийн өгөгдлийн төрлүүдээс Char, Varchar нь түгээмэл хэрэглэгддэг. Энэ нийтлэлд char болон varchar хоёр өгөгдлийн төрөл гэж юу болох, тэдгээрийн ялгааг тайлбарлана.
Чар гэж юу вэ?
Char-ийн ISO тодорхойлолт нь тэмдэгт бөгөөд char өгөгдлийн төрлийг тэмдэгт хадгалахад ашигладаг. Char (n) нь тогтмол хэмжээтэй n тэмдэгт хадгалах боломжтой. Тэмдэгт (n)-д хамгийн ихдээ 255 тэмдэгт багтах ба мөрийн урт нь 1-ээс 8000 хүртэлх утгатай байх ёстой. Char нь varchar-аас тавин хувиар хурдан байдаг тул бид түүнтэй ажиллахад илүү сайн гүйцэтгэлтэй байх боломжтой. тэмдэгт. Char нь өгөгдөл хадгалахдаа статик санах ойн хуваарилалтыг ашигладаг. Бид мэдэгдэж буй тогтмол урттай мөрүүдийг хадгалахыг хүсвэл тэмдэгтийг ашиглах нь дээр. Жишээлбэл, "Тийм", "Үгүй" -ийг "Y" ба "N" гэж хадгалахдаа бид char өгөгдлийн төрлийг ашиглаж болно. Мөн иргэний үнэмлэхний дугаарыг арван тэмдэгтээр хадгалахдаа бид өгөгдлийн төрлийг тэмдэгт (10) болгон ашиглаж болно.
Varchar гэж юу вэ?
Нэрнээс нь харахад varchar-ыг хувьсагчийн тэмдэгт гэж нэрлэдэг. Varchar нь хувьсах урттай үсэг тоон өгөгдлийг хадгалахад ашиглагддаг. Энэ төрлийн өгөгдлийн багтаамжтай тэмдэгтүүдийн дээд хэмжээ нь 4000 тэмдэгт бөгөөд хадгалах сангийн дээд хэмжээ нь 2 ГБ байна. Varchar-ын хадгалах хэмжээ нь өгөгдлийн бодит уртыг нэмсэн хоёр байт юм. Varchar нь char-аас удаан бөгөөд өгөгдөл хадгалахдаа динамик санах ойн хуваарилалтыг ашигладаг. Бид нэр, хаяг, тайлбар гэх мэт өгөгдлийг хадгалахдаа varchar ашиглаж болно. Зөвхөн тэмдэгт мөрүүд төдийгүй огнооны төрлүүд, "2015 оны 3-р сарын 12", "2015-03-12" зэрэг мөр бус төрлүүдийг мөн хадгалах боломжтой. varchar өгөгдлийн төрөл.
Чар, Варчар хоёр юугаараа ялгаатай вэ?
• Хэдийгээр char болон varchar нь тэмдэгтийн өгөгдлийн талбар боловч char нь тогтмол урттай өгөгдлийн талбар бөгөөд varchar нь хувьсах хэмжээтэй өгөгдлийн талбар юм.
• Char нь зөвхөн тогтмол хэмжээтэй Юникод бус тэмдэгтүүдийг хадгалах боломжтой, харин varchar нь хувьсах хэмжээний мөрүүдийг хадгалах боломжтой.
• Байнга өөрчлөгддөг өгөгдлийн хувьд char нь varchar-аас дээр. Учир нь тогтмол урттай өгөгдлийн мөр нь хуваагдалд өртөмтгий биш юм.
• Char нь зөвхөн хувьсагчийг зарлах үед тодорхойлогдсон тогтмол зайг эзэлнэ. Гэхдээ varchar нь оруулсан өгөгдөлд тулгуурлан зай эзэлнэ, мөн уртын угтвар болгон 1 эсвэл 2 байт эзэлнэ.
• Хэрэв өгөгдөл 255 тэмдэгтээс бага бол 1 байт, 255 тэмдэгтээс их бол 2 байт нөөцлөнө. Хэрэв бид 'Y' болон 'N'-ийн тугийг хадгалахдаа тэмдэгт ашигладаг бол энэ нь хадгалахад нэг байт ашиглах боловч varchar ашиглах үед уртын угтвар болгон нэмэлт байтыг багтаасан тугийг хадгалахад хоёр байт шаардлагатай.
Тойм:
Char vs Varchar
Char болон varchar нь мэдээллийн санд байдаг хамгийн их ашиглагддаг тэмдэгтийн өгөгдлийн төрөл юм. Char нь тогтмол урттай мөрийг хадгалахад хэрэглэгддэг бол varchar нь янз бүрийн урттай мөрүүдийг хадгалахад ашиглагддаг. Өгөгдлөөс илүү сайн гүйцэтгэлтэй байхын тулд өгөгдлийн сан дахь хүснэгтүүдийн талбарт тохирох өгөгдлийн төрлийг сонгох нь илүү чухал юм. Санах ойноос бага зай эзэлдэг тул өгөгдлийг зөв хадгалах боломжтой хамгийн жижиг өгөгдлийн төрлүүдийг ашиглах нь илүү тохиромжтой.