死记硬背

1. redis可以容纳多少个键值对?单个键值的大小限制是?

最多容纳 2^32 个key

redis的key和string类型value限制均为512MB。

string类型:一个String类型的value最大可以存储512M

list类型:list的元素个数最多为2^32-1个,也就是4294967295个。

set类型:元素个数最多为2^32-1个,也就是4294967295个。

hash类型:键值对个数最多为2^32-1个,也就是4294967295个。

zset类型:跟set类型相似。

2. mysql varchar最大长度?

65532 byte = 65535 byte (max row size) - 1 byte (not null flag) - 2 byte (记录实际长度)

4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节) 5.0版本以上,varchar(20),指的是20字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放20个,最大大小是65532字节

MySQL中varchar最大长度是多少?

3. mysql sql命令执行顺序

定位表` -> `笛卡尔积` -> `过滤` -> `选择 `-> `展示

img

1.FORM: 对FROM的左边的表和右边的表计算笛卡尔积。产生虚表VT1

2.ON: 对虚表VT1进行ON筛选,只有那些符合的行才会被记录在虚表VT2中。

3.JOIN: 如果指定了OUTER JOIN(比如left join、 right join),那么保留表中未匹配的行就会作为外部行添加到虚拟表VT2中,产生虚拟表VT3, rug from子句中包含两个以上的表的话,那么就会对上一个join连接产生的结果VT3和下一个表重复执行步骤1~3这三个步骤,一直到处理完所有的表为止

4.WHERE: 对虚拟表VT3进行WHERE条件过滤。只有符合的记录才会被插入到虚拟表VT4中。

5.GROUP BY: 根据group by子句中的列,对VT4中的记录进行分组操作,产生VT5.

6.CUBE | ROLLUP: 对表VT5进行cube或者rollup操作,产生表VT6.

7.HAVING: 对虚拟表VT6应用having过滤,只有符合的记录才会被 插入到虚拟表VT7中。

8.SELECT: 执行select操作,选择指定的列,插入到虚拟表VT8中。

9.DISTINCT: 对VT8中的记录进行去重。产生虚拟表VT9.

10.ORDER BY: 将虚拟表VT9中的记录按照<order_by_list>进行排序操作,产生虚拟表VT10.

11.LIMIT:取出指定行的记录,产生虚拟表VT11, 并将结果返回。

mysql 执行顺序_MySQL命令执行顺序

版权

评论