ARTS 打卡第三周
Algorithm
主要思路:回溯算法 DFS 模版,先画图找到规律,进行剪枝
Review
今天看的一篇是 MySQL 官方文档,关于索引
https://dev.mysql.com/doc/refman/5.7/en/column-indexes.html
索引底层结构式 B+树,能够帮助快速定位到指定条件下的数据 的一种排好序的数据结构
索引可以通过 CREATE TABLE 时候通过 Key 指定、ALTER TABLE ADD、CREATE INDEX 三种方式
每个表最多 16 个索引。 每个索引最多支持 16 列。
text 和 blob 可以设置索引,但是需要设置索引长度
每个索引长度限制
关于索引长度的限制,最主要的因素就是存储引擎和字符集。
字符集的影响在于,不同的字符集,单个字符包含的最大字节数有所不同。
对于不同的字符集, 一个字符所占用的字节数也不一样.
latin1
编码一个字符占用一个字节gbk
编码一个字符占用两个字节utf8
编码一个字符占用三个字节utf8mb4 一个字符最多包含 4 个字节
innodb 引擎下的索引长度限制
未开启 innodb_large_prefix 时候默认是默认是 767 字节,utf8 每个字符占用 3 个字节、utf8bm4 占用 4 个字节,因此对应的 varchar(255)和 varchar(191)
开启 innodb_large_prefix 时候(5.7 及以上默认开启)在 Innodb 中最长 3072 字节。包括联合索引也受这个长度限制
myisam 引擎索引长度限制
myisam 引擎的每个索引列长度限制为 1000 字节,所有组成索引列的长度和不能大于 1000 字节
创建索引时候 innodb_strict_mode 限制
CREATE INDEX 时,如果指定的索引前缀长度超过了列定义的长度上限,则会出现以下两种场景,
非唯一索引,如果设置 innodb_strict_mode=on,该操作就会抛出一个错误,禁止执行,如果设置 innodb_strict_mode=off,则索引会自动按照列定义的长度上限进行创建,只会提示一个 warning。
唯一索引,无论设置 innodb_strict_mode 与否,都会提示错误,禁止执行,因为这可能导致非唯一的值插入的到表中,违反唯一性约束。
经过验证
创建联合索引时候,如果联合索引多列的定义长度 超过 3072 则会报错
创建单列索引,如果该列超过 3072 不会报错,创建成功,但是索引会自动阶段
通过 ALTER 创建单列索引指定长度时候,会报错。 CREATE TABLE 时候指定 KEY 并不会报错
为什么是 3072 个字节?这个没找到是在一个博客上看到的
Tips
SCP 复制指令
Linux scp 命令用于 Linux 之间复制文件和目录。
scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。
scp 是加密的,rcp 是不加密的,scp 是 rcp 的加强版。
从本地复制到远程
简易写法:scp [可选参数] file_source file_target
scp local_file remote_username@remote_ip:remote_folder
从远程复制到本地
从远程复制到本地,只要将从本地复制到远程的命令的后 2 个参数调换顺序即可,如下实例
具体可参考:https://www.runoob.com/linux/linux-comm-scp.html
Share
今天分享的是从吴军老师专栏获取的思考
专业与业余的区别
专业和业余 用打羽毛球来说,业余的人偶尔也能打出一两个或者一两场好球,但是大多数时间发挥是不稳定的,且容易沾沾自喜,而专业的人基本大多数时间都能稳定打出好的球,情绪也比较稳定。
名医和一般的医生区别,并不是名医就一定能治疗疑难杂症,而是他的治疗效果可以预见
专业的人的特点
在绝大多数情况,都不会带个人情绪到工作中,影响自己的判断和工作
具有专业素养,能够遵守流程和行业规定。有章法
具有专业素养,能够愿意画功夫寻找更好的答案,不是交差了事
具有相对完整的领域知识 或者成体系的知识。 而不是一些知识点。这样才能具有分析问题、解决未知问题的能力
能力是动态进步的,不断学习,不断应用,不断进步
要在自己熟悉的领域培养好专业素养。养成好的习惯,容易产生好的结果
评论