MYSQL
bczzm
这个作者很懒,什么都没留下…
展开
-
MYSQL 存储过程实现类似ORACLE row_number 和 rank 的简单例子
row_number 实现:DELIMITER $$USE `zhangzm`$$DROP PROCEDURE IF EXISTS `row_number`$$CREATE DEFINER=`root`@`%` PROCEDURE `row_number`()BEGIN DECLARE rn INT DEFAULT 0 ; DECLARE _原创 2016-05-26 11:47:13 · 1070 阅读 · 0 评论 -
MYSQL 列转行
SELECT a.col1, a.col2, SUBSTRING_INDEX( SUBSTRING_INDEX(a.datad, ',', s.`seq`), ',', - 1 ) AS aaa FROM (SELECT col1, col2, SUBSTRING_INDEX( GROU原创 2016-06-26 17:44:08 · 290 阅读 · 0 评论 -
深刻死锁回忆 X LOCK + XI LOCK顺序并发
由于有一些INNODB死锁解决经验,看到死锁日志时脑子立即想到了这样这种场景。但之前类似场景是先根据二级索引删除后插入,这次是发生在主键索引上,只锁了1行,心里就有点犯难了。所以在未了解到实际的业务场景时,不敢妄下结论。通宵分析了general log后,通过实验还原了业务场景。场景回顾:表结构:CREATE TABLE `test` ( `id` int(10) unsigne原创 2017-10-28 20:58:24 · 291 阅读 · 0 评论 -
MYSQL之迷:BKA与VIRTUAL COLUMN
今天遇到了一个很离奇的事情,早上过来有同事说某个查询没有结果了。我心里一想我没有动查询SQL啊,不应该的啊。然后细想下昨天动了些东西。其中有重写另一个查询的SQL,打开了MYSQL默认关闭的BKA关联算法。昨天还沾沾自喜呢,一定有不少线上关联查询应该有快一些了。谁知道他么早上一来就遇到这种奇怪的事情。下面将场景还原:mysql> select version();+----...原创 2019-09-06 14:14:12 · 302 阅读 · 0 评论 -
MYSQL插入效率优化
1.保持长连接 (一般应用中都会使用连接池)2.批量插入 insert into table values (),(),()3.关闭约束检查。unique,foreign等4.关闭自动提交5.数据按主键顺序排好序6.如果是自增表,innodb-autoinc-lock-mode设置为1【批量模式】7.如果有super权限 修改sql_log_bin为1,不写binlog...原创 2019-09-17 16:24:05 · 228 阅读 · 0 评论