Note

Go escape analysis

September 20, 2023
Go, Escape Analysis
Note

The meaning of escapes to the heap is variables needs to be shared across the function stack frames [between main() and Println()] …

… So globally access variables must be moved to heap as it requires runtime. So the output line 11:2 shows the same as the data variable moved to the heap memory.

From

What are you preparing to do?

September 20, 2023
Do
Note

他想做的事情,与你想他做的事情,与你在做的事情。

这些事情之间是否存在交集,如果一点都没有,那不就是事与愿违了吗?

查找并杀掉运行中事务

September 15, 2023
Mysql
Note

查找并杀掉运行中事务 #

-- 获取线程id然后杀掉
SELECT * FROM information_schema.innodb_trx;
-- 优先找到其中耗时最长的删
kill 36272;
kill 36275;
kill 35971;
kill 35972;

-- 其它
select * from performance_schema.events_statements_current;
show processlist;

查看锁使用情况 #

SELECT object_name, index_name, lock_type, lock_mode, lock_data FROM performance_schema.data_locks;

Windows环境下死锁时重启数据库导致数据库出现“启动后停止” #

后面重启服务器也不行,一直提示:

> net start mysql
MYSQL服务正在启动
MYSQL服务无法启动

服务没有报告任何错误。
请键入 MET HELPMSG 3534 以获得更多的帮助。

解决办法:

将data目录移走,再重新初始化数据库,此时可正常启动数据库;然后停止数据库,将旧data数据库里的数据库和索引文件复制回新的data目录里,再启动数据库。

# 重新初始化数据库
mysqld --initialize-insecure --user=mysql
mysqld -install

# 停止和启动
net stop mysql
net start mysql

参考

其中需要复制的文件有这些:

[数据库目录]
#ib_16384_0.dblwr # Doublewrite Buffer (内存+磁盘), 新的DBLWR以及它如何帮助解决历史上MySQL性能问题
#ib_16384_1.dblwr
auto.cnf # 记录mysql数据库实例的server_uuid,安装的时候初始化,master和slave的server_uuid不能一样
ib_fubber_pool # 缓存池,存放部分最近的查询记录和索引等,可以通过show variables like 'innodb%pool%'查
ibdata1 # innodb表空间,如果采用innodb引擎,会默认10M大小
mysql.ibd # innodb存储引擎的数据文件

双写 #

official

...