数据库
数据库
小哇666
专注web/大数据
展开
-
mybatis动态sql ,修改和删除 语句中 大坑,不要在条件中使用动态SQL,一不小心全表数据都被操作了
传入的map是空,把整个表的数据都给清空了(不要用 不要用 不要用)当user_id不传入的时候,会导致全表数据被更新。更新的时候必须传入用户id,否则报错就可以了。改进如下 (用这个 用这个 用这个)条件部分不要用动态sql。修改语句,想死就这么写。不要用 不要用 不要用。删除语句,想死就这么写。原创 2024-10-15 16:41:19 · 220 阅读 · 0 评论 -
mysql中FOR UPDATE 和 LOCK IN SHARE MODE锁 的区别,使用场景,示例
它获取的是共享锁(shared lock),意味着其他事务可以同时读取这些数据,但是不能进行任何写操作,直到所有共享锁被释放。它获取的是排他锁(exclusive lock),意味着其他事务只能等待当前事务结束才能对锁定的数据进行操作。需要注意的是,实际使用时,锁定策略的选择取决于应用程序的具体需求,包括并发控制的需求以及是否允许读取未提交的数据等。,因为窗口1持有的共享锁不允许任何写操作。假设还是两个窗口,窗口1和窗口2。,直到窗口1的事务结束并释放锁。假设有两个窗口,窗口1和窗口2。原创 2024-10-15 15:27:03 · 453 阅读 · 0 评论 -
处理数据库中的逻辑删除(即不真正删除记录,而是标记其为已删除)与唯一性约束之间的冲突
这样做的目的是为了让相同的 user_name 在不同的 delete_time 下可以共存。当一个用户被逻辑删除后,其 delete_time 不为零,而新插入的用户将拥有 delete_time 为零的记录,从而避免唯一性冲突。然而,当我们尝试在逻辑删除一个用户之后再插入一个具有相同用户名的新用户时,由于唯一性约束的存在,新的插入操作会失败。为了保持数据的历史记录,我们不希望直接删除用户的记录,而是通过设置一个 is_delete 标记来表示用户记录是否已被删除。:用于记录逻辑删除发生的时间。原创 2024-10-12 17:17:58 · 314 阅读 · 0 评论 -
mysql SQL语句 left join inner join On和Where语句的区别
where后面是过滤条件, 就是做过滤的, 只要where不满足, 结果压根就不显示。on 是做匹配的, 不匹配的用NULL填充。inner join时,on 等同于where 过滤条件。left join 时,转载 2024-02-29 14:13:50 · 60 阅读 · 0 评论 -
大批量数据,用mysql批量更新数据的四种方法
【代码】大批量数据,用mysql批量更新数据的四种方法。原创 2024-02-26 13:58:30 · 5094 阅读 · 0 评论 -
springboot+mybatis+mysql使用select * where id= for update悲观锁,排他锁,对数据进行行级锁定
场景:库存超卖等。原创 2023-11-27 13:38:33 · 1952 阅读 · 0 评论 -
mycat 分片规则-范围求模算法-auto-sharding-rang-mod
该算法为先进行范围分片, 计算出分片组 , 再进行组内求模。 优点: 综合了范围分片和求模分片的优点。 分片组内使用求模可以保证组内的数据分布比较均匀, 分片组之间采用范围分片可以兼顾范围分片的特点。 缺点: 在数据范围时固定值(非递增值)时,存在不方便扩展的情况,例如将 dataNode Group size 从 2 扩展为 4 时,需要进行数据迁移才能完成 ; 如图所示1 schema.xml配置<schema name="logic_shop_db" check原创 2021-03-22 10:58:23 · 392 阅读 · 0 评论 -
mycat 分片规则-枚举分片-hash-int
为方便测试,本实例在以下案例中测试https://blog.csdn.net/qq_41712271/article/details/114984855?spm=1001.2014.3001.5501通过在配置文件中配置可能的枚举值, 指定数据分布到不同数据节点上, 本规则适用于按照省份或状态拆分数据等业务 , 配置如下:1 schema.xml配置<schema name="logic_shop_db" checkSQLschema="true" sqlMaxLimit="10.原创 2021-03-21 00:33:55 · 458 阅读 · 0 评论 -
mycat 分片规则-取模分片 mod-long
为方便测试,本实例在以下案例中测试https://blog.csdn.net/qq_41712271/article/details/114984855?spm=1001.2014.3001.5501原理取余分片方式:分片键(一个列)与节点数量进行取余,得到余数,将数据写入对应节点比如有4个节点,插入1-12 的 id,这样,会平均分配给各个节点。解决了,500w数据,只能在单一节点保存.1 schema.xml配置如下<schema name="logic_shop_db" c.原创 2021-03-20 17:23:18 · 382 阅读 · 1 评论 -
mysql 搭建主从复制,双主双从
双主双从 架构 一个主机 Master1 用于处理所有写请求,它的从机 Slave1 和另一台主机 Master2 还有它的从 机 Slave2 负责所有读请求。当 Master1 主机宕机后,Master2 主机负责写请求,Master1 、 Master2 互为备机。架构图如下: 其实和 一主一从的搭建很类似,可查看博文https://blog.csdn.net/qq_41712271/article/details/114992971唯一不同的,就是 两个主机 都 增加了log-slave.原创 2021-03-19 12:02:46 · 221 阅读 · 2 评论 -
mysql 搭建主从复制,一主一从
主机ip172.16.208.211从机ip172.16.208.2121 修改主机mysql配置文件 vi /etc/my.cnf 添加以下配置[mysqld]#主服务器唯一IDserver-id=1#启用二进制日志log-bin=mysql-bin#设置不要复制的数据库(可设置多个)binlog-ignore-db=mysqlbinlog-ignore-db=information_schema#设置需要复制的数据库binlog-do-db=blog#设置log...原创 2021-03-18 23:17:07 · 210 阅读 · 2 评论 -
mycat-垂直拆分和全局表使用案例
一种是按照不同的表(或者Schema)来切分到不同的数据库(主机)之上,这种切分可以称之为数据 的垂直(纵向)切分。主机分布情况172.16.208.214mycat服务器 【逻辑库,逻辑表】172.16.208.213mysql服务器 【实际库,实际表】172.16.208.212mysql服务器 【实际库,实际表】172.16.208.211mysql服务器 【实际库,实际表】开发步骤1 分别在 211,212,213三台机器上创建库和执行脚本导入数据, 其中...原创 2021-03-18 17:42:35 · 273 阅读 · 0 评论 -
mycat-rule.xml文件-配置参数-详细解释
<!-- schema.xml配置示例 --><!-- 逻辑表配置 --><table name="logic_table_1" dataNode="dn1,dn2,dn3" rule="auto-sharding-long"/>schema.xml中的规则名称,到 rule.xml中找到 tableRule标签对应的名称,再找到Function标签1rule .xmlrule.xml中定义所有拆分表的规则 , 在使用过程中可以灵活的使用分片算法 ...原创 2021-03-18 14:15:15 · 236 阅读 · 0 评论 -
mycat-server.xml文件配置案例--privileges对库和表增删改查做细粒度的权限控制
<firewall> <!-- 白名单 --> <whitehost> <host host="172.16.208.*" user="root"/> <host host="115.32.122.*" user="root"/> <host host="171.113.48.*" user="root"/> </whitehost> <..原创 2021-03-18 11:38:13 · 257 阅读 · 0 评论 -
mycat-server.xml文件配置案例--黑名单的使用
firewall标签下blacklist的设置,演示 不允许删除操作 <firewall> <!-- 白名单配置 --> <!-- 只能通过以下的ip才可以登陆 --> <whitehost> <host host="172.16.208.*" user="root"/> <host host="115.32.122.*" user="root"/> ..原创 2021-03-17 22:45:26 · 168 阅读 · 0 评论 -
mycat-server.xml文件配置案例--白名单的使用
firewall标签 下whitehost 的设置 <firewall> <whitehost> <!-- 只能通过以下的ip才可以登陆 --> <host host="172.16.208.*" user="root"/> <host host="115.32.122.*" user="root"/> </whitehost> <blacklist..原创 2021-03-17 20:49:37 · 312 阅读 · 0 评论 -
mycat-server.xml文件-配置参数-详细解释
1. 1 . 1 system 标签 属性 取值 含义 charset utf8 设置Mycat的字符集 , 字符集需要与MySQL的字符集保持一致 nonePasswordLogin 0 , 1 0为需要密码登陆、 1为不需要密码登陆 ,默认为0 , 设置为1则需要指定默认账户 ...原创 2021-03-17 15:07:54 · 582 阅读 · 0 评论 -
group by 分组去重
SELECT a.projectname,a.code,a.statename,a.managerid,a.managername FROM pms_project AS aINNER JOIN (SELECT CODE,MAX(managerid) AS managerid FROM pms_projectGROUP BY CODE) AS tON a.managerid=t.ma...原创 2019-09-21 12:34:32 · 5105 阅读 · 0 评论 -
从数据库读出来的日期后面多了个 .0 的解决办法
//创建要显示的日期格式//注意了,这里的 MM 在java中代表月份,而 mm 代表分钟, HH 代表24小时制的时间, hh 代表12小时制的时间,很严格的SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //String To Date//将从数据库读出来的 timestamp 类型的时...原创 2019-09-21 12:28:14 · 1995 阅读 · 0 评论