数据库
文章平均质量分 92
Cccccrj
这个作者很懒,什么都没留下…
展开
-
SQL 锁机制
文章目录SQL 锁机制表锁读锁写锁分析表锁定行锁行锁分析SQL 锁机制表锁读锁(共享锁):对同一个数据,多个读操作可以同时进行,互不干扰写锁(互斥锁):如果当前写操作没有完毕,则无法进行其他操作操作范围:表锁:一次对整个表加锁,MyISAM存储引擎使用表锁。开销小、加锁块、无死锁。容易发生锁冲突,并发度低。行锁:一次对一条数据加锁,InnoDB使用行锁,开销大、加锁慢、容易出现死锁。锁范围小,并发度高,不易发生锁冲突。读锁会话:每一个访问数据的dos命令行、数据库客户端工具,都是一原创 2020-07-16 10:41:55 · 1085 阅读 · 0 评论 -
SQL优化--索引优化/日志查询
文章目录SQL优化1 SQL语句2 索引2.1 索引弊端2.2 索引分类2.3 索引操作2.4 EXPLAIN解读select_type查询类型type索引类型possible_keys & key & key_lenref栏rowExtra额外信息3 优化语句3.1 单表优化3.2 多表优化3.3 原则总结3.4 其他优化方法4 SQL排查4.1 慢查询日志4.2 profiles查询海量日志SQL优化原因:性能低、执行时间长、等待时间长、SQL语句较差(连接查询)、索引失效、服务器参原创 2020-07-15 12:13:45 · 292 阅读 · 0 评论 -
MySQL索引 (Hash表和B-Tree比较)(MyISAM和InnoDB比较)
索引数据结构索引是帮助MySQL高效获取数据的排好序的数据结构Hash表 和 B-Tree 比较Hash通过对索引的hash快速获取地址值直接获取数据,在对索引的查询效率上高于B-TreeHash表通过List和红黑树对数据进行查询IO查询次数上方面:红黑树是二叉树,数据量大的情况下,树的层数高于B-Tree。使用Hash存取结构,会导致IO次数过高,而B-Tree只需要很少的查询次数。数据量很少的时候:Hash查找只是查找单个值,但是数据库查找离不开范围查找,例如select * from原创 2020-07-12 16:58:55 · 228 阅读 · 0 评论 -
Redis MySQL简单对比
Redis基于内存,速度快key,value格式worker 单线程epoll io 并发(串行)epoll 可以直接获取到是哪一个事件在进行读写操作,并且对其进行操作场景:多个客户端访问服务器。redis通过epoll知道是那个客户端要进行读写redis 读取客户端的io数据io两个阶段:1 获取客户端访问状态(读/写) 2 进行读写 IO操作对数据进行操作MySQL数据库:客户端访问服务器,当单个服务器只能承受一百个客户端访问时,此时来了两百个客户端,需要进行原创 2020-06-04 11:49:58 · 208 阅读 · 0 评论 -
Mybatis 注解原理及使用
注解注解和XML区别xml:xml使用标签,蓝色框:namespace找到映射的接口的位置,findAll找到对应的方法。红色框:查询所用语句,resultMap返回值格式,sql语句超找对应数据。注解:红色蓝色框对应xml中相同部分,蓝色框找到对应的类和方法,红色框查找并返回包装好的数据。注解多表查询@Results注解当数据库中的列名和用户的变量名不同时,使用@Results注解对参数进行转换。红色部分,其中:@Results注解中 id表示注解名,用于第二次调用@Resul原创 2020-05-31 16:55:34 · 778 阅读 · 0 评论 -
Mybatis 连接池&多表查询&延迟加载&缓存技术
文章目录mybatis 连接池mybatis 事务mybatis 连接池连接池就是用于存储连接的一个容器,减少我们获取数据库连接所消耗的时间,该集合必须是线程安全的,保证两个线程不会拿到同一个连接。SqlMapConfig.xml文件中的配置:dataSource type取值类型:POOLED:从池中获取连接,用完还给池UNPOOLED:每次都创建连接,用完关闭mybatis 事务...原创 2020-05-31 14:42:41 · 215 阅读 · 0 评论 -
数据库 索引使用方法
索引MySQL中使用B+Tree构建索引,因为这种方式在搜索效率方面较高。B-/+Tree结构详解,MySQL索引原理索引使用索引创建CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name[USING index_type]ON table_name(index_col_name(length));显示索引信息SHOW INDEX FROM table_name;删除索引DROP INDEX index_name ON tab原创 2020-05-30 22:48:42 · 368 阅读 · 0 评论 -
Mybatis框架实现CRUD操作以及参数深入
文章目录基础代码增加Create增加员工信息获取当前自增主键查询Retrieve根据id查员工模糊查询修改Update修改员工信息删除Delete根据di删除员工参数深入parameterType(输入类型)传递简单参数传递pojo包装对象结果类型封装ResultType存在实体类属性名不同的问题解决方法改变select语句使用resultMap基础代码减少重复代码量,在Test方法前后加@Before @After 注解方法,对资源进行创建和释放。private InputStream is = n原创 2020-05-27 17:25:47 · 226 阅读 · 0 评论 -
Mybatis 框架配置(mac)、使用流程入门
Mybatis定义MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。使用ORM思想实现了结果集的封装。ORM: Object Relational Mapping 对象映射关系,简单的说就是把数原创 2020-05-27 11:19:57 · 1353 阅读 · 0 评论 -
数据库连接池技术C3PO和druid以及 Spring JDBC
数据库连接池频繁的创建和释放Connection连接对象对资源产生极大浪费。数据库连接池是一个存放数据路连接对象的容器。当用于需要访问数据库时,从容器中获取容器对象,当用户访问完后,将对象归还给连接池。优点:节约资源用户访问高效实现方式标准接口:DataSource javax.sql包下一般不去实现,有数据库厂商实现C3P0: 数据库连接池技术Druid: 数据库连接池实现技术,阿里巴巴提供C3P0连接池导入 c3p0-0.9.5.5.jar和mchange原创 2020-05-24 11:16:14 · 193 阅读 · 0 评论 -
JDBC(Java DataBase Connectivity)应用
JDBC: 通过java语言操作数据库本质: Java公司定义的一套操作所有关系数据库的规则(接口)。各个数据库厂商去实现这套接口,提供数据库驱动jar包。这套接口编程,真正执行的代码是驱动jar包中的实现类。JDBC入门JDBC步骤导入驱动jar包//2 注册驱动Class.forName("com.mysql.jdbc.Driver");//3 获取数据库连接对象String url = "jdbc:mysql://localhost:3306/db1?useSSL=false"原创 2020-05-23 19:35:55 · 287 阅读 · 0 评论 -
数据库 事务(Transaction)和DCL数据控制语言
事务Transaction在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。如果一个包含多个步骤的业务操作,被事务管理,那么这些操作要么同时成功,要么同时失败。开启事务:start transaction回滚:rollback提交:commit 执行DML语句(增删改)后会自动提交一次事务查询自动提交方式select @@autocommit; -- 1 自动提交 0 手动提交set @@autocommit = 0; -- 修改提交方式事务样例:张三原创 2020-05-23 09:57:09 · 316 阅读 · 0 评论 -
数据库 约束(Constraint)、多表关系和范式
约束 Constraint概念: 对表中数据进行限制,保证数据正确性、有效性、完整性。分类主键:primary key配合INT类型主键非空:not null唯一:unique (唯一约束限定可以有多个NULL)外键:foreign key (外键名 和外键列名是两个东西)# 创建时添加create table 表名( ... 外键列, consstraint 外键名称 foreign key (外键列名) references 关联表名(主表列名) );#删除外键alte原创 2020-05-22 14:35:39 · 763 阅读 · 0 评论 -
SQL学习记录(MySQL指令大全)
SQLSQL定义: Structured Query Language 结构化查询语言SQL通用语法SQL可以单行书写可以多行书写,分号结尾空格 或缩进增加可读性MySQL数据库 SQL语句不区分大小写单行注释: -- 注释内容 或 # 注释内容;多行注释:/* 注释内容 */SQL分类DDL(Data Definition Language)数据定义语言:用来定义数据库对象:数据库、表、列表,关键字:creat、drop、alter等DML(Data Manipulation La原创 2020-05-22 09:50:35 · 159 阅读 · 0 评论