Mysql数据库中varchar的长度与字节的关系

今天在给一列建唯一索引的时候,提示 1071 -Specified key was too long; max key length is 3072 bytes 我的第一反应是去看对应列的数据,都是最多七八个字的中文,然后看到对应列的类型,是varchar(2056), 由此想到varchar的长度到底跟字节是什么关系。 英文字母和中文汉字在不同字符集编码下的字节数 英文字母 字节数 : 1;编码:GB2312 字节数 : 1;编码:GBK 字节数 : 1;编码:GB18030 字节数 : 1;编码:ISO-8859-1 字节数 : 1;编码:UTF-8 字节数 : 4;编码:UTF-16 字节数 : 2;编码:UTF-16BE 字节数 : 2;编码:UTF-16LE 中文汉字 字节数 : 2;编码:GB2312 字节数 : 2;编码:GBK 字节数 : 2;编码:GB18030 字节数 : 1;编码:ISO-8859-1 字节数 : 3;编码:UTF-8 字节数 : 4;编码:UTF-16 字节数 : 2;编码:UTF-16BE 字节数 : 2;编码:UTF-16LE 计算varchar(n)最多存储多少字节的内容 varchar(n)能存储n个字符,不管是数字,字母还是汉字,那么根据不同编码最大占用的字节数为4,最大占用n*4个字节。 所以唯一索引要求key值长度不能超过3072,如果列类型是varchar,那么3072/4=768, 作为唯一索引的varchar列的长度最多为768!

May 14, 2019 · 1 min · Theme PaperMod

Git的各种回滚文件

在我们使用Git的过程中,总会在各种情况下需要各种回滚文件。而从本地的角度看,你的修改可能存在三块区域中,workspcace、index或者commit之后的历史对象区域。 ...

July 30, 2016 · 1 min · Theme PaperMod

Mac安装Hive1.2.1

这几天在折腾Hive的相关东西,所以打算在自己的机器上安装下Hive,可是按照教程总是出这样那样的错误,着实蛋疼,最终发现错误是我的Mysql端口是3307,WTF。。这个问题已经坑了我几次了。在此把查看Mysql开启端口的命令放这,以后别被坑到了。SHOW GLOBAL VARIABLES LIKE 'PORT'; ...

October 8, 2015 · 2 min · Theme PaperMod

实现Queue接口的LinkedList类

今天看了些二叉树的内容,想起四月份面试百度的时候被问到实现二叉树中的广度优先遍历,所以就尝试着用Java实现下,其实思想还是比较简单的。 ...

August 31, 2015 · 1 min · Theme PaperMod

设计模式总结

什么是设计模式 在软件工程中,【设计模式】是对软件设计中普遍存在的各种问题,所提出的解决方案。 换句话说,设计模式是一套被反复使用、多数人知晓的、经过分类的、代码设计的经验的总结。使用设计模式是为了可重用代码,让代码更容易被他人理解,保证代码可靠性。 ...

August 20, 2015 · 1 min · Theme PaperMod