![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库
打不死的喜羊羊
开心快乐每一天
展开
-
查出数据库被锁的表,并kill掉
查出数据库被锁的表,并kill掉原创 2023-10-11 15:15:40 · 129 阅读 · 0 评论 -
浅谈用JSON字符串代替mysql的拓展表设计的备选方案
浅谈用JSON字符串代替mysql的拓展表设计的备选方案原创 2023-06-19 09:55:59 · 764 阅读 · 0 评论 -
如何配置多数据源
如何配置多数据源原创 2022-05-24 15:44:14 · 276 阅读 · 0 评论 -
Springboot配置数据库时区
Springboot配置数据库时区原创 2022-05-12 09:52:52 · 1132 阅读 · 0 评论 -
SpringBoot配置logback-spring.xml文件,输出日志
SpringBoot配置logback-spring.xml文件,输出日志原创 2022-03-21 16:57:25 · 1592 阅读 · 0 评论 -
mongodb分析语句
优化方向:索引(1)如果包含的字段在复合索引里,可以把单字段索引删除(2)复合索引的字段优先级顺序如下:短语字段>排序索引>范围索引(3)即:???_1_sort_1_time1如果复合索引全为短语,则辨识度高的(重复的少)在最左边,遵循最左原则,与mysql一致(4)复合索引满足查询的即可,不需要每个字段都加上去,不然还是全表扫描主要看: winningPlan,stage=FETCH+IXSCAN,即可更佳的优化这里不叙述了。。。...原创 2020-08-22 17:44:35 · 196 阅读 · 0 评论 -
MySQL时间类型datetime、bigint及timestamp的查询效率
bigint>datetime>timestamp所以尽量试用时间戳方式存储时间原创 2020-07-07 11:00:26 · 1033 阅读 · 0 评论 -
mongo常用语句
1,批量更新db.getCollection('表').update({"对象名.字段名":1},{$set:{"对象名.字段名":值}},false,true)2,查找内嵌对象符合某字段的所有记录db.getCollection('表').find({"对象名.字段名":值})原创 2020-06-16 11:45:06 · 157 阅读 · 0 评论 -
mongodb建立索引注意事项
正文1,如果包含的字段在复合索引里,可以把单字段索引删除2,复合索引的字段优先级顺序如下:短语字段>排序索引>范围索引即:???_1_sort_1_time13,如果复合索引全为短语,则辨识度高的(重复的少)在最左边,遵循最左原则,与mysql一致...原创 2020-06-01 15:05:45 · 626 阅读 · 0 评论 -
排查MongoDB CPU使用率高的问题
分析MongoDB数据库正在执行的请求1,执行db.currentOp()命令,查看数据库当前正在执行的操作。该命令的输出示例如下。{ "desc" : "conn632530", "threadId" : "140298196924160", "connectionId" : 632530, "client" : "11.192.159.236:57052", "active" : true, "opid原创 2020-05-26 16:33:56 · 353 阅读 · 0 评论 -
mongodb整理物理空间碎片以提升磁盘利用率
第一步:登录mongodb,并进入到一个数据库mongo 127.0.0.1:27017use 数据库第二步:使用命令,db.status(),查看内存使用主要看storageSize第三步:查看预计回收内存db.<collection_name>.stats().wiredTiger["block-manager"]["file bytes available for reuse"]<>注意要去除第四步:执行以下命令,对某个集合进行碎片整理db.runComm原创 2020-05-26 16:11:28 · 543 阅读 · 0 评论 -
mongodb实现副本集与读写分离
以上是思维导图,并不以纯文字描述。原创 2020-05-18 18:22:44 · 339 阅读 · 0 评论 -
MYSQL快速删除时间段前的数据
引言MYSQL快速删除时间段前的数据,最好不要一次性<=time。否则就算在日期上加了索引,也会因为时间跨度太大而造成慢查询;解决方案把时间切割成一段段时间。最好是一天操作一次...原创 2020-04-15 14:22:42 · 1059 阅读 · 0 评论 -
MySQL 加锁和死锁
产生死锁的必要条件1,多个并发事务(2个或者以上)2,每个事物都持有了锁(或者是已经在等待锁)3,每个事务都需要再继续持有锁(为了完成事务逻辑,还必须更新更多的行)4,事物之间产生加锁的循环等待,形成死锁常规锁模式LOCK_S(读锁,共享锁)LOCK_X(写锁,排它锁)锁的属性LOCK _REC_NOT_GAP(锁记录)LOCK_GAP(锁记录前的GAP)LOCK_ORDI...原创 2020-04-05 11:59:32 · 197 阅读 · 0 评论 -
我敢打赌,你肯定不知道向MySQL数据库插入100w条数据要花多久时间?
多线程插入(单表)问:为何对同一个表的插入多线程会比单线程快?同一时间对一个表的写操作不应该是独占的吗?答:在数据里做插入操作的时候,整体时间的分配是这样的:1、多链接耗时 (30%)2、多发送query到服务器 (20%)3、多解析query (20%)4、多插入操作 (10% * 词条数目)5、多插入index (10% * Index的数目)6、多关闭链接 (10%)从这里...原创 2020-04-02 12:28:28 · 362 阅读 · 0 评论 -
CONCAT_WS以特殊符号拼接多个字段
CONCAT_WS("/",ast.apply_num,ast.stay_back_num,ast.retired_num)原创 2019-11-29 14:02:27 · 1008 阅读 · 0 评论 -
一个字符串模糊匹配多个字段
根据一个keyword模糊匹配多个字段 <if test="keyWords != null and keyWords != ''"> AND ( u.nickname LIKE CONCAT('%',#{keyWords},'%') OR o.order_sn LIKE CONCAT('%',#...原创 2019-11-28 18:25:45 · 1489 阅读 · 0 评论 -
前5名最佳SQL数据库恢复软件
导言在本文中,我们将研究最优秀的5种SQL数据库恢复软件,这些软件将帮助我们从损坏的.mdf和.ndf文件中恢复和恢复数据库。在这里,我将教您如何操作该软件,以及它们将如何为我们恢复文件。前5名最佳SQL数据库恢复软件列表:MSSQL的恒星修复DatanmenSQL恢复磁盘内部MSSQL恢复ArysonSQL数据库恢复SQL恢复内核MSSQL的恒星修复下载地址MSSQL的星光修...翻译 2019-11-20 17:54:20 · 3224 阅读 · 0 评论 -
CONCAT_WS,拼接逗号模糊匹配多字段中的一个字段
例子:AND CONCAT_WS(',',ug.`user_id`,u.`nickname`,o.`organization_name`,ug.`open_gid`,ug.`user_group_name`) LIKE CONCAT('%',#{keyWords},'%')根据一个keyword,匹配CONCAT_WS里的涉及到的字段...原创 2019-11-11 16:55:59 · 305 阅读 · 0 评论 -
case when 空值判断
mysql判断空值,为空时输出A,否则输出B(case when 字段名 is null then 'A' else 'B' end) 'C'原创 2019-10-17 11:36:15 · 4417 阅读 · 0 评论 -
FIND_IN_SET用法
MySQL中,如果要切割以逗号为分隔符的字符串,获取到元素对应的信息(例如名字),最后的结果拼接起来,可以使用FIND_IN_SET;SELECT agb.goods_group_ids,agbr.act_type,agbr.people_num,agbr.discount,agbr.group_booking_time,agbrt.rule_text, (SELECT GROUP_CON...原创 2019-10-17 10:44:11 · 361 阅读 · 0 评论 -
现在有一个未分库分表的系统,未来要分库分表,如何设计才可以让系统从未分库分表动态切换到分库分表上?
面试题现在有一个未分库分表的系统,未来要分库分表,如何设计才可以让系统从未分库分表动态切换到分库分表上?面试官心理分析你看看,你现在已经明白为啥要分库分表了,你也知道常用的分库分表中间件了,你也设计好你们如何分库分表的方案了(水平拆分、垂直拆分、分表),那问题来了,你接下来该怎么把你那个单库单表的系统给迁移到分库分表上去?所以这都是一环扣一环的,就是看你有没有全流程经历过这个过程。面试题...转载 2019-08-07 10:29:40 · 133 阅读 · 0 评论 -
为什么要分库分表(设计高并发系统的时候,数据库层面该如何设计)?用过哪些分库分表中间件?不同的分库分表中间件都有什么优点和缺点?你们具体是如何对数据库如何进行垂直拆分或水平拆分的?
面试题为什么要分库分表(设计高并发系统的时候,数据库层面该如何设计)?用过哪些分库分表中间件?不同的分库分表中间件都有什么优点和缺点?你们具体是如何对数据库如何进行垂直拆分或水平拆分的?面试官心理分析其实这块肯定是扯到高并发了,因为分库分表一定是为了支撑高并发、数据量大两个问题的。而且现在说实话,尤其是互联网类的公司面试,基本上都会来这么一下,分库分表如此普遍的技术问题,不问实在是不行,而如...转载 2019-08-07 10:19:20 · 153 阅读 · 0 评论 -
分库分表之后,id 主键如何处理?
面试题分库分表之后,id 主键如何处理?面试官心理分析其实这是分库分表之后你必然要面对的一个问题,就是 id 咋生成?因为要是分成多个表之后,每个表都是从 1 开始累加,那肯定不对啊,需要一个全局唯一的 id 来支持。所以这都是你实际生产环境中必须考虑的问题。面试题剖析基于数据库的实现方案数据库自增 id这个就是说你的系统里每次得到一个 id,都是往一个库的一个表里插入一条没什么业务...转载 2019-08-08 15:22:37 · 119 阅读 · 0 评论 -
如何设计可以动态扩容缩容的分库分表方案?
面试题如何设计可以动态扩容缩容的分库分表方案?面试官心理分析对于分库分表来说,主要是面对以下问题:1,选择一个数据库中间件,调研、学习、测试;2,设计你的分库分表的一个方案,你要分成多少个库,每个库分成多少个表,比如 3 个库,每个库 4 个表;3,基于选择好的数据库中间件,以及在测试环境建立好的分库分表的环境,然后测试一下能否正常进行分库分表的读写;4,完成单库单表到分库分表的迁移...转载 2019-08-08 15:14:24 · 135 阅读 · 0 评论 -
你们有没有做 MySQL 读写分离?如何实现 MySQL 的读写分离?MySQL 主从复制原理的是啥?如何解决 MySQL 主从同步的延时问题?
面试题你们有没有做 MySQL 读写分离?如何实现 MySQL 的读写分离?MySQL 主从复制原理的是啥?如何解决 MySQL 主从同步的延时问题?面试官心理分析高并发这个阶段,肯定是需要做读写分离的,啥意思?因为实际上大部分的互联网公司,一些网站,或者是 app,其实都是读多写少。所以针对这个情况,就是写一个主库,但是主库挂多个从库,然后从多个从库来读,那不就可以支撑更高的读并发压力了吗...转载 2019-08-09 13:55:46 · 272 阅读 · 0 评论 -
SQL_CALC_FOUND_ROWS与left join与子查询,延迟关联哪个效率更好?百万,千万级以上数据分页要怎么分才能最高效率?
引言现在越来越多的项目使用代码生成器,所以我们写分页的时候基本都是直接用代码生成器生成的代码,就算是需要关联多表自定义SQL查询分页,也是用left join进行关联,那么,各位有没有想过这么一个问题,当生产环境的表到达百万获千万以上数据时,进行分页查询,用left join分最后几页的时候(甚至都不到一半都慢了许多。。)还合适吗?正文left join(常规的limit)适用于记录数少的...原创 2019-08-14 11:11:19 · 547 阅读 · 0 评论 -
mysql中LEFT JOIN分页时的优化方法
引言查询的时候使用LEFT JOIN,配合分页要怎么优化?正文常见的分页SQL:SELECT *FROM table1 t1LEFT JOIN table2 t2 ON t2.id = t1.idLEFT JOIN table3 t3 ON t3.id = t1.idLEFT JOIN table4 t4 ON t4.id = t1.idWHERE t1.id = 1 AND ...原创 2019-08-20 11:40:47 · 1713 阅读 · 0 评论 -
mycat分库分表(超详细)
引言本文将从零开始进行分库分表,包括环境的安装;正文1,安装JDK,我的是1.8版本2,安装MYSQL(必须5.5以上),我的是5.5版本3,下载mycat准备工作创建三个数据库与三张表,用于测试create database db01 ;use db01; CREATE TABLE users ( id INT NOT NULL AUTO_INCREMENT, ...原创 2019-08-15 18:33:09 · 1601 阅读 · 0 评论 -
MYSQL主从复制(详细,不留坑)
引言在Windows下配置了Mysql的主从复制,尽量做到详细不留坑,让各位直接复制粘贴都能够直接上手正文主、从库第一步、修改配置文件(建议复制我的,之后熟悉了再自己改)MySQL Server 5.5文件夹下->my.ini文件# MySQL Server Instance Configuration File# ------------------------------...原创 2019-08-16 18:20:08 · 220 阅读 · 0 评论 -
您应该知道这10个最常见的mysql错误。
MySQL 8是最流行的数据库引擎之一。它可以帮助连接数千个数据库到服务器,一旦配置正确,价格相对较低。此外,由于它是一个非常常见的工具,您不太可能遇到服务器不承认它或配置它来执行您希望它做的事情的问题。在使用MySQL 8时,可能很少会出现无法正确访问或使用MySQL的情况。这些可能是非常不愉快的情况,但它们可以很容易地解决。但是,在寻找解决方案之前,您必须了解这个问题!以下是使用MySQL...翻译 2019-09-26 10:01:44 · 320 阅读 · 0 评论 -
sql中的 if 条件语句的用法
正文IF 表达式IF( a, b, c)a的值为 TRUE,则返回值为 ba的值为FALSE,则返回值为 c如下:SELECT IF(TRUE,1,2);-> 1 SELECT IF(FALSE,1,2);-> 2 SELECT IF(STRCMP("123","234"),"不相等","相等");-> 不相等举个例子:查找出年龄大于18的学生,...原创 2019-07-31 10:33:05 · 10654 阅读 · 0 评论