数据库
yelrihsss
很菜,所以都在看基础。
展开
-
对分库分表进行批量操作
分为db0和db1两个库,每个库都有三张订单表,分表键根据年份【year】,分库键根据店铺id【store_id】注意:如果使用下面这种sql方式,需要更新0库1库两个库的数据,路由只会进入一个更新,导致没有所有的数据更新。如果是统一的数据更新,比如student表,更新所有学生的name为‘张三’,可以直接用updateById。db0和db1都会执行,且因为店铺id集合包含两个库的数据,所有的订单都会在两个库重复执行。插入时,对象要带有分库/分表键的值,shardingJdbc会进行改写。原创 2023-08-31 13:01:46 · 933 阅读 · 0 评论 -
数据倾斜之count(distinct)
在极大数据量的情况下从执行计划上面来看:只生成一个reducer任务,所有的id都聚集到同一个reducer任务进行去重然后在聚合,非常容易造成数据倾斜.解决方案:1、利用Hive对嵌套语句的支持,将原来一个MapReduce作业转换为两个作业,在第一阶段选出全部的非重复id,在第二阶段对选出的非重复id进行计数。在第一阶段可以通过增大的并发数,并发处理Map输出。在第二阶段,对已去重的id进行计数,count(*)在Map阶段不需要输出原id,只输出一个计数结果。原创 2023-07-25 17:21:35 · 524 阅读 · 0 评论 -
ONLY_FULL_GROUP_BY下的groupby和orderby
问题原因:mysql5.7.5及以上版本将sql_mode的ONLY_FULL_GROUP_BY模式默认设置为打开状态,会导致一些错误:1、我们使用GROUP BY查询时,出现在SELECT字段后面的只能是GROUPBY后面的分组字段,或使用聚合函数包裹着的字段,否则会报错如下信息: Expression #1 of SELECT list isnot in GROUP BY c...原创 2022-07-20 00:16:00 · 46 阅读 · 0 评论 -
docker - mysql主从复制
1、docker拉取镜像docker pull mysql:8.02、查看docker images3、创建容器主:docker run -p 3309:3306 --name master -e MYSQL_ROOT_PASSWORD=123456 --restart=always -d mysql:8.0从:docker run -p 3310:3306 --name sal...原创 2023-07-11 09:52:00 · 41 阅读 · 0 评论 -
mybatis-plus 公共字段填充(自定义)
mybatisplus带的公共字段自动填充通常,记录数据时会存在公共字段,为了方便插入,可以使用mybatisplus带的公共字段自动填充, 例如:记录创建信息和更新信息@ApiModelProperty(value = "创建时间")@TableField(value = "create_time", fill = FieldFill.INSERT, updateStrategy = F...原创 2023-06-02 15:22:00 · 566 阅读 · 0 评论 -
mybatis-plus 批量插入/新增
建表SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------ Table structure for rewrite_sql-- ----------------------------DROP TABLE IF EXISTS `rewrite_sql`;CREATE TABLE ...原创 2023-06-01 10:03:00 · 2369 阅读 · 0 评论 -
mysql - 列拆分
mysql - 列拆分原创 2022-11-23 17:47:00 · 85 阅读 · 0 评论 -
mysql-逗号分隔关联查询
牛逼plus每天一个知识点tableAid num11001,100221002tableBid numname11001A21002B想要的结果:id name1A,B2B SELECT *(其他字段), (select group_concat(b.name...原创 2022-11-18 10:18:00 · 182 阅读 · 0 评论 -
sql - 锁表bug
bug--Error updating database. Cause: com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction查出的原因 可能是操作的太多 抢占线程资源 导致死锁 表锁住解决方案:一、...原创 2022-09-21 20:19:00 · 33 阅读 · 0 评论 -
一对多的mapper
报错: The content of element type "resultMap" must match "(constructor?,id*,result*,association*、id*、结果*、关联*、集合*、鉴别器?)”,原意就是xml的顺序需要与实体类一致。元素类型“resultMap”的内容必须匹配“(原创 2023-07-24 10:19:20 · 91 阅读 · 0 评论