随笔分类 - MySQL
MySQL - 索引下推
摘要:在索引满足最左前缀匹配的时候,将部分不满足逻辑的数据过滤掉,减少回表操作。 比如有如下表格 | ID | 姓名 | 年龄 |性别| | | | | | | 1 | 张三 | 15 | 男 | | 2 | 张四 | 10 | 男 | | 3 | 张五 | 10 | 女 | | 4 | 李四 | 21
MySQL - 分页问题
摘要:MySQL中的分页 MySQL中通过LIMIT关键字可以实现分页,如:(其中0表示开始记录数,10表示返回数据的数量) SELETE * FROM table_name LIMIT 0, 10 MyBatis中的分页 MyBatis中的分页分为物理分页和逻辑分页。 物理分页 物理分页使用数据库中的分
MySQL - 并发事务出现的问题
摘要:1. 脏读 含义:在事务过程中,读到了其它事务为提交的数据。 解决方法:将数据库事务提升到读已提交或以上的隔离级别。 2. 不可重复读 含义:一次事务中,两次读操作中,读出来的数据内容不一致。 解决方法:将数据库事务提升到可重复读或以上的隔离级别。 3. 幻读 含义:一次事务中,两次读操作中,读到的
MyBatis - MyBatis的层次结构
摘要:API接口层 规定了一系列接口,能够向外提供接口,对内进行操作。 数据处理层 负责SQL相关处理工作,如:SQL查找、SQL执行、SQL映射等工作。 基础支撑层 提供基础功能支撑,包括连接管理、事务管理、配置加载和缓存处理。
MyBatis - SqlSessionFactory 与 SqlSession
摘要:SqlSessionFactory SqlSessionFactory是创建SqlSession的工厂,一般使用单例模式,不需要重复创建。 SqlSession SqlSession是直接与数据库直接进行交互的对象,能够执行SQL语句,在使用后应该关闭SqlSession,避免内存泄漏。 每个线程都
MySQL - MyISAM和InnoDB的区别
摘要:InnoDB支持事务,MyISAM不支持。InnoDB会将单条语句封装成事务,自动提交。 MyISAM不支持外键。 InnoDB能够使用聚簇索引保存数据。MyISAM只能使用B+树,在叶子节点保存索引数据和文件指针。 MyISAM的锁最细只能是表锁,不支持行锁和间隙锁。 InnoDB必须要拥有主键,
MySQL - 数据库设计步骤
摘要:需求分析:分析用户的需求,包括数据、功能和性能需求。 概念结构设计:主要采用E-R模型进行设计,包括画E-R图。 逻辑结构设计:通过将E-R图转换成表,实现从E-R模型到关系模型的转换,进行关系规范化。 数据库物理设计:主要是为所设计的数据库选择合适的存储结构和存储路径。 数据库的实施:包括编程、测
MySQL - 锁的分类
摘要:MySQL - 锁的分类 1. 加锁机制 乐观锁 悲观锁 2. 兼容性 共享锁 排他锁 3. 锁粒度 表锁 页锁 行锁 4. 锁模式 记录锁(record-lock) 间隙锁(gap-lock) next-key-lock 意向锁 插入意向锁
MySQL - 索引类型
摘要:MySQL - 索引类型 主键索引(Primary Key) 数据表的主键列使用的就是主键索引。 一张数据表有只能有一个主键,并且主键不能为 null,不能重复。 在 MySQL 的 InnoDB 的表中,当没有显示的指定表的主键时,InnoDB 会自动先检查表中是否有唯一索引且不允许存在null值
MySQL - 事务隔离级别
摘要:MySQL - 事务隔离级别 READ-UNCOMMITTED(读取未提交): 最低的隔离级别,允许读取尚未提交的数据变更,可能会导致脏读、幻读或不可重复读。 READ-COMMITTED(读取已提交): 允许读取并发事务已经提交的数据,可以阻止脏读,但是幻读或不可重复读仍有可能发生。 REPEAT
MySQL - 数据库的隔离级别
摘要:MySQL - 数据库的隔离级别 隔离级别 脏读(Dirty Read) 不可重复读(NonRepeatable Read) 幻读(Phantom Read) 未提交读(Read uncommitted) 可能 可能 可能 已提交读(Read committed) 不可能 可能 可能 可重复读(Re