2020-04-01 Mysql频繁截断表、清空表操作导致锁表解决 Mysql频繁截断表、清空表操作导致锁表解决 测试数据时,直接在数据库表truncate,大概5-6次左右,然后再对该表进行任何操作都会卡死、半天不动。。这种现象一般是数据库出现表死锁情况,锁不释放,无论多久都读取不了数据,一直加载中,而且链接越多,进程会越累加起来,最后有可能导致数据库挂掉。最快解决途径:1、重启MySql,有可能是数据库很久没有重启原因导致,重启之后再查看是否可行,可以则忽略下面步骤。。。2、否则,进入Mysql,查看mysql进程:SHOW PROCESSLIST;3、将state列出现lock的进程通通杀掉,Kill Id编号;4、重启Mysql。 醉秋风 2020-04-01 学习分享 2,077 阅读 0 评论 2020年04月01日 2,077 阅读 0 评论
2020-01-08 利用MySql的help topics表与substring_index函数实现将某个字段拆分读取 利用MySql的help topics表与substring_index函数实现将某个字段拆分读取 数据库中有一堆这样的数据:SELECT send_phones FROM batch_notice WHERE id = 76 需要根据逗号分割,每行显示一条数据。。So,就有了下面这个sqlSELECT DISTINCT substring_index( substring_index( a.send_phones, ',', b.help_topic_id + 1 ), ',',- 1 ) AS 发送号码 FROM batch_notice a JOIN mysql.help_topic b ON b.help_topic_id < ( length( a.send_phones ) - length( REPLACE ( a.send_phones, ',', '' ) ) + 1 ) WHERE a.id = 76 总结:主要掌握MySql函数substring_index(),字符串截取函数,具体释义网上一堆讲解,就不多bb了。help_topic表主要解决了行转列的问题。。 醉秋风 2020-01-08 学习分享 1,469 阅读 0 评论 2020年01月08日 1,469 阅读 0 评论
2019-11-15 MySql 汉字转拼音全拼+汉字转拼音首字母 MySql 汉字转拼音全拼+汉字转拼音首字母 最近项目中需要做一个功能,获取所有百家姓,并且需要能根据拼音或者首字母能索引到对应的汉子。。。汉字转全拼创建临时拼音全表CREATE TABLE `t_base_pinyin` ( `pin_yin_` varchar(255) CHARACTER SET gbk NOT NULL, `code_` int(11) NOT NULL, PRIMARY KEY (`code_`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;插入所有拼音INSERT INTO t_base_pinyin (pin_yin_,code_) VALUES ("a", 20319),("ai", 20317),("an", 20304),("ang", 20295),("ao", 20292),("ba", 20283),("bai", 20265),("ban", 20257),("ban... 醉秋风 2019-11-15 学习分享 1,114 阅读 0 评论 2019年11月15日 1,114 阅读 0 评论
2019-09-27 利用MySQL命令快速复制数据库 利用MySQL命令快速复制数据库 需求应用场景:1.业务分离,需要首先备份相同的数据库等操作 2.克隆测试环境、线上环境等以下是两种实现办法:导入导出如果不擅长命令的同学可以利用一些mysql管理工具(navicat,mysqladmin等)直接导出整个文件,然后从新建库,在将文件导入如果数据比较大的话不建议这么搞,非常耗时。。命令行克隆举例,将sqldb的库复制一份到sqldb.bak库。新建一个库sqldb.bak,操作忽略。。参数:--add-drop-table 意思在每个CREATETABLE语句之前编写DROP TABLE语句。具体mysqldump参数请移步。linux命令行键入下面mysql命令/usr/local/mysql/bin/mysqldump sqldb -uadmin -p密码 --add-drop-table | /usr/local/mysql/bin/mysql sqldb.bak -uadmin -p最后输入一遍密码即可,速度谁试过谁知道。。如果报下面错误[root@8vnqvaZ ~]# /usr/local/mysql/bin/mysqldump sqldb -uadm... 醉秋风 2019-09-27 学习分享 1,691 阅读 1 评论 2019年09月27日 1,691 阅读 1 评论
2019-09-18 Mysql 分组排序查询获取最新最近得搜索信息 Mysql 分组排序查询获取最新最近得搜索信息 需求:获取该微信用户最近搜索商铺得记录addtime 搜索时间sid 商家IDtmp 临时表SELECT t.* FROM history_search t RIGHT JOIN ( SELECT sid, MAX( addtime ) AS 'createDate' FROM history_search WHERE STATUS = 1 AND openid = '微信OPENID' GROUP BY sid ) tmp ON t.addtime = tmp.createDate AND t.sid = tmp.sid ORDER BY addtime DESC 醉秋风 2019-09-18 学习分享 763 阅读 0 评论 2019年09月18日 763 阅读 0 评论
2019-08-20 Mysql 创建一个存储过程,定时删除微信小程序formid Mysql 创建一个存储过程,定时删除微信小程序formid 需求是要求自动删除从2019-01-24 16:50:00开始过期得微信小程序formid。formid会有一个过期时间,只需要将对应得过期时间小于当前时间得删除即可。当然这个需求用程序轮询也可以实现。是否开启计划任务SHOW VARIABLES LIKE '%event_sche%';将事件计划开启/关闭(1/0)SET GLOBAL event_scheduler = 1;关闭/开启事件任务(DISABLE/ENABLE)ALTER EVENT eventName ON COMPLETION PRESERVE DISABLE;查看事件任务 :SHOW EVENTS ;创建一个存储过程 : 删除过期时间小于当前时间的DELIMITER // DROP PROCEDURE IF EXISTS delete_formid// CREATE PROCEDURE delete_formid() BEGIN DELETE FROM xt_dc_formid WHERE expire_in < unix_timestamp(now()); END//设置定时任务调用这个存储过程(从... 醉秋风 2019-08-20 学习分享 666 阅读 0 评论 2019年08月20日 666 阅读 0 评论