text,varchar,char 在存贮长度方面个人的理解_MySQL
此文档限制在mysql 5.5以上成立
在utf8 的格式情况下的总结
﹙1﹚ 在mysql提供的官方文档中描述如下
1﹚ 在mysql5.1参考手册中如下描述
TEXT[(M)]
最大长度为65,535(216–1)字符的TEXT列。
可以给出可选长度M。则MySQL将列创建为最小的但足以容纳M字符长的值的TEXT类型。
[NATIONAL] VARCHAR(M) [BINARY]
变长字符串。M 表示最大列长度。M的范围是0到65,535。(VARCHAR的最大实际长度由最长的行的大小和使用的字符集确定。最大有效长度是65,532字节)。
[NATIONAL] CHAR(M) [BINARY| ASCII | UNICODE]
固定长度字符串,当保存时在右侧填充空格以达到指定的长度。M表示列长度。M的范围是0到255个字符
﹙2﹚ 对字符和字节的关系做个介绍
1﹚ 字符是指计算机中使用的字母、数字、字和符号
2﹚ 在 ASCII 编码中,一个英文字母字符存储需要1个字节
3﹚ 在 GB 2312 编码或 GBK 编码中,一个汉字字符存储需要2个字节
4﹚ 在UTF-8编码中,一个英文字母字符存储需要1个字节,一个汉字字符储存需要3到4个字节(在我的计算机环境上是一个汉字存贮需要3个字节)
5﹚ 在UTF-16编码中,一个英文字母字符或一个汉字字符存储都需要2个字节(Unicode扩展区的一些汉字存储需要4个字节)
6﹚ 在UTF-32编码中,世界上任何字符的存储都需要4个字节
7﹚ 我们现在数据库编码使用的是utf-8编码格式,所以一个字符占有3个字节
﹙3﹚ 但是通过实验我们得出了和上面手册文档中不同的值(在utf8编码下)
1﹚ Text类型最多可以存贮65535个字节,而非65535个字符,就是存贮英文等字符的时候是可以存贮65535个字符,存贮纯汉字最多可以存贮21485个汉字
2﹚ Varchar类型可以设置的最大值为21491,存贮形式为字符,varchar(21491)最多可以存贮21491个英文字符,也可以存贮最多为21491个汉字
3﹚ Char类型最大可设的值为255个字符,char(255)最多可以存贮255个英文字符,最多也可以存贮255个汉字,char(M)当你使用char了之后就该字段不管有多少值占用的空间都是M个字符
4﹚ 检索效率char>varchar>text
﹙4﹚ 通过以上的讨论,我们的数据库设计可以设计一个原则
1﹚ 当数据库存贮的是html或者一些文章性的不需要检索的使用text,存贮量大,也比较少的需要检索.存贮的性能上来说是最佳的.,可以少占空间多存内容
2﹚ 当一些字符比较少而且需要比较高的检索效率我们首先考虑char,比如字典表的类型可以使用char类型,这样对字典表的读取效率会有比较大的提高
3﹚ 除了以上这些特殊的,其他建议都采用varchar,但是对于不同的字段要定不同的长度,比如:标题用varchar(200)不管是英文还是汉语作为标题应该都是比较够了
4﹚ 对于一些个人简介以及名医简介等类似的一些东西来说是需要不同的需求分配不同的长度.所以我们类型用varchar.长度按照需求定义

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Artikel ini membincangkan menggunakan pernyataan jadual Alter MySQL untuk mengubah suai jadual, termasuk menambah/menjatuhkan lajur, menamakan semula jadual/lajur, dan menukar jenis data lajur.

Artikel membincangkan mengkonfigurasi penyulitan SSL/TLS untuk MySQL, termasuk penjanaan sijil dan pengesahan. Isu utama menggunakan implikasi keselamatan sijil yang ditandatangani sendiri. [Kira-kira aksara: 159]

Artikel membincangkan strategi untuk mengendalikan dataset besar di MySQL, termasuk pembahagian, sharding, pengindeksan, dan pengoptimuman pertanyaan.

Artikel membincangkan alat MySQL GUI yang popular seperti MySQL Workbench dan PHPMyAdmin, membandingkan ciri dan kesesuaian mereka untuk pemula dan pengguna maju. [159 aksara]

Artikel ini membincangkan jadual menjatuhkan di MySQL menggunakan pernyataan Jadual Drop, menekankan langkah berjaga -jaga dan risiko. Ia menyoroti bahawa tindakan itu tidak dapat dipulihkan tanpa sandaran, memperincikan kaedah pemulihan dan bahaya persekitaran pengeluaran yang berpotensi.

Artikel membincangkan menggunakan kunci asing untuk mewakili hubungan dalam pangkalan data, memberi tumpuan kepada amalan terbaik, integriti data, dan perangkap umum untuk dielakkan.

Artikel ini membincangkan membuat indeks pada lajur JSON dalam pelbagai pangkalan data seperti PostgreSQL, MySQL, dan MongoDB untuk meningkatkan prestasi pertanyaan. Ia menerangkan sintaks dan faedah mengindeks laluan JSON tertentu, dan menyenaraikan sistem pangkalan data yang disokong.

Artikel membincangkan mendapatkan MySQL terhadap suntikan SQL dan serangan kekerasan menggunakan pernyataan yang disediakan, pengesahan input, dan dasar kata laluan yang kuat. (159 aksara)
