数据库
kelley_luxuiary
这个作者很懒,什么都没留下…
展开
-
MyISAM 和 InnoDB 锁总结
为什么要用锁?你在试衣间试衣服,没有锁,别人就会推门进来,场面会很尴尬!!!什么是锁?锁是计算机协调多个进程或线程并发访问某一资源的机制; 在数据库中,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素; 锁对数据库而言显得尤其重要,也更加复杂。Mysql中的锁?表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低; 行级锁:开销大,加锁慢;会出现死锁;锁.原创 2020-06-04 17:35:45 · 114 阅读 · 0 评论 -
Mybatis
什么是Mybatis1、Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement 等繁杂的过程。程序员直接编写原生态 sql,可以严格控制 sql 执行性能,灵活度高。 2、MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO 映射成数据库中的记录,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。 3、通过 xml 文件或注解的方式将要执行的各种原创 2020-05-13 11:28:36 · 241 阅读 · 0 评论 -
数据库为什么用事务、事务的特性、事务的并发问题以及事务的隔离级别
为什么要有事务?举个例子你给你的朋友转账100;如果先从自己的账户中扣除转账金额,再往对方账户中增加转账金额,扣除执行成功,增加执行失败,那自己的账户白白少了100块,欲哭无泪。如果先往对方账户中增加转账金额,再从自己的账户中扣除转账金额,增加执行成功,扣除执行失败,那对方账户白白增加了100块,自己的账户也没有扣钱,喜大普奔。但是无论这两种情况中发生,银行都是不允许的。所以就...原创 2020-05-07 13:34:43 · 161 阅读 · 0 评论 -
Redis持久化
什么是Redis持久化?持久化就是把内存的数据写到磁盘中去,防止服务宕机了内存数据丢失。edis 的持久化机制是什么?各自的优缺点?Redis 提供两种持久化机制 RDB(默认) 和 AOF 机制...原创 2020-05-06 14:11:16 · 91 阅读 · 0 评论 -
数据库优化
数据库优化主要可以分为两大类,软优化和硬优化:软优化一般是操作数据库即可,而硬优化则是操作服务器硬件及参数设置.先比较三个sql:student表中有四条数据,如图:select id from student where sex is not null;select id from student where sex BETWEEN 1 and 2;selec...原创 2020-05-07 09:34:40 · 237 阅读 · 0 评论 -
什么是Redis?Redis在项目中的使用场景?
什么是Redis在日常的Java Web开发中,无不都是使用数据库(sql Server\mysql...)来进行数据的存储,由于一般的系统任务中通常不会存在高并发的情况,所以这样看起来并没有什么问题,可是一旦涉及大数据量的需求,比如一些商品抢购的情景,或者是主页访问量瞬间较大的时候,单一使用数据库来保存数据的系统会因为面向磁盘,磁盘读/写速度比较慢的问题而存在严重的性能弊端,一瞬间成千上万的...原创 2020-04-18 16:26:18 · 1470 阅读 · 0 评论 -
面试时需要掌握的 Mycat分库分表技能
分库分表的意义:把压力分摊到不同的服务器上场景描述:一张表100w,按ID(分库字段)除以10取模,分到10个库1号库id最后位总是12号库id最后位总是2以此类推......不同的表尽量创建在不同机器上,别10张表都在一个机器上,甚至一个数据库上,这样做的意义不大实际操作时,可以分到5台服务器上,每个服务器上2个数据库,不同的库上,表结构相同Mycat可以...原创 2020-04-23 13:59:12 · 343 阅读 · 0 评论 -
mysql 和 redis 数据不致性怎么办?
在高并发的业务场景下,mysql 和 redis很容易出现数据不一致。比如:如果删除了缓存Redis,还没有来得及写库MySQL,另一个线程就来读取,发现缓存为空,则去数据库中读取数据写入缓存,此时缓存中为脏数据。 如果先写了库,在删除缓存前,写库的线程宕机了,没有删除掉缓存,则也会出现数据不一致情况。如何解决?延迟双删 +懒加载什么是懒加载?当业务读取数据的时候再从存储层...原创 2020-04-23 11:44:56 · 135 阅读 · 0 评论 -
Mysql 十问
1:为什么要一定要设置主键?其实这个不是一定的,有些场景下,小系统或者没什么用的表,不设置主键也没关系,mysql最好是用自增主键,主要是以下两个原因:果定义了主键,那么InnoDB会选择主键作为聚集索引、如果没有显式定义主键,则innodb 会选择第一个不包含有NULL值的唯一索引作为主键索引、如果也没有这样的唯一索引,则innodb 会选择内置6字节长的ROWID作为隐含的聚集索引。所以,...原创 2020-04-23 11:15:22 · 166 阅读 · 0 评论 -
Mysql索引创建规则?
Mysql索引创建规则?什么时候适合创建索引?什么时候不适合?为什么?性能下降SQL慢 执行时间长 等待时间长是什么?索引(Index)是帮助mysql高效获取数据的数据结构。优势:提高数据检索效率,降低数据库的IO成本; 通过索引列对数据进行排序,降低数据排序成本,降低了CPU的消耗劣势:虽然索引大大提高了查询速度,同时却降低更新表的速度。 原因...原创 2020-04-20 17:38:58 · 116 阅读 · 0 评论 -
Mybatis 中当实体的属性名和表中的字段名不一样,怎么办?
1. sql语句中 as 别名2. 在mybatis的全局配置文件中开启驼峰命名规则<settings> <setting name="mapUnderscoreToCamelCase" value="true" /></settings>3.在mapper映射文件中使用<resultMap>来自定义命名规...原创 2020-04-20 17:22:20 · 213 阅读 · 0 评论 -
数据库三大范式
第一范式(1NF):字段是原子性的,不可分;比如:客户表中的户籍地址,不要一个字段里面存有省市区等信息,而是将他们拆分;第二范式(2NF):有主键,非主键字段依赖主键。确保一个表只说明一个事物;比如:订单表中不要包含商品的信息;第三范式(3NF):非主键字段不能相互依赖。 每列都与主键有直接关系,不存在传递的依赖...原创 2020-04-15 22:10:53 · 107 阅读 · 0 评论