19.12.29
mysql 查询语句,执行一次会缓存,第二次执行相同语句会从缓存取数据,而不是真实的去数据库取数据。
比如第一次查询5s,第二次查询可能就是500ms。
缓存策略:
缓存时间: 在query_cache_size没用完之前是不会淘汰旧的缓存的.
以下情况会导致对应表的查询缓存立即失效: (MyISAM和InnoDB引擎差不多)
(1). insert写入数据
(2). update更新数据
(3). delete删除数据
淘汰算法: 使用的是FIFO
参考:https://www.oschina.net/question/554525_132387?sort=default
19.11.17
group by 与 order by
一定是先分组再排序,没有说先排序再分组的,不合理,也白排序了。
19.7.15
MySQL中varchar最大长度是多少?
5.0版本以上,varchar(20),指的是20字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放20个,最大大小是65532字节
:被问到一个问题:MySQL中varchar最大长度是多少?这不是一个固定的数字。
65535并不是一个很精确的上限,可以继续缩小这个上限。65535个字节包括所有字段的长度,变长字段的长度标识(每个变长字段额外使用1或者2个字节记录实际数据长度)、NULL标识位的累计。
NULL标识位,如果varchar字段定义中带有default null允许列空,则需要需要1bit来标识,每8个bits的标识组成一个字段。一张表中存在N个varchar字段,那么需要(N+7)/8 (取整)bytes存储所有的NULL标识位。
varchar到底能存多少个字符?这与使用的字符集相关,latin1、gbk、utf8编码存放一个字符分别需要占1、2、3个字节。
很多时候我们设置varchar(255)都习以为常了,甚至我还遇到过有人以为varchar不能设置超过255的人。其实varchar没有明确最大长度,然后有人说那65535字节(bytes)不是吗?
但是事实上如果你用的 utf8 编码的话按理最大可以设置到 varchar(21845),但是其实一般都会说你超出。
版权声明:本文为博主原创文章,转载请附上博文链接!
参考这篇不错:https://www.cnblogs.com/gomysql/p/3615897.html
https://blog.csdn.net/w790634493/article/details/80650611
19.6.13
Mysql中tinyint(1)和tinyint(4)到底有什么区别?
tinyint存储只是用一个字节,就是8位,只能存储2^8个数字,也就是256个数字,在mysql实现中,有符号是-128-127,无符号是0-255。
tinyint后面的括号带的数字,以后称之为M,和存贮的值没有任何关系,只是在某些情况下和显示的宽度有关系
ps:因为与显示宽度有关系,所以M写到最大的4就可以了。一般默认写成4就可以了。
来源:https://my.oschina.net/DavidRicardo/blog/869169
19.5.22
1、命令行登录命令,密码-p与密码直接没有空格。
mysql -h localhost -P port -u root -ppassword
2、改密码
https://www.cnblogs.com/benbenzhu/p/5578162.html
网友评论