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字节
3. mysql sql命令执行顺序
定位表` -> `笛卡尔积` -> `过滤` -> `选择 `-> `展示
1.FORM: 对FROM的左边的表和右边的表计算笛卡尔积。产生虚表VT1
2.ON: 对虚表VT1进行ON筛选,只有那些符合
3.JOIN: 如果指定了OUTER JOIN(比如left join、 right join),那么保留表中未匹配的行就会作为外部行添加到虚拟表VT2中,产生虚拟表VT3, rug from子句中包含两个以上的表的话,那么就会对上一个join连接产生的结果VT3和下一个表重复执行步骤1~3这三个步骤,一直到处理完所有的表为止
4.WHERE: 对虚拟表VT3进行WHERE条件过滤。只有符合
5.GROUP BY: 根据group by子句中的列,对VT4中的记录进行分组操作,产生VT5.
6.CUBE | ROLLUP: 对表VT5进行cube或者rollup操作,产生表VT6.
7.HAVING: 对虚拟表VT6应用having过滤,只有符合
8.SELECT: 执行select操作,选择指定的列,插入到虚拟表VT8中。
9.DISTINCT: 对VT8中的记录进行去重。产生虚拟表VT9.
10.ORDER BY: 将虚拟表VT9中的记录按照<order_by_list>进行排序操作,产生虚拟表VT10.
11.LIMIT:取出指定行的记录,产生虚拟表VT11, 并将结果返回。
评论