
mysql
文章平均质量分 70
givmchickenblood
try to like it,do it
展开
-
分页查询优化
分页查询优化,在程序内存中计算出id的值,要比通过select id from 表 order by id 49173090,100,先找到id,再关联查询要快很多的,大概快出3-5倍。原创 2024-04-03 16:39:17 · 167 阅读 · 0 评论 -
mysql5.6 索引下推
参考MySQL索引下推,原来这么简单!“MySQL5.6”、“索引优化”,其实都是索引下推1、什么是索引下推索引条件下推,也叫索引下推,英文全称Index Condition Pushdown,简称ICP。索引下推是MySQL5.6新添加的特性,用于优化数据的查询。在MySQL5.6之前,通过使用非主键索引进行查询的时候,存储引擎通过索引查询数据,然后将结果返回给MySQL server层,在server层判断是否符合条件。在MySQL5.6及以上版本,可以使用索引下推的特性。当存在索引的列做转载 2022-04-23 10:51:51 · 292 阅读 · 0 评论 -
BitMap位图索引
参考https://www.cnblogs.com/lbser/p/3322630.htmlhttps://blog.csdn.net/catoop/article/details/1116897771、案例有张表名为table的表,由三列组成,分别是姓名、性别和婚姻状况,其中性别只有男和女两项,婚姻状况由已婚、未婚、离婚这三项,该表共有100w个记录。现在有这样的查询: select * from table where Gender=‘男’ and Marital=“未婚”;姓转载 2021-11-08 20:29:29 · 399 阅读 · 0 评论 -
mysql 索引生效的条件
转自 https://blog.csdn.net/qq_35275233/article/details/878888091.联合索引失效的条件联合索引又叫复合索引。两个或更多个列上的索引被称作复合索引。对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分。例如索引是key index (a,b,c)。 可以支持a | a,b| a,b,c 3种组合进行查找,但不支持 b,c进行查找 .当最左侧字段是常量引用时,索引就十分有效。利用索引中的附加列,转载 2021-06-07 23:04:58 · 793 阅读 · 0 评论 -
OLTP和OLAP的区别
OLTP的特点一般有:联机事务处理OLTP(on-line transaction processing) 主要是执行基本日常的事务处理,比如数据库记录的增删查改。比如在银行的一笔交易记录,就是一个典型的事务。实时性要求高。我记得之前上大学的时候,银行异地汇款,要隔天才能到账,而现在是分分钟到账的节奏,说明现在银行的实时处理能力大大增强。数据量不是很大,生产库上的数据量一般不会太大,而且会及时做相应的数据处理与转移。交易一般是确定的,比如银行存取款的金额肯定是确定的,所以OLTP是对确定性的数据进转载 2021-02-02 16:03:21 · 1653 阅读 · 0 评论 -
mybatis 批量新增insert、更新update详解
1、批量更新参考 https://blog.csdn.net/lu1024188315/article/details/787589431、更新单条记录 UPDATE course SET name = 'course1' WHEREid = 'id1';2、更新多条记录的同一个字段为同一个值 UPDATE course SET name='course1' WHERE id in('id1','id2','id3);3、更新多条记录为多个字段为不同的值比较普通的写法,是通过循环,依次原创 2020-11-09 23:50:32 · 2388 阅读 · 0 评论 -
联合索引失效原理
参考https://cloud.tencent.com/developer/article/17047431、单值索引B+树图单值索引在B+树的结构里,一个节点只存一个键值对2、联合索引开局一张图,由数据库的a字段和b字段组成一个联合索引。从本质上来说,联合索引也是一个B+树,和单值索引不同的是,联合索引的键值对不是1,而是大于1个。a, b 排序分析a顺序:1,1,2,2,3,3b顺序:1,2,1,4,1,2大家可以发现a字段是有序排列,b字段是无序排列(因为B+树只能选一个字段来转载 2020-10-20 13:12:08 · 4614 阅读 · 6 评论 -
mysql FIND_IN_SET函数、INSTR函数
假如表中某列的值为英文逗号分隔的字符串,如"1,2,3,4,5",如果检索的时候,想要精准检索包含"3"的数据,那么可以通过FIND_IN_SET函数直接获取到:如果想要模糊查询包含"3"的数据,那么可以通过INSTR函数直接获取到:...原创 2020-10-13 23:55:56 · 878 阅读 · 0 评论 -
MYSQL的 decimal 和 Java的 BigDecimal:金额存储使用的类型
示例1问, 结果是多少? 0.01?No! 结果是0.009999999999999998!为什么会这样呢? 因为float和double都是浮点数, 都有取值范围, 都有精度范围. 浮点数与通常使用的小数不同, 使用中, 往往难以确定. 常见的问题是定义了一个浮点数, 经过一系列的计算, 它本来应该等于某个确定值, 但实际上并不是! 金额必须是完全精确的计算, 故不能使用double或者float, 而应该采用java.math.BigDecimal.mysql中的decimal , 在java转载 2020-10-09 19:56:05 · 5692 阅读 · 0 评论 -
全面了解mysql中utf8和utf8mb4的区别
参考https://my.oschina.net/xsh1208/blog/1052781一.简介MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。好在utf8mb4是utf8的超集,除了将编码改为utf8mb4外不需要做其他转换。当然,为了节省空间,一般情况下使用utf8也就够了。二.内容描述那上面说了既然utf8能够存下大部分中文汉字,那为什么还要使用utf8mb4呢? 原来mysql支持的 utf8 编码最转载 2020-10-09 19:27:52 · 517 阅读 · 0 评论 -
mysql explain的使用(优化查询)
参考https://www.cnblogs.com/0201zcr/p/5742382.htmlexplain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。1、创建数据库/* Navicat MySQL Data Transfer Source Server : localhost-newpassword Source Server Version : 50550 Source Host :转载 2020-08-29 15:59:44 · 190 阅读 · 0 评论 -
sql语句中where 1=1的作用
参考:https://blog.csdn.net/xcliang9418/article/details/79146114where 1=1;有什么用?在SQL语言中,这个条件始终为True,写这一句话就跟没写一样。select * from table where 1=1与select * from table完全没有区别,其目的就是使 where 的条件永远为true,得到的结果就是未加约束条件的结果。在查询条件数量不确定的条件情况下,使用 where 1=1可以很方便的规范语句。例如一个查询中可能原创 2020-06-30 20:28:31 · 440 阅读 · 0 评论 -
join、union、关联查询
1、join、union、关联查询内连接查询 (select * from a join b on a.id = b.id)关联查询 (select * from a , b where a.id = b.id)UNION 操作符用于合并两个或多个 SELECT 语句的结果集2、on、where、having的执行顺序以及效率from a join b 与 from a, b 产生的......原创 2019-10-18 20:56:49 · 2300 阅读 · 0 评论 -
mysql b+树能存多少条数据?b+树每层有多少分支?
InnoDB一棵B+树可以存放多少行数据?这个问题的简单回答是:约2千万。为什么是这么多呢?因为这是可以算出来的,要搞清楚这个问题,我们先从InnoDB索引数据结构、数据组织方式说起。在计算机中磁盘存储数据最小单元是扇区,一个扇区的大小是512字节,而文件系统(例如XFS/EXT4)他的最小单元是块,一个块的大小是4k,而对于我们的InnoDB存储引擎也有自己的最小储存单元——页(Page),一......转载 2019-10-07 15:43:55 · 23197 阅读 · 19 评论 -
sql 中 ${} 和 #{}的区别
转自https://blog.csdn.net/qq_15901351/article/details/82290032项目开发过程中,在mybaitis框架中,sql经常需要动态赋值,会出现#{param} 、${param}两种形式。接下来,我们一起来看一个案例:根据用户的姓名来筛选用户信息,其中用户姓名不确定,是动态变化的,sql如下:select * from userInfo ...转载 2019-07-18 19:43:23 · 8545 阅读 · 1 评论 -
mysql 命令
mysql命令查看mysql版本:mysql -V备份表数据:mysqldump -h 10.222.106.26 -P 3992 -uuser_qzone -p AP_Admin Tbl_AdUser>aduser.sql;SELECT * INTO OUTFILE ‘aduser.txt’ FROM Tbl_AdUser;mysql -h10.222.106.26 -uus...原创 2019-07-01 14:47:23 · 121 阅读 · 0 评论 -
MySQL VARCHAR与CHAR的区别、VARCHAR(50)中的50代表什么?~未完
1、VARCHAR与CHAR的区别CHAR是一种固定长度的类型,VARCHAR则是一种可变长度的类型。CHAR列的长度固定为创建表时声明的长度,长度可以为从0到255(2^8-1=255)的任何值。当保存CHAR值时,在它们的右边填充空格以达到指定的长度。当检索到CHAR值时,尾部的空格被删除掉。在存储或检索过程中不进行大小写转换。VARCHAR列中的值为可变长字符串,长度可以指定为0到65...转载 2019-05-14 23:48:23 · 2926 阅读 · 0 评论 -
MySQL Binlog详解
https://www.cnblogs.com/xhyan/p/6530861.html1 MySQL binlog的作用Mysql的binlog日志作用是用于记录mysql内部增删改查等对mysql数据库有改动的记录(DML,DDL),对数据库的查询select或show等不会被binlog日志记录主要用于数据库的主从复制以及增量恢复注意:DML(data maintai...转载 2019-04-25 11:17:32 · 322 阅读 · 0 评论 -
2-3树的演变 红黑树---红黑的含义
转载:超级棒的2-3树,之后再引入红黑树,很清楚的理解了红黑树的性质https://blog.csdn.net/chen_zhang_yu/article/details/52415077前言红黑树,对不少人来说是个比较头疼的名字,在网上搜资料也很少有讲清楚其演变来源的,多数一上来就给你来五条定义,红啊黑啊与根节点距离相等之类的,然后就开始进行旋转、插入、删除这些操作。一通操作下来,连红色和...转载 2019-03-16 10:31:21 · 215 阅读 · 0 评论 -
MySql中 delimiter分隔符 详解
转自 https://blog.csdn.net/yuxin6866/article/details/52722913其实就是告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了。默认情况下,delimiter是分号;。在命令行客户端中,如果有一行命令以分号结束,那么回车后,mysql将会执行该命令。但有时候,不希望MySQL这么做。在为可能输入较多的语句,且语句中包含有...转载 2018-09-05 10:07:59 · 7070 阅读 · 0 评论 -
mysql 如何用一条SQL将一张表里的数据插入到另一张表(3中情况)
转自 https://blog.csdn.net/xyw591238/article/details/519651271. 表结构完全一样 insert into 表1 select * from 表22. 表结构不一样(这种情况下得指定列名) insert into 表1 (列名1,列名2,列名3) select 列1,列2,列3 from 表23、只从另外一个表取部分...转载 2018-09-25 15:37:57 · 304 阅读 · 0 评论 -
B+/-Tree原理及mysql的索引(Hash索引和BTree索引)分析
MySQL索引原理BTree和B+Tree详解Hash索引和BTree索引B+/-Tree原理及mysql的索引分析转载 2018-10-29 21:09:56 · 1538 阅读 · 0 评论 -
MySQL5.7 启动、添加用户、删除用户与授权
参考:https://www.cnblogs.com/xujishou/p/6306765.htmlMySQL5.7 mysql.user表没有password字段改 authentication_string;零. 启动mysql启动mysql:在 计算机→管理→服务 中找到 mysql,并启动。登录mqsql:在cmd窗口,执行mysql -u yourUserName -p...原创 2018-11-08 14:28:48 · 408 阅读 · 0 评论 -
MySQL知识点总结
转自https://blog.csdn.net/caoxiaohong1005/article/details/82718045除了链接中的知识点外,还要知道:关系型数据库的概念范式转载 2018-11-21 22:42:19 · 122 阅读 · 0 评论 -
B树和B+树的区别
1 B树每个节点都存储key和data,所有节点组成这棵树,并且叶子节点指针为null。2 B+树只有叶子节点存储data,叶子节点包含了这棵树的所有键值,叶子节点不存储指针。后来,在B+树上增加了顺序访问指针,也就是每个叶子节点增加一个指向相邻叶子节点的指针,这样B+树成了数据库系统实现索引的首选数据结构。原因有很多,最主要的是这棵树矮胖。一般来说,索引很大,往往以索引文件的形式存......原创 2019-01-16 21:01:47 · 549 阅读 · 0 评论 -
两段锁协议
转自https://blog.csdn.net/sinat_36841379/article/details/75107985?locationNum=2&fps=1我们都知道,事务调度一般有串行调度和并行调度,那首先来了解几个概念。并发控制: 所谓并发控制,是指多用户共享的系统中,许多用户可能同时对同一数据进行操作。调度: 指的是事务的执行次序。串行调度: 多个事务依次串行执行...转载 2019-02-27 11:43:23 · 23526 阅读 · 2 评论 -
mysql 事务日志 redo log和undo log
https://blog.csdn.net/caoxiaohong1005/article/details/830228581 MySql宕机时正在处理的事务会如何?针对突然宕机的问题:MySql不会自动继续执行,不会自动直接回滚,但是可以人工手动选择继续执行或者直接回滚,依据是事务日志。事务开启时,事务中的操作,都会先写入存储引擎的日志缓冲中,在事务提交之前,这些缓冲的日志都需要提前刷新到...转载 2019-03-08 18:50:59 · 567 阅读 · 0 评论 -
MySql 乐观锁和悲观锁
1 乐观锁乐观锁是指操作数据库时(更新操作),想法很乐观,认为这次的操作不会导致冲突,在操作数据时,并不进行任何其他的特殊处理(也就是不加锁),而在进行更新后,再去判断是否有冲突了。InnoDB对乐观锁的实现是MVCC(多版本并发控制)机制:用于并发控制。2 悲观锁在操作数据时,认为此操作会出现数据冲突,所以在进行每次操作时都要通过获取锁才能进行对相同数据的操作,这点跟java中的sync...转载 2019-03-08 19:33:30 · 118 阅读 · 0 评论 -
关系数据库 范式
https://blog.csdn.net/caoxiaohong1005/article/details/80034106https://blog.csdn.net/qingking520/article/details/529377281 关系数据库的理解定义的角度:建立在关系数据库模型基础上的数据库借助于集合代数等概念和方法来处理数据库中的数据是一个被组织成一组拥有正式描述...转载 2019-03-10 12:10:27 · 159 阅读 · 0 评论 -
mysql和redis的区别
https://www.cnblogs.com/zxh1297/p/9394108.html1.mysql和redis的数据库类型mysql是关系型数据库,主要用于存放持久化数据,将数据存储在硬盘中,读取速度较慢。但是支持事务等功能,具有强大的功能。适合于各种业务系统,对于海量的数据存储并没有问题。redis是NOSQL,即非关系型数据库,也是缓存数据库,即将数据存储在缓存中,缓存的读取速...转载 2019-03-14 22:29:25 · 347 阅读 · 0 评论 -
SQL注入攻击与防御
https://blog.csdn.net/DFF1993/article/details/80030910一、什么是SQL注入程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。攻击者可以提交一段精心构造的数据库查询代码,根据返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。受影响的系统:对输入的参数不进行检查和过滤...转载 2019-03-19 17:40:50 · 273 阅读 · 0 评论 -
MySql for update 【排它锁】
https://blog.csdn.net/claram/article/details/54023216https://blog.csdn.net/u011957758/article/details/75212222for update的特点(排他锁)for update 仅适用于InnoDB,并且必须开启事务,在begin与commit之间才生效。要测试for update的...转载 2019-03-19 22:29:42 · 976 阅读 · 0 评论 -
对于关系型数据库中的索引的基本理解
https://blog.csdn.net/aschulianwuyanzu/article/details/77879631说白了索引就是一个查找问题索引是对数据库表中的一列或者说是多列进行排序的一种结构,使用索引可以快速访问数据库表中的特定信息。索引的一个主要目的就是加快检索表中数据的方法。例子:这样一个查询语句selecr * from table1 where id=1000;如果...转载 2019-03-16 22:18:20 · 898 阅读 · 0 评论 -
索引,主键,唯一索引,联合索引的区别
https://blog.csdn.net/qq_33275924/article/details/80220797https://www.cnblogs.com/ymj0906/p/4240856.html索引是一种特殊的文件,它们包含着对所有记录的引用指针。索引可以极大地提高数据查询速度,但是会降低插入删除更新表的速度,因为在执行这些操作是,还要操作索引文件用来维护,所以说索引不是建的越多...转载 2019-03-17 23:27:22 · 12182 阅读 · 4 评论 -
一步步分析为什么B+树适合作为索引的结构
https://blog.csdn.net/weixin_30531261/article/details/79312676前言本文是在讲述什么样的数据结构适合作为索引,以及其适合作为索引的原因。而阅读本文需要对B树和B+树结构有稍微的理解。以及需要对磁盘操作知识有稍微的了解。对于磁盘操作的相关知识,在文章尾部的链接文章中,有详细的介绍。在MySQL中,主要有四种类型的索引,分别为:B-Tr...转载 2019-03-18 22:18:57 · 208 阅读 · 1 评论 -
drop、truncate和delete的区别
https://blog.csdn.net/ws0513/article/details/499805471 delete可用于table和viewdelete是DML(data maintain Language,数据维护语言),需要手动提交(commit)操作才能生效,可以通过rollback撤消操作每次从表中删除一行,并且同时将该行的的删除操作记录在redo和undo表空...转载 2019-03-30 13:12:36 · 192 阅读 · 0 评论 -
mysql中操作符 小于等于大于组合 的意思
转自 https://kb.cnblogs.com/page/203622/mysql中操作符<=>是安全等于的意思。 是比较运算符,当比较的值含有null值的时候,来返回一个布尔值。 比如:select 1<=>null -- 结果为0select null<=>null -- 结果为1。1、问题 :我在看以前的一个开发者的代码时...转载 2018-09-05 09:43:16 · 2310 阅读 · 0 评论