java技术圈 为您找到相关结果 97

mybatis中用tinyint保存Boolean类型_xue317378914的专栏

一、boolean类型 MYSQL保存BOOLEAN值时用1代表TRUE,0代表FALSE,boolean在MySQL里的类型为tinyint(1), MySQL里有四个常量:true,false,TRUE,FALSE,它们分别代表1,0,1,0, mysql> select true,false,TRUE,FALSE; +------+-------+------+-------+ | TRUE | FALSE | TRUE | FALSE | +------+-------+------+-------+ | 1 | 0 | 1 | 0 | +------+-------+------+-------+ 可以如下插入boolean值:insert into [xxxx(xx)] valu...阅读全文

博文 2020-10-16 15:00:47 CSDN博客

芝麻分从本地mongo中获取有效数据工具

###引言: 起因:java接入芝麻分,接口数据为了提高效率,需要储存在mongo中,若接口调用则优先从本地mongo库中查询是否存在有效数据。 ###mongo查询: import com.alibaba.fastjson.util.TypeUtils; import com.lemon.datamarket.dao.mongo.ManageRepository; import com.lemon.datamarket.model.DataTransferObject; import com.lemon.datamarket.utils.MongoDBUtils; import com.lemon.datamarket.utils.zhima.AliConstants; import co...阅读全文

博文 2019-04-04 09:42:07 www.allocmem.com

mysql Innodb单表31m千万级数据count计数方案及调优

ENV 线上环境为RDS,版本5.7.15 select version() output: 5.7.15-log 测试环境为docker搭建的mysql,版本5.7.19 select version() output: 5.7.19 单表3000万+的class表以及20万+的学校表,需要使用count查询实时数量用于分页,延迟不能太高,否则影响业务 因需要使用事务功能,使用存储引擎为Innodb(MyISAM count是自动计数单独保存,Innodb需要每次扫描表进行统计) 本文使用class表进行示例表述,school同理 OPTIMIZE 出现的第一个问题是RDS线上mysql的查询速度始终没有测试库的快,相同的数据和存储结构,索引数据都相同(一开始线上使用count完全不能查询...阅读全文

博文 2019-04-04 09:55:25 www.allocmem.com

kubernetes下搭建harbor企业级docker仓库

前言 harbor是由vmware开源的企业级docker repository,提供私有仓库,安全认证,权限管理,漏洞扫描及仓库复制等多种功能,因为之前搭建的harbor在线上环境存在各种各样的问题(之前搭建的方式目前发现已被官方宣布弃用https://github.com/vmware/harbor/blob/master/docs/kubernetes_deployment.md,如ui显示不正常,权限认证不正常),于是近期抽空用官方推荐的helm方式对harbor进行重新部署,并替换掉线上harbor 准备 Kubernetes集群1.8+ Kubernetes Ingress Controller已启用(这里我们选用的traefik-ingress) kubectl 客户端 1.8...阅读全文

博文 2019-04-04 09:56:27 www.allocmem.com

关于mysql中LOAD DATA LOCAL INFILE指定列_数据库_qq_31083701的博客

mysql load data部分字段的正确写法 05-30 阅读数 6321 在日常运维中,会经常遇到将文件中数据导入到数据库中,如果是.sql文件,直接采用source方式即可;如果是.csv、.txt文件,可以采用 load data 方式。这两种方式都十分熟悉,这里说一种... 博文 来自: MYSQL轻松学的专栏 mysql LOAD DATA INFILE 导入数据某一列为空 10-08 SQL 语句: LOAD DATA LOCAL INFILE 'data_info.txt' INTO TABLE t1 IGNORE 1 LINES (@date,@time,@name,@weight_lb,@state) SET dt = CONCAT(@date,' ',@time), ...阅读全文

博文 2020-04-24 08:11:28 CSDN博客

Linux下的21个ss命令使用示例详解 – 任我乐

简介: Socket Statistics(ss)命令类似于netstat,它用于显示各种有用的网络套接字信息。 长时间看,已经注意到netstat这个命令程序已经过时了。从而代替netstat的是ss命令。一个全新的ss命令使用起来必定有些陌生,不过ss许多选项与netstat使用的选项类似,但我们还会看到一些差异。 ss命令是Linux CentOS 7中iproute软件包的一部分,默认已经安装。 一般来说,网络套接字是由IP地址,传输协议和端口来定义的。这种组合构成了双向连接的一个方面。例如:一个Web服务器可能正在侦听172.28.204.62:80上的传入TCP连接,这是套接字。不过需要说明的是套接字不是连接本身,而是连接的端点之一。 下面我讲解如何使用ss命令查看各种信息。具体...阅读全文

博文 2019-05-10 03:48:22 renwole.com

MySQL案例:关于JSON的一个bug - 云+社区

前言周五晚上和朋友一起去外面吃饭,本来想着不加班早点回家过周末,谁又能想到突然就接到一个电话,mysqldump逻辑备份导入时报错,具体错误为“ERROR 3144 (22032): Cannot create a JSON value from a string with CHARACTER SET 'binary'.”下面就和大家简单分享一下这个案例,由于涉及业务数据,这里将通过自己模拟场景的方式来进行分享;关于真实场景或模拟场景分享,之前也说过,能够自己模拟复现出故障场景,往往才更加证明已经完全了解清楚其中的原理和解决办法。案例分享(1)创建一张含JSON列的表,并插入一条记录mysql> select version(); +------------+ | version() | +...阅读全文

博文 2021-06-02 11:25:31 腾讯云

图解 SQL 里的各种 JOIN

从业以来主要在做客户端,用到的数据库都是表结构比较简单的 SQLite,以我那还给老师一大半的 SQL 水平倒也能对付。现在偶尔需要到后台的 SQL Server 里追查一些数据问题,就显得有点捉襟见肘了,特别是各种 JOIN,有时候傻傻分不清楚,于是索性弄明白并做个记录。前言在各种问答社区里谈及 SQL 里的各种 JOIN 之间的区别时,最被广为引用的是 CodeProject 上 C.L. Moffatt 的文章 Visual Representation of SQL Joins,他确实讲得简单明了,使用文氏图来帮助理解,效果明显。本文将沿用他的讲解方式,稍有演绎,可以视为该文较为粗糙的中译版。约定下文将使用两个数据库表 Table_A 和 Table_B 来进行示例讲解,其结构与数据...阅读全文

博文 2021-01-14 02:50:51 知乎

Mac下MySQL中LOAD DATA INFILE出现The used command is not allowed with this MySQL version问题_数据库_AeroZhou

解决“LOAD DATA local INFILE”时出现The used command is not allowed with this MySQL version问题 09-07 阅读数 6440 “LOAD DATA local INFILE”时出现The used command is not allowed with this MySQL version问题。第一是版本确实过低,低于5.0... 博文 来自: ziyou434的博客 使用HeidiSQL连接Mysql数据库:导入本地csv文件,报错解决方法 02-16 阅读数 1241 第一次使用HeidiSQL连接MySQL,数据库连接成功后,进行csv文件的导入。本地文件存储于:尝试在heidiSQL中采用导入csv加载本地...阅读全文

博文 2020-04-24 08:13:46 CSDN博客

在(分区…在mysql 5.7中)转换rank() | 码农俱乐部 - Golang中国

首先,请注意一些有关原始查询的注意事项: it is not valid SQL; you have an aggregate function in the select clause (max(t.hour)), but no group by clause the order by clause of rank() is not optimized: it starts with columns that are part of the partition by clause, which is unecessary (we already know that all rows in the partition have the same values for these column...阅读全文

博文 2020-09-30 10:45:21 Go语言中文社区

Druid SQL 解析器的解析过程 - beanlam

beanlam 3k Druid SQL 解析器的解析过程 druid 发布于 2017-01-14 这篇文尝试近距离地探究 Druid SQL 解析器如何工作。 Demo 代码 以这份代码为例 /** * * * @author beanlam * @date 2017年1月10日 下午11:06:26 * @version 1.0 * */ public class ParserMain { public static void main(String[] args) { String sql = "select * from user order by id"; // 新建 MySQL Parser SQLStatementParser parser = new MySqlStatem...阅读全文

博文 2020-08-09 12:31:06 SegmentFault 思否

MySQL中大于小于,IN,OR,BETWEEN性能比较_听海Movie的专栏

在MySQL中经常会有朋友问关于大于小于,IN,OR,BETWEEN,哪个性能更好? 我想有很多朋友会用它们但确实不知道大于小于,IN,OR,BETWEEN性能哪个更好吧,下面总结一下关于大于小于,IN,OR,BETWEEN性能。 这里的查询条件有四种:>=和<=;between;or;in 这里id列是索引列,如果不是的话,三个查询都是全表扫描,性能差距应该不大。 1 准备环境 mysql> show create table tinG *************************** 1. row *************************** Table: tin Create Table: CREATE TABLE `tin` ( `c1` int(11) NOT NU...阅读全文

博文 2021-10-08 10:14:27 CSDN博客

Elasticsearch如何做到数十亿数据查询毫秒级响应?

如果面试的时候碰到这样一个面试题:ES 在数据量很大的情况下(数十亿级别)如何提高查询效率?这个问题说白了,就是看你有没有实际用过 ES,因为啥?其实 ES 性能并没有你想象中那么好的。很多时候数据量大了,特别是有几亿条数据的时候,可能你会懵逼的发现,跑个搜索怎么一下 5~10s?后面反而就快了,可能就几百毫秒。说实话,ES 性能优化是没有银弹的。啥意思呢?就是不要期待着随手调一个参数,就可以万能的应对所有的性能慢的场景。也许有的场景是你换个参数,或者调整一下语法,就可以搞定,但是绝对不是所有场景都可以这样。Filesystem Cache你往 ES 里写的数据,实际上都写到磁盘文件里去了,查询的时候,操作系统会将磁盘文件里的数据自动缓存到 Filesystem Cache 里面去。es 的...阅读全文

博文 2020-11-16 03:44:23 知乎

Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_unicode_ci,IMPLICIT) for operation '<>' - wqbin

1.问题 今天又在mysql中遇到了,吐血。 2.解决方案 SQL最后加上 COLLATE utf8mb4_unicode_ci SELECT t2.cust_id as cust_id_ex,t1.* from ( SELECT * from credit_nigeria.apply WHERE updateTime>"2019-11-10" ) t1 RIGHT JOIN ( SELECT cust_id from bank_nigeria.ng_trans_record WHERE update_Time>"2019-11-18 04" and update_Time<"2019-11-18 05" and pay_type="xx" ) t2 on t1.custid=t2.cust...阅读全文

博文 2020-12-28 02:57:22 博客园

MySQL binlog格式解析

MySQL binlog格式解析 binlog想必大家都不陌生,在主从复制或者某些情况下的数据恢复会用到。由于binlog是二进制数据,要查看一般都借助mysqlbinlog工具。这篇笔记分析了binlog格式,希望能够了解下mysqlbinlog工具背后所做的事情。 1.什么时候写binlog 在说明什么时候写binlog前,先简单介绍下binlog的用途。binlog是二进制日志文件,用于记录mysql的数据更新或者潜在更新(比如DELETE语句执行删除而实际并没有符合条件的数据),在mysql主从复制中就是依靠的binlog。在mysql中开启binlog需要设置my.cnf中的log_bin参数,另外也可以通过binlog_do_db 指定要记录binlog的数据库和binlog_i...阅读全文

博文 2021-02-02 03:38:50 简书

MySQL innodb引擎的事务执行过程_数据库技术_Linux公社

通过这篇文章可以了解到下面几个问题 问题1:MySQL innodb引擎的update的流程; 问题2:以及写redo,undo,binlog的顺序,然后刷盘的顺序又是什么呢? 问题3:以及刷新redo和脏数据的相关进程; 总结以上的三个问题,其实就是关于MySQL innodb事务的流程;那么接下来,我将详细总结下一一一:MySQL innodb的事务流程: 1.接下来我就以update为例,讲解下MySQL5.6的innodb的事务流程,总结起来就是: 镇对update he set name='liuwenhe' where id=5; 1)事务开始 2)对id=5这条数据上排他锁,并且给5两边的临近范围加gap锁,防止别的事务insert新数据; 3)将需要修改的数据页PIN到inn...阅读全文

博文 2020-02-21 14:31:22 Linux系统门户网站

mysql8.0窗口函数:rank,dense_rank,row_number 使用上的区别

mysql8.0窗口函数:rank,dense_rank,row_number 使用上的区别 王静静@ 2018-05-17 14:04:57 浏览1416 评论0 函数 排序 Image BY test 窗口函数 mysql8.0 rank dense_rank row_number 摘要: 本节主要介绍排序类 rank,dense_rank,row_number使用上的区别 *RANK:跳跃排序DENSE_RANK:连续排序row_number:没有重复值的排序[记录相等也是不重复的]可以进行分页使用。 本节主要介绍排序类 rank,dense_rank,row_number使用上的区别 *RANK:跳跃排序DENSE_RANK:连续排序row_number:没有重复值的排序[记录相等也...阅读全文

博文 2021-02-02 03:47:26 juejin.cn

Load和CPU利用率是如何算出来的

本文内容遵从CC版权协议, 可以随意转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明网址: http://www.penglixun.com/tech/system/how_to_calc_load_cpu.html 相信很多人都对Linux中top命令里“load average”这一栏困惑过,到底什么是Load,Load代表了什么含义,Load高会有什么后果?“%CPU”这一栏为什么会超过100%,它是如何计算的? 带着这些问题,我们通过一些测试,来探索下其中的不解之处。 首先,我们通过实验来大概确定其计算方式: 测试服务器:4核Xeon处理器 测试软件:MySQL 5.1.40 服务器上除了MySQL没有运行其他任何非系统自带软件。因为MySQL只能单线程运行单条SQL,...阅读全文

博文 2019-08-17 01:49:28 P.Linux Laboratory

kubernetes下搭建harbor企业级docker仓库

### 前言 harbor是由vmware开源的企业级docker repository,提供私有仓库,安全认证,权限管理,漏洞扫描及仓库复制等多种功能,因为之前搭建的harbor在线上环境存在各种各样的问题(之前搭建的方式目前发现已被官方宣布弃用[https://github.com/vmware/harbor/blob/master/docs/kubernetes_deployment.md](https://github.com/vmware/harbor/blob/master/docs/kubernetes_deployment.md),如ui显示不正常,权限认证不正常),于是近期抽空用官方推荐的helm方式对harbor进行重新部署,并替换掉线上harbor ### 准备...阅读全文

关于时序数据库的一些思考

前言其实我之前是不太了解时序数据库以及它相关的机制的,只是大概知晓它的用途。但因为公司的业务需求,我意外参与并主导了公司内部开源时序数据库influxdb的引擎改造,所以我也就顺理成章的成为时序数据库“从业者”。造飞机的人需要时刻理解开飞机的人的需求。我不算时序数据库的使用者,但我想站在用户的角度去思考,他们需要一款怎样的“时序数据库”,我司的influxdb的第一阶段改造已经完成,所以我写下这篇文章,总结一下自己在开发中的一些思考与想法。也许有些地方还不够成熟,但胜在人会慢慢进步。正文一、几款优秀的时序数据库Prometheus、Influxdb和opentsdb是三款业内比较知名且实际生产使用的时序数据库了,总的来说三款各有优缺点,这里不谈它们的性能,主要谈谈使用和生态。Influxdb...阅读全文

博文 2020-11-03 08:12:52 知乎

B+树原理了解 – OneCoder

前言 B+树,是数据库索引的一个数据类型。B+树,是从最早的平衡二叉树演化而来。先了解一下二叉查找树、平衡二叉树、和B树。 二叉查找树 左子树的键值小于根的键值,右子树的键值大于根的键值。 二叉查找树可以任意地构造,以下这种也是二叉查找树,但是其查询效率太低 平衡二叉树 平衡二叉树(AVL树)在符合二叉查找树的条件下,还满足任何节点的两个子树的高度最大差为1。 当失去平衡时,有四种姿态: “左左”。插入或删除一个节点后,根节点的左孩子(Left Child)的左孩子(Left Child)还有非空节点,导致根节点的左子树高度比右子树高度高2,AVL树失去平衡。 将根节点的左孩子作为新根节点。 将新根节点的右孩子作为原根节点的左孩子。 将原根节点作为新根节点的右孩子。 “右右”。插入或删除一个...阅读全文

博文 2021-04-08 10:42:52 onecoder.site

数据库连接断开 Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure - 为了美好的明天的个人空间

报错信息如下: Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet successfully received from the server was 97,130 milliseconds ago. The last packet sent successfully to the server was 24 milliseconds ago. ; SQL []; Communications link failure .... Caused by: com.mysql.jdbc.exceptions.jdbc4.Communic...阅读全文

博文 2020-07-03 10:54:29 OSCHINA

Apache Doris (Incubating) 原理与实践

奇技指南近日,我们邀请到百度高级研发工程师李超勇前来360,分享百度开源数据库Apache Doris 的原理与实践。Apache Doris简介Doris(原百度 Palo)是一款基于大规模并行处理技术的分布式 SQL 数据库,由百度在2017年开源,2018年8月进入 Apache 孵化器。本次将主要从以下三部分介绍Apache Doris.Doris定位:即 Doris所要面临的业务场景及解决的问题Doris关键技术Doris案例介绍01 Doris定位 实时数据仓库Doris产品定位我们首先看一下Doris整个的定位。MPP 架构的关系型分析数据库PB 级别大数据集,秒级/毫秒级查询主要用于多维分析和报表查询2018年进入 Apache 孵化器使用场景上图是整个Doris的具体使用场...阅读全文

博文 2020-05-15 10:15:00 mp.weixin.qq.com

Docker终端无法输入中文问题解决_kunjian的博客

前言: 某日在docker里搭建了一套MySQL服务,发现在MySQL命令行内无法输入中文 中文显示也以?代替,起初以为是MySQL字符集的问题 检查之后未解决问题,又退出到容器终端 发现同样不能输入中文,由此推断 是系统字符集出现问题,现将解决过程记录如下: 未解决前: # 进入容器 查看字符集 [root@master2 ~]# docker exec -it b18f56aa1e15 /bin/bash root@b18f56aa1e15:/# locale LANG= LANGUAGE= LC_CTYPE="POSIX" LC_NUMERIC="POSIX" LC_TIME="POSIX" LC_COLLATE="POSIX" LC_MONETARY="POSIX" LC_MESSA...阅读全文

博文 2021-01-14 02:28:08 CSDN博客_docker exec 中文

Go语言黑魔法

今天我要教大家一些无用技能,也可以叫它奇技淫巧或者黑魔法。用得好可以提升性能,用得不好就会招来恶魔,嘿嘿。黑魔法导论为了让大家在学习了基础黑魔法之后能有所悟,在必要的时候能创造出本文传授之外的属于自己的魔法,这里需要先给大家打好基础。学习Go语言黑魔法之前,需要先看清Go世界的本质,你才能获得像Neo一样的能力。在Go语言中,Slice本质是什么呢?是一个reflect.SliceHeader结构体和这个结构体中Data字段所指向的内存。String本质是什么呢?是一个reflect.StringHeader结构体和这个结构体所指向的内存。在Go语言中,指针的本质是什么呢?是unsafe.Pointer和uintptr。当你清楚了它们的本质之后,你就可以随意的玩弄它们,嘿嘿嘿。第一式 - 获...阅读全文

博文 2019-09-16 08:41:50 知乎

mysql datetime与timestamp区别_wangjun5159的专栏

datetime: 1、保存格式为YYYYMMDDHHMMSS(年月日时分秒)的整数,所以,它与时区无关,存入的是什么值就是什么值,不会根据当前时区进行转换。 2、从mysql 5.6.4中,可以存储小数片段,最多到小数点后6位,显示时格式为 yyyy-MM-dd HH:mm:ss[.222222] mysql5.5中,没有小数片段,精确到秒。所以,我再从5.6版本迁移到5.5时,因生成的sql中datetime(6)有小数片段,无法导入。 3、存储范围:从1000-01-01 00:00:00 到'9999-12-31 23:59:59' 4、长度,8个字节,datetime(n),n不是存储长度,而是显示的小数位数,即使小数位数是0,存储是也是存储的6位小数,仅仅显示0位而已;要想显示小...阅读全文

博文 2020-12-23 10:48:57 CSDN博客

[MySQL FAQ]系列 -

关于我 叶金荣(yejr)早年曾混迹于linuxforum、linuxsir、chinaunix等社区。 2006年建本站至今,是国内最早的一批MySQL技术博客之一。 从事过LAMP开发,后成为专职MySQL DBA,擅长MySQL优化、数据库架构设计及对比基准压测。 2012年被提名成为ORACLE MySQL ACE,目前仍不遗余力推广MySQL。 2016年初与吴炳锡共同创办靠谱、优质的在线培训品牌知数堂专注培养优秀互联网从业人才以及企业服务。 2018年和吴炳锡共同发起「3306π」社区 微信公众号:老叶茶馆(imysql_wx) 微博:@叶金荣 QQ群: 579036588 邮箱:yejr@qq.com 神器: 自动生成my.cnf 搜索引擎中的我:谷歌Google、360搜索、...阅读全文

博文 2020-05-08 02:38:07 mysql是否支持跨库事务 | iMySQL | 老叶茶馆

编程小梦

Apache Doris 在美团点评的实践 作者: 康凯森 日期: 2019-04-27 分类: OLAP 技术选型 背景 用户需求 Why Not Other ROLAP Why Doris 典型应用 变化维表 Join 明细 + 聚合 外卖准实时数仓 Doris 服务现状 平台化建设 Hive To Doris Kafka To Doris 功能改造 谓词下推的传递性优化 查询执行多实例并发 Colocate Join 未来规划 致谢 本文的内容是我 4 月 13 日在 Doris Meetup 上的分享,我主要从技术选型,典型应用,平台化建设,功能改造 4 方面进行了分享。 技术选型 背景 在2017年年底,我们已经维护了 Kylin 和 Druid 两个开源 OLAP 系统,Kyli...阅读全文

博文 2020-04-23 10:14:38 Apache Doris 在美团点评的实践

一步步分析为什么B+树适合作为索引的结构 以及索引原理 (阿里面试) - aspirant

mysql的B+树索引 查找使用了二分查找,redis 跳表也使用了二分查找法,kafka查询消息日志也使用了二分查找法,二分查找法时间复杂度O(logn); 参考:redis的索引底层的 跳表原理 实现 聊聊Mysql索引和redis跳表 ---redis的跳表原理 时间复杂度O(logn)(阿里) 参考:kafka如何实现高并发存储-如何找到一条需要消费的数据(阿里) 参考:二分查找法:各种排序算法的时间复杂度和空间复杂度(阿里) 在MySQL中,主要有四种类型的索引,分别为:B-Tree索引,Hash索引,Fulltext索引(MyISAM 表)和R-Tree索引,本文讲的是B-Tree索引。 后面的索引原理一定要看,太重要了,阿里两个人都问这个mysql的索引原理 mysql使用了 ...阅读全文

博文 2021-04-03 05:46:30 博客园

关于mysql中的int(N)、char(N)和varchar(N)类型的简单说明_ivnetware的博客

在使用mysql时,int、char和varcahr这几种类型是比较常用的。在大学时有学过数据库,对于int(N)、char(N)和varchar(N)中的N一直了解的不是较透彻,前段时间在网上查了很多资料,现在整理下。 1、int(N) int(N) ,N 表示最大显示宽度(字段设置zerofill属性时可查看区别),不指定N时,默认为11。N 的值跟 int(N) 所占多少存储空间或最大能存储多大长度数据并无任何关系。也就是说 int(3)、int(4)、int(8) 在磁盘上都是占用 4 btyes 的存储空间。 1)创建测试表tb1,字段id1显示宽度为3,id2的显示宽度为5 mysql> create table tb1 (id1 int(3),id2 int(5)); Quer...阅读全文

博文 2020-11-11 10:36:18 CSDN博客

LDAP入门

LDAP入门LDAP入门 首先要先理解什么是LDAP,当时我看了很多解释,也是云里雾里,弄不清楚。在这里给大家稍微捋一捋。 首先LDAP是一种通讯协议,LDAP支持TCP/IP。协议就是标准,并且是抽象的。在这套标准下,AD(Active Directory)是微软出的一套实现。 那AD是什么呢?暂且把它理解成是个数据库。也有很多人直接把LDAP说成数据库(可以把LDAP理解成存储数据的数据库)。像是其他数据库一样,LDAP也是有client端和server端。server端是用来存放资源,client端用来操作增删改查等操作。 而我们通常说的LDAP是指运行这个数据库的服务器。 可以简单理解AD =LDAP服务器+LDAP应用。 那LDAP这种数据库有什么特殊的呢? 我们知道,像MySQL...阅读全文

博文 2021-06-14 12:48:46 简书

数据库基础(七)Mysql Join算法原理

一、Simple Nested-Loop Join(简单的嵌套循环连接)简单来说嵌套循环连接算法就是一个双层for 循环 ,通过循环外层表的行数据,逐个与内层表的所有行数据进行比较来获取结果,当执行select * from user tb1 left join level tb2 on tb1.id=tb2.user_id 时,我们会按类似下面代码的思路进行数据匹配:整个匹配过程会如下图:特点:Nested-Loop Join 简单粗暴容易理解,就是通过双层循环比较数据来获得结果,但是这种算法显然太过于粗鲁,如果每个表有1万条数据,那么对数据比较的次数=1万 * 1万 =1亿次,很显然这种查询效率会非常慢。当然mysql 肯定不会这么粗暴的去进行表的连接,所以就出现了后面的两种对Neste...阅读全文

博文 2021-04-02 08:53:08 知乎

Spring 踩坑之@Transactional 神奇失效 - 个人文章

小鱼儿 18 Spring 踩坑之@Transactional 神奇失效 事务处理 事务 spring java 发布于 2018-04-26 引言 对于追求数据强一致性的系统,事务扮演者十分重要的角色.最近在项目中遇到一个事务失效的问题,在此分享给大家。 情景回放 ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction ; SQL []; Lock wait timeout exceeded; try restarting transaction; nested exception ...阅读全文

博文 2020-07-21 12:57:12 SegmentFault 思否

深入理解数据库编程中的超时设置 - 云+社区

数据库是开发过程中最常用的组件,然而我们经常会遇到各种各样的超时异常,如:connect timeout:建立数据库连接超时socket timeout:socket读取超时statement timeout:单个sql执行超时transaction timeout:事务执行超时,一个事务中可能包含多个sqlget connection timeout:从连接池中获取链接超时读完此文,你将彻底掌握各种超时产生的根本原因,以及对应的解决方案。1 connectTimeout与socketTimeoutconnect timeout和socket timeout都属于TCP层面的超时。以mysql为例,我们可以在jdbc url中指定connectTimeout和socketTimeout。如:...阅读全文

博文 2020-07-03 11:41:01 腾讯云

MySQL · 特性分析 · 浅谈 MySQL 5.7 XA 事务改进

当期文章 POLARDB · 新品介绍 · 深入了解阿里云新一代产品 POLARDB HybridDB · 最佳实践 · 阿里云数据库PetaData MySQL · 捉虫动态 · show binary logs 灵异事件 MySQL · myrocks · myrocks之Bloom filter MySQL · 特性分析 · 浅谈 MySQL 5.7 XA 事务改进 MySQL · 特性分析 · 利用gdb跟踪MDL加锁过程 MySQL · 源码分析 · Innodb 引擎Redo日志存储格式简介 MSSQL · 应用案例 · 日志表设计优化与实现 PgSQL · 应用案例 · 海量用户实时定位和圈人-团圆社会公益系统 MySQL · 源码分析 · 一条insert语句的执行过程 My...阅读全文

博文 2020-02-21 14:40:59 mysql.taobao.org

ES分页看这篇就够了 - 云+社区

引言我们使用mysql的时候经常遇到分页查询的场景,在mysql中使用limit关键字来实现分页。比如下面的示例。select * from orders_history where type=8 limit 100,100; select * from orders_history where type=8 limit 1000,100; select * from orders_history where type=8 limit 10000,100;ElasticsSearch(以下简称ES)同样也有很多分页查询的场景,比如在数据量比较大的情况下,并且查询条件比较复杂,在mysql中无法命中索引,我们往往会选择使用ES的分页查询。ES实现分页查询有几种不同的方案,每种方案都有自己的优缺...阅读全文

博文 2021-06-18 08:15:02 腾讯云

为什么 MongoDB 使用 B 树?

为什么这么设计(Why's THE Design)是一系列关于计算机领域中程序设计决策的文章,我们在这个系列的每一篇文章中都会提出一个具体的问题并从不同的角度讨论这种设计的优缺点、对具体实现造成的影响。如果你有想要了解的问题,可以在文章下面留言。我们在这一系列前面的文章曾经分析过 为什么 MySQL 使用 B+ 树,有读者在文章下面留言,希望能出一个为什么 MongoDB 使用 B 树的对比文章,这是一个比较好的问题,MySQL 和 MongoDB 两种不同类型的数据库使用了相似却不同的数据结构,为什么 MySQL 选择使用 B+ 树而 MongoDB 使用 B 树呢?概述MongoDB 是一个通用的、面向文档的分布式数据库[^1],这是官方对 MongoDB 介绍。区别于传统的关系型数据库...阅读全文

博文 2020-02-15 03:28:04 mp.weixin.qq.com

MySQL 加锁处理分析

本文来自:何登成的技术博客 一、背景 MySQL/InnoDB的加锁分析,一直是一个比较困难的话题。我在工作过程中,经常会有同事咨询这方面的问题。同时,微博上也经常会收到MySQL锁相关的私信,让我帮助解决一些死锁的问题。本文,准备就MySQL/InnoDB的加锁问题,展开较为深入的分析与讨论,主要是介绍一种思路,运用此思路,拿到任何一条SQL语句,都能完整的分析出这条语句会加什么锁?会有什么样的使用风险?甚至是分析线上的一个死锁场景,了解死锁产生的原因。 注:MySQL是一个支持插件式存储引擎的数据库系统。本文下面的所有介绍,都是基于InnoDB存储引擎,其他引擎的表现,会有较大的区别。 1.1 MVCC:Snapshot Read vs Current Read MySQL InnoDB...阅读全文

博文 2020-07-24 17:02:19 Sina App Engine Blog

Druid SqlParser理解及使用入门 - __lay

以前的项目中很少去思考SQL解析这个事情,即使在saas系统或者分库分表的时候有涉及到也会有专门的处理方案,这些方案也对使用者隐藏了实现细节。 而最近的这个数据项目里面却频繁涉及到了对SQL的处理,原来只是简单地了解Druid的SqlParser模块就可以解决,慢慢地问题变得越来越复杂,直到某天改动自己写的SQL处理的代码很痛苦的时候,意识到似乎有必要更加地了解一下相关的内容才行。 在了解学习的过程中,发现学习使用SqlParser还是得先了解ast(抽象语法树)这个概念,一搜索相关内容要么是编译原理相关的知识,要么是JavaScript的示例,光看Druid提供的SqlParser相关的Wiki文档又似懂非懂,不知道从哪里下手。 不管怎么样,看了不少碎片化的相关内容以后也收获了一些东西,这...阅读全文

博文 2020-08-10 03:49:36 博客园

MySQL中IN子查询会导致无法使用索引 - MSSQL123

今天看到一个博客园的一篇关于MySQL的IN子查询优化的案例,一开始感觉有点半信半疑(如果是换做在SQL Server中,这种情况是绝对不可能的,后面会做一个简单的测试。)随后动手按照他说的做了一个表来测试验证,发现MySQL的IN子查询做的不好,确实会导致无法使用索引的情况(IN子查询无法使用所以,场景是MySQL,截止的版本是5.7.18) MySQL的测试环境 测试表如下 create table test_table2 ( id int auto_increment primary key, pay_id int, pay_time datetime, other_col varchar(100) ) 建一个存储过程插入测试数据,测试数据的特点是pay_id可重复,这里在存储过程处理...阅读全文

博文 2021-02-24 06:23:47 博客园

<转>一个最不可思议的MySQL死锁分析

1 死锁问题背景 1 1.1 一个不可思议的死锁 1 1.1.1 初步分析 3 1.2 如何阅读死锁日志 3 2 死锁原因深入剖析 4 2.1 Delete操作的加锁逻辑 4 2.2 死锁预防策略 5 2.3 剖析死锁的成因 6 3 总结 7 死锁问题背景 做MySQL代码的深入分析也有些年头了,再加上自己10年左右的数据库内核研发经验,自认为对于MySQL/InnoDB的加锁实现了如指掌,正因如此,前段时间,还专门写了一篇洋洋洒洒的文章,专门分析MySQL的加锁实现细节:《MySQL加锁处理分析》。 但是,昨天”润洁”同学在《MySQL加锁处理分析》这篇博文下咨询的一个MySQL的死锁场景,还是彻底把我给难住了。此死锁,完全违背了本人原有的锁知识体系,让我百思不得其解。本着机器不会骗人,既...阅读全文

博文 2020-07-24 17:17:16 阿里云开发者社区

MySQL中lock tables和unlock tables浅析 - 潇湘隐者

MySQL中lock tables和unlock tables浅析 在MySQL中提供了锁定表(lock tables)和解锁表(unlock tables)的语法功能,ORACLE与SQL Server数据库当中没有这种语法。相信刚接触MySQL的人,都想详细、深入的了解一下这个功能.下面就尽量全面的解析、总结一下MySQL中lock tables与unlock tables的功能,如有不足或不正确的地方,欢迎指点一二。 锁定表的语法: LOCK TABLES tbl_name [AS alias] {READ [LOCAL] | [LOW_PRIORITY] WRITE} [, tbl_name [AS alias] {READ [LOCAL] | [LOW_PRIORITY] WRIT...阅读全文

博文 2021-06-09 03:48:47 博客园

【干货】一文理解Druid原理架构(时序数据库,不是ali的数据库连接池)

> 大数据 > druid > 【干货】一文理解Druid原理架构(时序数据库,不是ali的数据库连接池) 【干货】一文理解Druid原理架构(时序数据库,不是ali的数据库连接池) druid wangting 2年前 (2018-08-07) 1430次浏览 1个评论 Druid.io(以下简称Druid)是2013年底开源出来的, 主要解决的是对实时数据以及较近时间的历史数据的多维查询提供高并发(多用户),低延时,高可靠性的问题。 Druid简介: Druid是一个为在大数据集之上做实时统计分析而设计的开源数据存储。这个系统集合了一个面向列存储的层,一个分布式、shared-nothing的架构,和一个高级的索引结构,来达成在秒级以内对十亿行级别的表进行任意的探索分析。 互联网技术的快...阅读全文

博文 2020-05-15 10:29:00 程序员灯塔

多个单列索引和联合索引的区别详解_数据库_Abysscarry的博客

背景: 为了提高数据库效率,建索引是家常便饭;那么当查询条件为2个及以上时,我们是创建多个单列索引还是创建一个联合索引好呢?他们之间的区别是什么?哪个效率高呢?我在这里详细测试分析下。 一、联合索引测试 注:Mysql版本为 5.7.20 创建测试表(表记录数为63188): CREATE TABLE `t_mobilesms_11` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `userId` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '用户id,创建任务时的userid', `mobile` varchar(24) NOT NULL D...阅读全文

博文 2020-04-21 04:36:55 CSDN博客

Hive内部表与外部表(外部表使用场景)_UniqueChunBlog

官网解释 Managed and External Tables By default Hive creates managed tables, where files, metadata and statistics are managed by internal Hive processes. A managed table is stored under the hive.metastore.warehouse.dir path property, by default in a folder path similar to /apps/hive/warehouse/databasename.db/tablename/. The default location can be over...阅读全文

博文 2021-11-01 12:23:34 CSDN博客

利用硬链接和truncate降低drop table对线上环境的影响 - billy鹏

众所周知drop table会严重的消耗服务器IO性能,如果被drop的table容量较大,甚至会影响到线上的正常。 首先,我们看一下为什么drop容量大的table会影响线上服务 直接执行drop table,mysql会将表定义和表数据全都删除,包括磁盘上的物理文件,也包括buffer pool中的内存数据。 这就分两步,第一步从buffer pool中删除,这会涉及到table_cache的lock,如果持有table_cache的lock,这将导致其他查询都无法执行。这种情况在没有innodb_per_table之前尤为严重。另外,mysql5.5.23之后添加lazy drop table功能,这个功能用来解决mutex on the LRU list。其中心思想就是加锁,找到需要...阅读全文

博文 2021-06-10 09:25:08 博客园

深入学习MySQL事务:ACID特性的实现原理 - 编程迷思

事务是MySQL等关系型数据库区别于NoSQL的重要方面,是保证数据一致性的重要手段。本文将首先介绍MySQL事务相关的基础概念,然后介绍事务的ACID特性,并分析其实现原理。 MySQL博大精深,文章疏漏之处在所难免,欢迎批评指正。 一、基础概念 事务(Transaction)是访问和更新数据库的程序执行单元;事务中可能包含一个或多个sql语句,这些语句要么都执行,要么都不执行。作为一个关系型数据库,MySQL支持事务,本文介绍基于MySQL5.6。 首先回顾一下MySQL事务的基础知识。 1. 逻辑架构和存储引擎 图片来源:https://blog.csdn.net/fuzhongmin05/article/details/70904190 如上图所示,MySQL服务器逻辑架构从上往下可...阅读全文

博文 2021-08-17 06:36:55 博客园

SQL子查询总结:相关子查询与非相关子查询有什么区别

如果一个select语句能够返回单个值或者一列值,且该select语句嵌套在另一个SQL语句(例如select语句、insert语句、update语句或者delete语句)中,那么该select语句成为“子查询”(也叫内层查询),包含子查询的SQL语句称为“主查询”(也叫外层查询)。为了标记子查询与主查询之间的关系,通常将子查询写在小括号内。子查询一般用在主查询的where子句或having子句中,与比较运算符或者逻辑运算符一起构成where筛选条件或having筛选条件。子查询分为“相关子查询”(Dependent Subquery)与“非相关子查询”。 非相关子查询如果子查询返回单个值,则可以讲一个表达式的值与子查询的结果进行比较。 例如,检索成绩比学生张三平均分高的所有学生及课程的信息...阅读全文

博文 2022-06-30 02:47:22 知乎

Hbase中的LSM树

一、前言哈希存储引擎 是哈希表的持久化实现,支持增、删、改以及随机读取操作,但不支持顺序扫描,对应的存储系统为key-value存储系统。对于key-value的插入以及查询,哈希表的复杂度都是O(1),明显比树的操作O(n)快,如果不需要有序的遍历数据,哈希表就是your Mr.RightB树存储引擎是B树的持久化实现,不仅支持单条记录的增、删、读、改操作,还支持顺序扫描(B+树的叶子节点之间的指针),对应的存储系统就是关系数据库(Mysql等)。LSM树(Log-Structured Merge Tree)存储引擎和B树存储引擎一样,同样支持增、删、读、改、顺序扫描操作。而且通过批量存储技术规避磁盘随机写入问题。当然凡事有利有弊,LSM树和B+树相比,LSM树牺牲了部分读性能,用来大幅提...阅读全文

博文 2022-04-15 06:58:20 知乎