mysql
weixin_43935720
这个作者很懒,什么都没留下…
展开
-
mysql编辑集导致大小写不敏感
一个批量上传客户的功能导入的时候,抛出了重复键的异常,这是因为mysql的索引导致,然后通过这个key值上去库中查询这条数据,发现并没有这条数据。然后我尝试将这条数据单独放到另一个excel中,可以插入成功,于是猜想是否是mybatis批量插入的bug但想了一下不太可能,因为抛出的异常不同。网上大概搜了一下,搜到了ignore关键字,在程序中加上这个关键字,并且打了下log,发现一共需要插入72条,实际插入成功69,少了三条,嗯??比对了一下,找出插入失败的数据,发现一个共同点,有索引的那个字段都原创 2021-06-30 16:08:07 · 55 阅读 · 0 评论 -
MySQL oreder by的单路排序和双路排序
innodb存储引擎的排序分为两大类,索引排序和文件排序,索引排序效率肯定是优于文件排序的,所以请尽可能的使用索引排序。如何去查看sql语句是利用了哪种排序方式答案就在explain关键字,查看sql语句的执行计划,我们可以从mysql官网看到If the Extra column of EXPLAIN output does not contain Using filesort, the index is used and a filesort is not performed.If the E原创 2021-06-03 16:42:02 · 313 阅读 · 1 评论 -
mybatis 批量插入提升效率
背景最近工作中遇到了解析excel,然后批量插入,发现这个插入时间比较长,所以想要进行一些优化,大家可以跳过过程直接看结论背景作)准备工作,创建一张测试表CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `user_age` int(11) DEFAULT NULL COMMENT '年龄', `master` int(11) DEFAULT NU原创 2021-05-21 16:56:19 · 1329 阅读 · 5 评论 -
mysql join原理
MySQL join表共有三种匹配方式,以A left join B为例进行描述,A left join B是以A表为驱动表,B表为匹配表进行连接一、Nested-Loop Join Algorithm(简单的嵌套循环连接)一种简单的嵌套循环连接(NLJ)算法,循环从A表中读取每一行,然后将每一行与B表中的每一行进行匹配,其实就是两层for循环。for each A_row in A { for each B_row in B { if (A_row.fid == B_row.fid)原创 2021-05-14 11:27:01 · 67 阅读 · 0 评论 -
mysql中left join on多条件与where的区别
为了测试建立两张表A、B表CREATE TABLE `b` ( `id` int(11) NOT NULL AUTO_INCREMENT, `a_id` int(11) NULL DEFAULT NULL, `is_delete` int(1) NULL DEFAULT NULL, `a_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, PRIMARY KEY (`id`原创 2021-05-12 09:27:03 · 46 阅读 · 0 评论