![](https://img-blog.csdnimg.cn/20190918140053667.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
MySQL
文章平均质量分 52
MySQL
陈汤姆
一只叫做汤姆的程序员
展开
-
resultMap的一对多联合查询
前言最近做一个问卷系统的项目,问卷系统包含了三部分,问卷、问题、问题选项,然后呢为了给前端数据,就要把这部分数据一起查出来,所以为了解决这个问题呢,就想到了使用resultMap但是没做过resultMap中嵌套resultMap的,所以呢就度娘一通,解决了这个问题,但是自己也要记录下来,好记性不如烂笔头!!!表结构如下:一个survey跟question是一对多,question与o...原创 2020-04-11 00:15:59 · 787 阅读 · 1 评论 -
MySQL:互联网公司常用分库分表方案汇总
一、数据库瓶颈不管是IO瓶颈,还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值。在业务Service来看就是,可用数据库连接少甚至无连接可用。接下来就可以想象了吧(并发量、吞吐量、崩溃)。1、IO瓶颈第一种:磁盘读IO瓶颈,热点数据太多,数据库缓存放不下,每次查询时会产生大量的IO,降低查询速度 -> 分库和垂直分表。第二种:网络IO瓶...转载 2020-03-31 22:32:49 · 153 阅读 · 0 评论 -
MySQL的判断语句的累加操作
前言今天遇到一个以前没见过的问题,需要对月份进行判断,然后进行一个求和操作,自己以前没有遇到过此类问题,所以在群里询问了各类大佬,最后终于解决了问题,虽然不是很难,但是也学到的新的东西,在此做一个记录。好了,言归正传,上问题!筛选xx表 A类+四大领域+1-上个月税后应收汇总在这个问题中,需要根据当前月份进行判断,然后将1到该月的数据进行累加汇总操作。所以此问题的解决方法如下:S...原创 2020-03-11 20:57:47 · 923 阅读 · 0 评论 -
The server time zone value '�й���ʱ��' is unrecognized or represents more than one time zone
启动项目时报出The server time zone value ‘�й���ʱ��’ is unrecognized or represents more than one time zone问题,这个问题在连接数据库时做了时间格式我用的是mysql8.0,所以这样的格式可能没法读取,因此需要在url后面添加serverTimezone=GMT。...原创 2020-01-02 14:08:23 · 655 阅读 · 0 评论 -
MySQL存储引擎
一、MySQL常用存储引擎1、InnoDB存储引擎从MySQL5.5版本之后,MySQL的默认内置存储引擎已经是InnoDB了,他的主要特点有:(1)灾难恢复性比较好;(2)支持事务。默认的事务隔离级别为可重复度,通过MVCC(并发版本控制)来实现的。(3)使用的锁粒度为行级锁,可以支持更高的并发;(4)支持外键;(5)配合一些热备工具可以支持在线热备份;(6)在InnoDB中存在...转载 2019-10-08 22:18:12 · 145 阅读 · 0 评论 -
数据库的乐观锁、悲观锁的理解
乐观锁的理解:乐观锁顾名思义就是很乐观,别人在拿数据的时候认为别人不会修改数据,所以不会上锁,但是在更新数据时会判断在此期间别人有没有修改这个数据,因为使用版本号机制来实现乐观锁。实现乐观锁的方法:- 版本号机制: 在数据表中加一个版本号字段version,表示被修改的次数,当数据被修改时,version的值会加1。 在读取数据时也会读取version的值,在提交更新时,若...原创 2019-09-11 09:59:14 · 164 阅读 · 0 评论 -
数据库事务隔离级别
一般的数据库包括四种事务隔离级别:读未提交读提交可重复读串行化1、读未提交读未提交就是可以读到未提交的内容。在这种隔离下,查询是不加锁的,也是因为查询不加锁,所以这种隔离级别的一致性最差,会产生“脏读”、“不可重复读”等2、读提交读提交就是已经读到了已经提交的内容。这是最常用的隔离级别,这种隔离级别可以有效的避免读未提交产生的“脏读”问题,但是在读提交中的查询中也是没有加锁...转载 2019-09-10 11:10:29 · 126 阅读 · 1 评论 -
数据库优化
- 优化思路创建索引,索引对经常查询的字段创建索引,不要索引过多,过多的索引会影响写入的效率,对查询也有影响。合理的数据库设计按照数据库的三范式进行表结构的设计 第一范式:数据表中的每个字段都是不可拆分的最小单元,确保每一列的原子性第二范式:满足第一范式之后,表中的每一列必须保持唯一性,都必须依赖主键第三范式:满足第二范式之后,表中每一列只与主键直接相关而不是间接相关,字段没有冗余。...转载 2019-09-10 10:52:19 · 80 阅读 · 0 评论 -
索引的理解
索引索引是建立在列上的一组数据结构,索引的数据结构存储了该列中的所有的值B-Tree索引:B-Tree是一个常用的用于索引的数据结构,在B-Tree中的数据是有序的。因为B-Tree是有序的,因此存储的列都是排好序的,因此通过索引查找时,可以很快定位到B-Tree中的值,然后查找到数据,哈希索引:哈希索引的数据是无序的。哈希索引的数据结构是哈希表,在哈希表中存储着索引列中的所有的值,...原创 2019-09-03 16:31:24 · 161 阅读 · 0 评论 -
MySQL循环插入多条数据
在数据库中通过插入List数据,避免了在后台中使用循环插入,减少时间复杂度,加快运行速度。<insert id="insertUserAll"> insert into sys_user( username, create_user_id, create_time, company_id, browse_companies_id, status )va...原创 2019-07-24 16:38:28 · 2642 阅读 · 0 评论 -
sql中case when的用法
select *,CASEWHEN a. STATUS IN (1, 2) THEN(SELECTordernumberFROMadvertising_order fWHEREa.bill_of_origin_id = f.id)WHEN a. STATUS IN (3, 4) THEN(SELECTremittance_flow_numberFROMaccount...原创 2019-04-01 11:38:32 · 149 阅读 · 0 评论 -
mysql根据天数更新数据库中的字段
mysql语句根据天数更新数据库中的字段UPDATE order_itemsSET STATUS = 3WHERE TIMESTAMPDIFF(DAY,deliver_time,NOW()) &gt;= 21timestampdiff中是后面的字段减去前面的字段原创 2018-12-26 16:08:39 · 293 阅读 · 0 评论