首页
关于
WOW怀旧
友链
留言
更多
壁纸
直播
Search
1
关于《杀死那个石家庄人》背后的故事
3,800 阅读
2
沈阳故宫之旅
609 阅读
3
摄影记录|鸿恩寺
563 阅读
4
Laravel-admin 删除行|删除回调
366 阅读
5
EasyWechat 微信小程序接入微信支付|笔记
363 阅读
编程技术
GoLang
Vue
PHP
Linux
Redis
网络安全
生活杂记
登录
Search
标签搜索
PHP
随笔
Mysql
Laravel-Admin
Laravel
摄影
设计模式
Ab
Linux
Javascript
MAC
支付
CentOs
sh
嘉陵江
南滨路
蓝易云
redis
karlina
累计撰写
57
篇文章
累计收到
132
条评论
首页
栏目
编程技术
GoLang
Vue
PHP
Linux
Redis
网络安全
生活杂记
页面
关于
WOW怀旧
友链
留言
壁纸
直播
搜索到
57
篇与
的结果
2021-09-05
关于-安和桥
关于安和桥北《安和桥》是民谣歌手 宋冬野所演唱的一首原创歌曲很多人不知道安和桥这个地方它坐落于北京海淀区中部,是清雍正二年(1724年)为方便人们出行建设的一个桥,取“安澜平和”之意称“安和桥”。平时听这首歌 总是会让人联想到爱情但其实是宋冬野写给去世奶奶的宋冬野从小父母离异 跟着奶奶一起长大年少时奶奶总喜欢抱着他 去离家不远的安和桥那里散步专辑《安河桥北》中封面的照片就是奶奶抱着宋冬野 在安河桥哪里拍的宋冬野上初中的时候喜欢班上的一个女同学而女同学喜欢弹吉他的男生于是宋冬野用了奶奶的养老保险花了148块钱 买了他人生当中的第一把吉他最后女孩没追到 吉他却放不下了而奶奶也在宋冬野 还没有出名的时候就去世了宋冬野写下安和桥 抒发对奶奶的思念之情民谣有三 姑娘、吉他、南北方听者有三 香烟、孤独、还有酒姑娘是爱情 吉他是理想 南北是远方 香烟是回忆故事很长还记得之前一个朋友给我说过大冰的小屋的故事当时 也还不知道什么意思后来渐渐发现 一些东西错过了 就是一辈子遗憾现在 对于我的观念来说 活得开心就好 何必在意那么多他们都说 唱民谣的都是有故事的人喜欢民谣的也是有故事的人也有人说 民谣是现代都市人内心向往的一片净土也许 喜欢民谣的内心都是孤独的人呐喜欢一个人静静坐在 听着安和桥一个人独来独往 内心炙热滚烫 外表冷酷热爱着世界 热爱着远方的那个她
2021年09月05日
123 阅读
0 评论
0 点赞
2021-06-15
笔记 | 一条SQL查询语句是如何执行的?
Mysql主体分两部分首先,MySQL可以分为Server 层和存储引擎层两部分。Server 层Server 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等存储引擎 层而存储引擎层负责数据的存储和提取。其架构模式是插件式的,支持 InnoDB、MyISAM、Memory 等多个存储引擎。现在最常用的存储引擎是 InnoDB,它从 MySQL 5.5.5 版本开始成为了默认存储引擎连接器第一步,你会先连接到这个数据库上,这时候接待你的就是连接器。连接器负责跟客户端建立连接、获取权限、维持和管理连接mysql -h$ip -P$port -u$user -p如果用户名或密码不对,你就会收到一个"Access denied for user"的错误,然后客户端程序结束执行如果用户名密码认证通过,连接器会到权限表里面查出你拥有的权限。之后,这个连接里面的权限判断逻辑,都将依赖于此时读到的权限 如果要重载权限就要重新链接链接闲置·sleep连接完成后,如果你没有后续的动作,这个连接就处于空闲状态,你可以在 show processlist 命令中看到它客户端如果太长时间没动静,连接器就会自动将它断开。这个时间是由参数 wait_timeout 控制的,默认值是 8 小时查询缓存之前执行过的语句及其结果可能会以 key-value 对的形式,被直接缓存在内存中key 是查询的语句,value 是查询的结果所以,MySQL 拿到一个查询请求后,会先到查询缓存看看,之前是不是执行过这条语句如果缓存中能直接查到这个key的话,就会把对应这个key的value直接返回给客户端但是大多数情况下建议不要使用查询缓存查询缓存的失效非常频繁,只要有对一个表的更新,这个表上所有的查询缓存都会被清空所以,MySQL有这样的一个配置,你可以将参数 query_cache_type 设置成 DEMAND,这样对于默认的 SQL 语句都不使用查询缓存。而对于你确定要使用查询缓存的语句,可以用 SQL_CACHE 显式指定 mysql> select SQL_CACHE * from T where ID=10;注意:MySQL 8.0 版本直接将查询缓存的整块功能删掉了,也就是说 8.0 开始彻底没有这个功能了分析器分析器,是在没有命中缓存的情况下 开始分析sql语句1.分析器先会做“词法分析”MySQL 从你输入的"select"这个关键字识别出来,这是一个查询语句。它也要把字符串“T”识别成“表名 T”,把字符串“ID”识别成“列 ID”2.第二就要做“语法分析”判断你输入的这个 SQL 语句是否满足 MySQL 语法一般语法错误会提示第一个出现错误的位置,所以你要关注的是紧接“use near”的内容。优化器优化器是在表里面有多个索引的时候,决定使用哪个索引;或者在一个语句有多表关联(join)的时候,决定各个表的连接顺序。同一条sql可以不同的拼接组合查询 但是每一种执行的效率时间都会有所不同 而优化器就是选择最优的组合去查询执行器要先判断一下你对这个表 T 有没有执行查询的权限,如果没有,就会返回没有权限的错误,如下所示 (在工程实现上,如果命中查询缓存,会在查询缓存返回结果的时候,做权限验证。查询也会在优化器之前调用 precheck 验证权限)mysql> select * from T where ID=10; ERROR 1142 (42000): SELECT command denied to user 'b'@'localhost' for table 'T'如果有权限,就打开表继续执行。打开表的时候,执行器就会根据表的引擎定义,去使用这个引擎提供的接口在没有索引的情况下:1.调用 InnoDB 引擎接口取这个表的第一行,判断 ID 值是不是 10,如果不是则跳过,如果是则将这行存在结果集中;2.调用引擎接口取“下一行”,重复相同的判断逻辑,直到取到这个表的最后一行。3.执行器将上述遍历过程中所有满足条件的行组成的记录集作为结果集返回给客户端。在有索引的情况下:第一次调用的是“取满足条件的第一行”这个接口之后循环取“满足条件的下一行”这个接口这些接口都是引擎中已经定义好的。你会在数据库的慢查询日志中看到一个 rows_examined的字段,表示这个语句执行过程中扫描了多少行。这个值就是在执行器> 每次调用引擎获取数据行的时候累加的。在有些场景下,执行器调用一次,在引擎内部则扫描了多行,因此引擎扫描行数跟 rows_examined 并不是完全相同的。
2021年06月15日
245 阅读
0 评论
0 点赞
1
...
11
12