
数据库
旺仔小秃头ξ( ✿>◡❛)
这个作者很懒,什么都没留下…
展开
-
事务的隔离级别
(一事务写时禁止其他事务读写、一事务读时禁止其他事务读写)含义解释:限制同一数据写事务禁止其他读写事务,读事务禁止其它写事务(允许读)。(一事务写时禁止其他事务读写、一事务读时禁止其他事务写)第一个事务正在查询符合条件的数据,这时,另一个事务又插入了一条符合数据的数据,第一个事务在第二次查询符合同一条数据时,发现多了一条前一次查询没有的数据,这就是幻读。一个事务正在对数据进行更新但更新未提交,另一个事务读取到了未提交数据,而前一个事务操作失败回滚,后一个事务就脏读了。(一事务写时禁止其他事务写)原创 2024-09-03 10:34:55 · 323 阅读 · 1 评论 -
事务的特性
事务隔离分为不同级别,包括读未提交(Read uncommitted)、读提交(read committed)、可重复读(repeatable read)和串行化(Serializable)。一个事务(transaction)中的所有操作,或者全部完成,或者全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被恢复(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。即,事务不可分割、不可约简。在事务开始之前和事务结束以后,数据库的完整性没有被破坏。原创 2024-09-03 10:17:28 · 274 阅读 · 0 评论 -
聚簇索引和非聚簇索引
如果对索引列的数据被修改时,那么对应的索引也将会被修改, 而且况聚集索引的叶子节点还存放着数据,修改代价肯定是较大的, 所以对于主键索引来说,主键一般都是不可被修改的。MYISAM 引擎的表的.MYI 文件包含了表的索引, 该表的索引(B+树)的每个叶子非叶子节点存储索引, 叶子节点存储索引和索引对应数据的指针,指向.MYD 文件的数据。文件就包含了该表的索引和数据,对于 InnoDB 引擎表来说,该表的索引(B+树)的每个非叶子节点存储索引,叶子节点存储索引和索引对应的数据。原创 2024-08-29 22:16:01 · 263 阅读 · 0 评论 -
MyBatis中#{}和 ${}的区别是什么?
使用#{}传入的参数会以字符串的形式进行匹配,而${}传入的参数是直接替换,数值类型像id可以直接替换,但是如果是姓名、性别这种直接替换会出错。我们经常使用的是#{},是因为这种方式可以防止SQL注入,#{}这种方式SQL语句是经过预编译的,它把#{}中间的参数转义成字符串。动态解析时候,会传入参数字符串:select * from table where name = 'zhangSan'#传入的参数在SQL中显示为字符串,会堆自动传入的数据加上双引号。而使用${}在动态解析时候,会传入参数字符串。原创 2024-08-29 18:19:45 · 517 阅读 · 0 评论 -
【数据库】Explain关键字
Explain 是 SQL 中的一个命令,它用于显示 SQL 查询的执行计划。执行计划是数据库系统如何执行查询的详细步骤,包括查询的各个部分如何被优化和执行。原创 2024-07-23 10:00:00 · 1410 阅读 · 0 评论 -
【数据库】联合索引在b+树如何存储
联合索引是一种数据库索引类型,它允许你基于表中两个或多个列的组合来创建索引。这种索引可以提高数据库查询的性能,特别是当查询条件涉及到这些列时。非叶子节点:存储索引关键字信息,是线性排列的,每个系欸但的数据排列顺序和创建索引字段的顺序一致。叶子节点:存储索引列的值和主键id,排列规则与非叶子节点一致。原创 2024-07-22 21:17:14 · 542 阅读 · 0 评论 -
【数据库】最左前缀原则
如User表的name和city加联合索引就是(name,city),而最左前缀原则指的是,如果查询的时候查询条件精确匹配索引的左边连续一列或几列,则此列就可以被用到。这里需要注意的是,查询的时候如果两个条件都用上,但是顺序不同,如 city = xx and name = xx,那么现在的查询引擎会自动优化为匹配联合索引的顺序,这样是能够命中索引的。由于最左前缀的原则,在创建联合索引时,索引字段的顺序需要考虑字段值去重之后的个数,较多的放前面。order by子句也遵循此规则。原创 2024-07-22 17:25:47 · 304 阅读 · 0 评论 -
【数据库】那些操作会引起索引失效
例如:WHERE column1 = value1 OR column2 = value2,如果column1 和column2 都没有索引,或者没有同时为这两列创建复合索引,查询可能会全表扫描。如果JOIN条件的列没有索引,或者索引不适合当前的查询条件,可能会导致索引失效。如果排序或分组的列没有索引,或者索引不适合当前的查询条件,可能会导致索引失效。如果子查询的结果集很大,或者子查询的列没有索引,可能会导致索引失效。如果列没有索引,或者索引不适合当前的查询条件,可能会导致索引失效。原创 2024-07-21 21:22:59 · 491 阅读 · 0 评论