字节
MySQL4.1之前的varchar(20)是20个字节。最大的限制是255字节;
MySQL5.0以后的varchar(20)是20个字符。最大的限制是65535-3占位符号=65532字节。
索引
什么是索引:索引是数据结构;数据库系统为维护者满足特定查找算法的数据结构,这些数据结构以某种方式引向(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这是数据结构就是索引。
- 普通索引:
最基本的索引,没有任何限制,是我们经常使用到的索引。 - 唯一索引:
与普通索引类似,不同的是,唯一索引的列值必须唯一,但允许为空值。主键索引是特殊的唯一索引,不允许有空值。 - 全文索引:
全文索引(FULLTEXT)仅可以适用于MyISAM引擎的数据表,作用于CHAR,VARCHAR、TEXT数据类型的列。 - 组合索引:
将几个列作为一条索引进行检索,使用最左匹配原则。
命令行
- 查找mysql的配置文件my.ini:在命令行中输入
select @@datadir
,然后复制地址去文档里去查找; - sql文件路径:在命令行中输入
show variables like '%datadir'
; - 命令行查看表索引:
SHOW INDEX FROM zd3bianshen
; - 查看编码信息(最大字符长度等):
SHOW CHARSET LIKE 'utf8%'
; - 命令行查看表结构:
show create table zd3bianshen
; - 最小索引长度:
show global variables like '%_word_len%'
; - 重建索引:
REPAIR TABLE zd3bianshen QUICK
; - 查看索引:
show index from zd3bianshen
; - 删除索引:
ALTER TABLE zd3bianshen DROP INDEX huawendex
;
10.创建全文索引:ALTER TABLE zd3bianshen ADD FULLTEXT INDEX huawenDex(huawen)
; - 创建普通索引:
alter table zd3bianshen add index huawenIndex(huawen)
;
explain的使用
explain可以帮助开发人员分析sql问题:explain+sql
具体用法和结果分析参考:explain的用法和结果分析
mysql排序规则
mysql排序规则是指对字符集下不同字符的比较规则。
一. 对比
- utf8_general_ci不区分大小写,utf8_general_cs区分大小写。
- utf8_bin:
compare strings by the binary value of each character in the string
将字符串每个字符串用二进制数据编译存储,区分大小写,而且可以存二进制的内容。 - utf8_unicode_ci校对规则仅支持Unicode校对规则算法,一些字符还是不能支持;utf_unicode_ci不能完全支持组合的记号。
二.应用上的区别
- 对于一种语言仅当使用utf8_unicode_ci排序做的不好时,才执行与具体语言相关的utf8字符集校对规则。例如,对于德语和法语,utf8_unicode_ci工作的很好,因此不再需要为这两种语言创建特殊的utf8校对规则。
三.使用
- utf8_unicode_ci比较准确,utf8_general_ci速度比较快。通常情况下,新建数据库时一般选用utf8_general_ci就可以了。
mysql中if写法
select if(1 = 2,'yes','no');
Mysql字符编码UTF-8和GBK区别,Mysql5.0以上版本
- 一个汉字占多少长度与编码有关
UTF-8:一个汉字=3个字节
GBK:一个汉字=2个字节