- 博客(223)
- 收藏
- 关注
原创 golang的GC(三色标记法+混合写屏障)学习笔记
go1.5后的版本采用的是三色标记法,首先会将rootset的节点置为灰色,然后再遍历灰色节点下的白色节点,如果白色节点可达,那么将白色节点置为灰色,将原本的灰色节点置为黑色,在没有STW的情况下,三色标记法出现一种情况,黑色节点引用白色节点,而这个白色节点是被灰色节点引用的,接着灰色节点又删除了白色节点,导致白色节点无法被遍历到并置为灰色,最终导致对象被回收,为了解决这个问题引入了强三色不变式和弱三色不变式来阻止以上情况的发生,最后是采用插入写屏障和删除写屏障来实现强弱三项不变式。
2024-09-11 21:02:10
826
原创 你不知道的runtime.GOMAXPROCS(1)
网上有一道关于多个协程的执行顺序的题目。 下面的代码会输出什么,并说明原因这道题的参考答案是:“打印的顺序是随机的。 但是A:均为输出10,B:从0~9输出(顺序不定)。”A的输出是10,B是0-9,这个是变量的作用域不同引起的,这个很好理解。但是输出顺序是不是随机的呢?经过验证,当runtime.[GOMAXPROCS]时,即只有1个操作系统线程可供用户的Go代码使用时,多个协程的执行顺序是固定不变的,具体顺序跟不同的Go版本的具体实现有关。为了方便说明问题,在wg.Wait()前后各加一句打印输出
2022-07-03 16:40:19
834
1
原创 myisam和innodb的区别
差异 MyISAM InnoDB 存储结构 每张表被存放在三个文件: frm – 表格定义 MYD(MYData) – 数据文件 MYI(MYIndex) – 索引文件 包含文件: .frm 表结构文件 .ibd 索引和数据文件 表数据和索引都保存在同一个数据文件中,InnoDB表的大小只受限于操作系统文件的大小,一般为2GB ...
2021-07-08 07:53:21
134
原创 面试总结(二)--mysql篇
一、mysql Innodb锁机制:Next-Key Lock:https://editor.youkuaiyun.com/md/?articleId=117257634二、可重复读隔离界别-幻读https://editor.youkuaiyun.com/md/?articleId=117732074三、页面分页的显示,在大数据量的情况下,怎么解决count(*)全表扫描的问题高性能mysql:覆盖索引或者创建汇总表或者调整业务架构对于大表的后台,都有默认条件,默认7天之内。但如果查七天之前的就比较头痛四、大数据量的
2021-06-19 09:06:25
171
原创 MySQL生成大量测试数据方法
https://blog.youkuaiyun.com/weixin_41890833/article/details/102548279
2021-06-17 18:37:07
178
原创 页面分页的显示,在大数据量的情况下,怎么解决count(*)全表扫描的问题
高性能mysql:覆盖索引或者创建汇总表或者调整业务架构对于大表的后台,都有默认条件,默认7天之内。但如果查七天之前的就比较头痛
2021-06-16 10:55:10
552
原创 大数据量的情况下,怎么优化limit 10000,20这种扫描大量数据的情况
select * from test a inner join (select id from test where val=4 limit 300000,5) b on a.id=b.id;https://zhuanlan.zhihu.com/p/214377808
2021-06-15 18:49:52
559
1
原创 explain的常用字段解析
explain的常用字段解析Typenull > system > const(主键索引扫描) > eq_ref(表中只有一条记录与之匹配,常见于主键索引和唯一索引) > ref(非唯一索引扫描) > ref_or_null > index > allconst 通过索引一次就找到了,const用于primary key或unique索引的比较,因为只匹配一行数据,所以很快,如主键至于where中,mysql会将查询置换成一个常量eq_ref 常见于主键索引
2021-06-09 11:00:00
592
原创 可重复读隔离级别-幻读
非唯一索引列num示例1:事务1 可重复读&事务手动提交事务2 可重复读&事务手动提交start transaction;start transaction;select * intest where num=5 for update;(结果只有一条)insert into intest set name=‘teat’, num=5;(此处会阻塞住)select * intest where num=5 for update;(结果仍只
2021-06-09 10:18:56
713
原创 一张图彻底搞懂MySQL的 explain
https://segmentfault.com/a/1190000021458117?utm_source=tag-newest
2021-06-02 18:16:24
117
原创 XSS(跨站脚本)漏洞详解之XSS跨站脚本攻击漏洞的解决
https://blog.youkuaiyun.com/qq_35393693/article/details/86597707XSS(跨站脚本)漏洞详解XSS的原理和分类跨站脚本攻击XSS(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。XSS攻击针对的是用
2021-05-31 18:46:32
8532
原创 详解php+nginx 服务发生500 502错误排查思路
https://www.jb51.net/article/165775.htm利用strace追踪php-fpm多个进程:https://blog.youkuaiyun.com/fantexi1984/article/details/78556800
2021-05-31 15:36:18
331
原创 Nginx的两种工作模式
Nginx工作模式简介nginx有两种工作模式:master-worker模式和单进程模式。在master-worker模式下,有一个master进程和至少一个的worker进程,单进程模式顾名思义只有一个进程。这两种模式有各自的特点和适用场景。Nginx两种工作模式1、master-worker模式master-worker模式下nginx启动成功后,会有一个master进程和至少一个的worker进程。master进程负责处理系统信号,加载配置,管理worker进程(启动,杀死,监控,发送消息/
2021-05-31 11:00:47
2677
原创 怎样使用php添加token来防止csrf攻击?
For security code, please don’t generate your tokens this way: $token = md5(uniqid(rand(), TRUE));rand() is predictableuniqid() only adds up to 29 bits of entropymd5() doesn’t add entropy, it just mixes it deterministicallyTry this out:Generating a CS
2021-05-27 18:53:11
488
原创 mysql Innodb锁机制:Next-Key Lock
https://www.cnblogs.com/zhoujinyi/p/3435982.html
2021-05-25 15:43:11
172
原创 MySQL的可重复读、幻读及实现原理
https://blog.youkuaiyun.com/weixin_44273302/article/details/113764174文章理解重点内容:快照读和当前读出现了上面的情况我们需要知道为什么会出现这种情况。在查阅了一些资料后发现在RR级别中,通过MVCC机制,虽然让数据变得可重复读,但我们读到的数据可能是历史数据,不是数据库最新的数据。这种读取历史数据的方式,我们叫它快照读 (snapshot read),而读取数据库最新版本数据的方式,叫当前读 (current read)。select 快照读
2021-05-25 14:11:59
271
原创 array_reduce和array_walk
array_reduce<?phpfunction myfunction($v1,$v2){return $v1 . "-" . $v2;}$a=array("Dog","Cat","Horse");print_r(array_reduce($a,"myfunction"));?>array_walkarray_walk() 函数对数组中的每个元素应用用户自定义函数。在函数中,数组的键名和键值是参数。<?phpfunction myfunction($value,
2021-04-14 16:40:02
103
原创 php设计模式之装饰者模式
https://www.cnblogs.com/baochuan/archive/2012/02/28/2371521.html
2021-04-09 17:16:42
97
原创 mysqld启动报错Failed to find valid data directory
vim /etc/my.cnf 查看datadir配置项的路径,然后一般是/var/lib/mysql,将这个文件夹删掉,然后重新初始化/usr/local/mysql/bin/mysqld --initialize --user=mysql如果mysqld启动服务时提示不能用root启动,则在/var/lib/mysql中加入这行user=mysql指定用户...
2021-03-17 16:30:14
4353
原创 Nginx location 匹配详解、location [=|~|~*|^~|!~|!~*] 详解
https://blog.youkuaiyun.com/qq_32281471/article/details/94628445
2021-03-16 16:18:24
556
原创 通过Nginx、Consul、Upsync实现动态负载均衡和服务平滑发布
https://juejin.cn/post/6844904190234361864
2021-03-15 15:55:24
115
原创 dockerfile的端口映射
docker的ip是基于本地系统的,并且容器的端口非本地主机是访问不到的。此外,除了端口只能本地访问外,对于容器的另外一个问题是这些ip在容器每次启动的时候都会改变。Docker解决了容器的这两个问题,并且给容器内部服务的访问提供了一个简单而可靠的方法.Docker通过端口绑定主机系统的接口,允许非本地客户端访问容器内部运行的服务。为了简便的使得容器间通信,Docker提供了这种连接机制。详解Docker端口映射| 5种常见的端口映射方式泊坞窗架构自动映射端口-P使用时需要指定–expose选项
2021-03-04 15:27:28
5132
1
原创 HTTPS整套加密机制是如何实现的?
https://blog.youkuaiyun.com/akunshouyoudou/article/details/95184254
2021-03-02 17:33:49
148
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人