数据库
文章平均质量分 81
CopyLower
毕业后,参加工作先是制图行业,后转行从事Java软件开发,在华为、平安等公司工作过,有前端/后台的开发经验。
展开
-
MySQL学习
事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位,事务回滚是指将该事务已经完成的对数据库的更新操作撤销。要同时修改数据库中两个不同表时,如果它们不是一个事务的话,当第一个表修改完,可能第二个表修改过程中出现了异常而没能修改,此时就只有第二个表依旧是未修改之前的状态,而第一个表已经被修改完毕。而当你把它们设定为一个事务的时候,当第一个表修改完,第二表修改出现异常而没能修改,第一个表和第二个表都要回到未修改的状态,这就是所谓的事务回滚。原创 2024-02-25 12:42:01 · 232 阅读 · 0 评论 -
MySQL学习
InnoDB 存储引擎在 分布式事务 的情况下一般会用到 SERIALIZABLE(可串行化) 隔离级别。Memory:全表锁,存储在内容中,速度快,但会占用和数据量成正比的内存空间且数据在mysql重启时会丢失,默认使用HASH索引,检索效率非常高,但不适用于精确查找,主要用于那些内容变化不频繁的代码表。MYISAM:全表锁,拥有较高的执行速度,不支持事务,不支持外键,并发性能差,占用空间相对较小,对事务完整性没有要求,以select、insert为主的应用基本上可以使用这引擎。原创 2024-02-25 12:12:01 · 372 阅读 · 0 评论 -
sql语句创建数据库
应该考虑数据库的备份和恢复,以确保在发生数据丢失或故障的情况下可以快速恢复数据。在新的数据库中创建表,这将使数据可以存储在数据库中。在创建数据库时,可以指定一些选项,例如数据库的默认字符集和排序规则。应该考虑数据库的大小以及将存储在数据库中的数据量。UPDATE命令可以更改表中的特定行或列,也可以更改表中的所有数据。DELETE命令可以删除表中的特定行或列,也可以删除表中的所有数据。将数据插入到表中,这将使数据可以在数据库中进行存储和管理。在创建数据库之前,应该设计数据库的结构和架构。原创 2024-02-19 09:33:40 · 1477 阅读 · 0 评论 -
Redis基础学习一
value 既不是直接作为字符串存储,也不是直接存储在 SDS 中,而是存储在redisObject 中。实际上五种常用的数据类型的任何一种,都是通过 redisObject 来存储的。2、embstr, 代表 embstr 格式的 SDS(Simple Dynamic String 简单动态字符串),存储小于 44 个字节的字符串。key 是字符串,但是 Redis 没有直接使用 C 的字符数组,而是存储在自定义的 SDS中。3、raw,存储大于 44 个字节的字符串(3.2 版本之前是 39 字节)。原创 2024-01-05 17:57:44 · 435 阅读 · 0 评论 -
MySQL数据库学习三
一个事务或者说一个线程持有锁的时候,会阻止其他的线程获取锁,这个时候会造成阻塞等待,如果循环等待,会有可能造成死锁。如果一个事务长时间持有锁不释放,可以 kill 事务对应的线程 ID,也就是INNODB_TRX 表中的 trx_mysql_thread_id,例如执行 kill 4,kill 7,kill 8。因为锁本身是互斥的,(1)同一时刻只能有一个事务持有这把锁,(2)其他的事务需要在这个事务释放锁之后才能获取锁,而不可以强行剥夺,(3)当多个事务形成等待环路的时候,即发生死锁。原创 2024-01-02 10:47:13 · 928 阅读 · 0 评论 -
MySQL数据库学习二
第一个行级别的锁就是我们在官网看到的 Shared Locks (共享锁),我们获取了一行数据的读锁以后,可以用来读取数据,所以它也叫做读锁,注意不要在加上了读锁以后去写数据,不然的话可能会出现死锁的情况。但是我们锁住了表里面的一行数据的时候,其他的事务还可以来操作表里面的其他没有被锁定的行,所以表锁的冲突概率更大。第三种情况,当我们使用了范围查询,不仅仅命中了 Record 记录,还包含了 Gap间隙,在这种情况下我们使用的就是临键锁,它是 MySQL 里面默认的行锁算法,相当于记录锁加上间隙锁。原创 2024-01-02 10:40:38 · 806 阅读 · 0 评论 -
MySQL数据库学习一
在项目里面,什么地方会开启事务,或者配置了事务?无论是在方法上加注解,还是配置切面。</</比如下单,会操作订单表,资金表,物流表等等,这个时候我们需要让这些操作都在一个事务里面完成。当一个业务流程涉及多个表的操作的时候,我们希望它们要么是全部成功的,要么都不成功,这个时候我们会启用事务。原创 2024-01-01 09:42:09 · 1999 阅读 · 0 评论 -
分库分表之Mycat应用学习五
官网的架构图。原创 2024-01-01 08:51:48 · 978 阅读 · 0 评论 -
分库分表之Mycat应用学习四
将所有可能出现的值列举出来,指定分片。例如:全国 34 个省,要将不同的省的数据存放在不同的节点,可用枚举的方式。columns 标识将要分片的表字段,字符串类型,与 dateFormat 格式一致。离散分片的分区总数量和边界是确定的,例如对 key 进行哈希运算,或者再取模。比如范围分片(id 或者时间)就是典型的连续分片,单个分区的数量和边界是确定。这是先求模得到逻辑分片号,再根据逻辑分片号直接映射到物理分片的一种散列算法。总体上分为连续分片和离散分片,还有一种是连续分片和离散分片的结合,例如先。原创 2023-12-31 06:27:39 · 891 阅读 · 0 评论 -
分库分表之Mycat应用学习三
Mycat 本身不支持 insert select,通过注解支持/*!原创 2023-12-31 06:26:38 · 856 阅读 · 0 评论 -
分库分表之Mycat应用学习二
历史:从阿里 cobar 升级而来,由开源组织维护,2.0 正在开发中。定位:运行在应用和数据库之间,可以当做一个 MySQL 服务器使用,实现对 MySQL数据库的分库分表,也可以通过 JDBC 支持其他的数据库。Mycat 的关键特性(官网首页)1、可以当做一个 MySQL 数据库来使用2、支持 MySQL 之外的数据库,通过 JDBC 实现3、解决了我们提到的所有问题,多表 join、分布式事务、全局序列号、翻页排序4、支持 ZK 配置,带监控 mycat-web。原创 2023-12-30 17:44:02 · 832 阅读 · 0 评论 -
分库分表之Mycat应用学习一
当我们对原来的一张表做了分库的处理,如果某些业务系统的数据还是有一个非常快的增长速度,比如说还款数据库的还款历史表,数据量达到了几个亿,这个时候硬件限制导致的性能问题还是会出现,所以从这个角度来说垂直切分并没有从根本上解决单库单表数据量过大的问题。随着我们的业务继续膨胀,我们又会增加更多的系统来访问核心数据库,但是一个物理数据库能够支撑的并发量是有限的,所有的业务系统之间还会产生竞争,最终会导致应用的性能下降,甚至拖垮业务系统。可用性的两个关键一个是合理的时间,一个是合理的响应。JDBC 的核心对象:。原创 2023-12-30 17:09:51 · 590 阅读 · 0 评论