数据库
文章平均质量分 77
过街的老鼠
耽误太多时间,事情可就做不完了。
展开
-
Mybatis批量添加(foreach标签)
delete from xxx_table where id in <foreach collection="list" item="item" index="index" open="(" separator="," close=")"> #{item}</foreach> => (1,2,3,4)foreach标签:主要应用于批量删除与批量插入操作。foreach标签包含的的常用属性有collection,item,index,open,separ.原创 2021-11-30 20:32:29 · 4222 阅读 · 0 评论 -
数据库连接池的实现
JDBCUtil工具类 package com.ln.jdbc;import java.sql.Connection;import java.sql.DriverManager;import java.util.Properties;public class JDBCUtils { /** * 获取连接 * @return * @throws Exception */ public static Connection getCo..原创 2022-04-18 11:40:19 · 642 阅读 · 0 评论 -
聚簇索引和非聚簇索引
聚簇索引聚簇索引并不是一种单独的索引类型,而是一种数据存储方式。聚簇索引就是按照每张表的主键构造一颗B+树,同时叶子节点中存放的就是整张表的行记录数据,也将聚集索引的叶子节点称为数据页。这个特性决定了索引组织表中数据也是索引的一部分,每张表只能拥有一个聚簇索引。每个InnoDB表都有一个特殊的索引,称为聚簇索引,用于存储行数据。如果创建了一个主键,InnoDB会将其用作聚簇索引(如果主键没有逻辑唯一且非空的列或列集,最好是设置成自动递增的)。 如果没有为表创建主键,则MySQL会在所有键列原创 2022-04-10 10:05:40 · 4111 阅读 · 0 评论 -
行锁和表锁的区别
行锁在MySQL的InnoDB引擎支持行锁,与Oracle不同,MySQL的行锁是通过索引加载的,也就是说,行锁是加在索引响应的行上的,要是对应的SQL语句没有走索引,则会全表扫描,行锁则无法实现,取而代之的是表锁,此时其它事务无法对当前表进行更新或插入操作。特征:锁冲突概率低,并发性高,但是会有死锁的情况出现。行锁的实现需要注意: 行锁必须有索引才能实现,否则会自动锁全表,那么就不是行锁了。 两个事务不能锁同一个索引。 insert,delete,update在事原创 2022-04-09 19:41:06 · 4283 阅读 · 1 评论 -
存储引擎的介绍、使用和区别
目录InnoDB引擎:具备外键支持功能的事务存储引擎MyISAM引擎:主要的非实物存储引擎InnoDB和MyISAMArchive引擎CSV引擎:存储数据时,以逗号分隔各个数据Memory引擎:置于内存的表概述主要特征使用场景InnoDB引擎:具备外键支持功能的事务存储引擎MySQL从3.23.34a开始就包含InnoDB存储引擎。大于 等于5.5之后,默认采用InnoDB引擎。InnoDB是MySQL的默认事务型引擎,它被设计用来处理大量的短期(sh原创 2022-04-08 21:13:37 · 975 阅读 · 0 评论 -
数据库连接池技术详解
数据库连接池的必要性在使用开发基于数据库的web程序时,传统的模式基本是按以下步骤:在主程序(如service、beans)中建立数据库连接 执行sql语句 断开数据库连接这种开发模式存在的问题:普通的JDBC数据库连接使用DriverManager来获取,每次向数据库建立连接的时候都要将Connection加载到内存中,再验证用户名和密码(得花费0.05s ~ 1s的时间)。需要数据库连接的时候,就向数据库请求一个,执行完成后再断开连接。这样的方式将会消耗大量的资源和时间。数据库的连接资原创 2022-04-07 15:58:09 · 722 阅读 · 0 评论 -
最全解读MVCC
简介MVCC(Multi-Version Concurrency Control)即多版本并发控制,主要是为了提高数据库的并发性能同一行数据平时发生读写请求时,会被上锁阻塞住,但mvcc用更好的方式去处理读写请求,使其不用加锁。这个读时快照读,而不是当前读,当前读是一种加锁操作,即悲观锁。快照读、当前读当前读他读取的数据库记录,都是当前最新的版本,会对当前读取得数据进行加锁,防止其他食物修改数据。是悲观锁的一种操作。如update、insert、delete快照读快照读的实现原创 2022-04-07 12:59:29 · 791 阅读 · 0 评论 -
事务隔离级别(MYSQL)
什么是事务?事务是逻辑上的一组操作,要么都执行,要么都不执行。事务最经典也经常被拿出来说例子就是转账了。假如小明要给小红转账1000元,这个转账会涉及到两个关键操作就是:将小明的余额减少1000元,将小红的余额增加1000元。万一在这两个操作之间突然出现错误比如银行系统崩溃,导致小明余额减少而小红的余额没有增加,这样就不对了。事务就是保证这两个关键操作要么都成功,要么都要失败。事务的特性(ACID) 原子性: 事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起原创 2022-04-03 22:15:33 · 78 阅读 · 0 评论