
数据库
文章平均质量分 77
ww !
这个作者很懒,什么都没留下…
展开
-
Mysql强大的开窗函数Demo1
开窗函数Demo1业务场景每天产生四种血型的最新库存数量,需要根据年月排序拿到最新一天的库存量数据库准备CREATE TABLE `yl461_blood_station_storagedetail` ( `ID` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '平台血站血液库存编号', `BLOODVARIETIESCODE` varchar(2) CHARACTER SET utf8原创 2022-05-27 14:47:48 · 230 阅读 · 0 评论 -
MySQL中IS NULL、IS NOT NULL、|=索引问题
看面试题的时候,总能看到MySQL在什么情况下用不上索引,如下:MySQL的WHERE子句中包含 IS NULL、IS NOT NULL、!= 这些条件时便不能使用索引查询,只能使用全表扫描。不耽误大家时间,告诉大家结论:MySQL中决定使不使用某个索引执行查询的依据就是成本够不够小,如果null值很多,还是会用到索引的。自己做了个验证:一个大概3万数据的表,如果只有10多个记录是null值,is null走索引,not null和!=没走索引,如果大部分都...转载 2022-03-17 16:47:27 · 2644 阅读 · 0 评论 -
B树索引和Hash索引的应用场景和区别
转自:https://blog.youkuaiyun.com/chuangsun/article/details/78013537关系型数据库中,索引大多采用B/B+树来作为存储结构,而全文搜索引擎的索引则主要采用hash的存储结构,这两种数据结构有什么区别?如果是等值查询,那么哈希索引明显有绝对优势,因为只需要经过一次算法即可找到相应的键值;当然了,这个前提是,键值都是唯一的。如果键值不是唯一的,就需要先找到该键所在位置,然后再根据链表往后扫描,直到找到相应的数据;从示意图中也能看到,如果是范围查询检索,这时候哈希转载 2021-06-02 16:05:03 · 2205 阅读 · 0 评论 -
必看,关于sql的慢查询及解决方案
文章目录 一、前言二、慢查询概要2.1 第一步,慢查询分析之前的配置2.1.1 方式一:修改my.ini2.1.2 方式二:修改数据库 2.2 第二步,找到执行慢的sql语句2.3 第三步,找到原因两种方式之一,explain分析,explain各个字段的解释2.4 第四步,找到原因两种方式之一,profile分析,找到慢查询的本质原因,profile各个字段的解释2.4.1 explain制造慢sql语句,profile找到慢的sql语句2.4.2 show profile for query 具原创 2021-05-31 09:49:19 · 9095 阅读 · 0 评论 -
聚簇索引和非聚簇索引
参考博客:http://www.admin10000.com/document/5372.html 聚簇索引并不是一种单独的索引类型,而是一种数据存储方式。具体细节依赖于其实现方式。 MySQL数据库中innodb存储引擎,B+树索引可以分为聚簇索引(也称聚集索引,clustered index)和辅助索引(有时也称非聚簇索引或二级索引,secondary index,non-clustered index)。 这两种索引内部都是B+树,聚集索引的叶子节点存放着一整行的数据。 Innobd中的主键.转载 2021-05-21 14:58:11 · 551 阅读 · 0 评论 -
为什么MySQL数据库索引选择使用B+树?
为什么MySQL数据库索引选择使用B+树?在进一步分析为什么MySQL数据库索引选择使用B+树之前,我相信很多小伙伴对数据结构中的树还是有些许模糊的,因此我们由浅入深一步步探讨树的演进过程,在一步步引出B树以及为什么MySQL数据库索引选择使用B+树!学过数据结构的一般对最基础的树都有所认识,因此我们就从与我们主题更为相近的二叉查找树开始。 一、二叉查找树(1)二叉树简介:二叉查找树也称为有序二叉查找树,满足二叉查找树的一般性质,是指一棵空树具有如下性质:1、任意节点左子树不为空,则左...转载 2021-05-20 16:58:16 · 191 阅读 · 0 评论 -
Mysql读写分离的四种方案
以上四种方案各有优缺点,基于MySQL proxy代理的方式对于应用来说相对简单,但是在项目稳定性、事务支持性等方面还存在问题;而基于应用内路由的方式固然灵活度比较高,但是也增加了应用逻辑的复杂度;基于mysql-connector-java的jdbc驱动和sharding-jdbc的方式在使用上相对简单,但限制了需要使用java开发。原创 2021-05-10 18:08:04 · 27579 阅读 · 2 评论 -
Mysql悲观锁和乐观锁区别
1、mysql悲观锁:在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,依靠数据库提供的锁机制,每次会申请锁并加锁和解锁操作 第一步:两个终端均关闭自动提交 左边: 右边: 第二步:左边利用 select .... for update 的悲观锁语法锁住记录 select * from employee where id = 1 for update; 第三步:右边也尝试利用 select .... for upd...原创 2021-05-10 16:48:09 · 962 阅读 · 2 评论 -
数据库Sql优化
SQL优化的具体操作:1、在表中建立索引,优先考虑where、group by使用到的字段。2、尽量避免使用select *,返回无用的字段会降低查询效率。如下:SELECT * FROM t优化方式:使用具体的字段代替*,只返回使用到的字段。3、尽量避免使用in 和not in,会导致数据库引擎放弃索引进行全表扫描。如下:SELECT * FROM t WHERE id IN (2,3)SELECT * FROM t1 WHERE username IN (SELECT username F转载 2021-05-10 15:29:24 · 283 阅读 · 0 评论 -
数据库索引
1、索引的底层实现原理和优化 B+树,经过优化的B+树,主要是在所有的叶子结点中增加了指向下一个叶子节点的指针,因此InnoDB建议为大部分表使用默认自增的主键作为主索引。 3、什么情况下设置了索引但无法使用 以“%”开头的LIKE语句,模糊匹配OR语句前后没有同时使用索引数据类型出现隐式转化(如varchar不加单引号的话可能会自动转换为int型) 4、简单描述mysql中,索引,主键,唯一索引,联合索引的区别,对...转载 2021-05-10 14:51:45 · 206 阅读 · 0 评论 -
Mysql四种常见数据库引擎
四种mysql存储引擎前言数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以 获得特定的功能。现在许多不同的数据库管理系统都支持多种不同的数据引擎。MySQL的核心就是存储引擎。存储引擎查看MySQL给开发者提供了查询存储引擎的功能,我这里使用的是MySQL5.1,可以使用:SHOW ENGINES命令来查看MySQL使用的引擎,命令的输出为(我用的Nav转载 2021-05-10 11:31:01 · 1586 阅读 · 0 评论 -
hibernate 与mybatis 的区别 和特点
hibernate 与mybatis 的区别 和特点hibernate是全自动,而mybatis是半自动。hibernate完全可以通过对象关系模型实现对数据库的操作,拥有完整的JavaBean对象与数据库的映射结构来自动生成sql。而mybatis仅有基本的字段映射,对象数据以及对象实际关系仍然需要通过手写sql来实现和管理。hibernate数据库移植性远大于mybatis。hibernate通过它强大的映射结构和hql语言,大大降低了对象与数据库(oracle、mysql等)的耦合性,转载 2021-05-10 10:44:18 · 3914 阅读 · 0 评论 -
MySQL的四种事务隔离级别,你知道吗?
本文实验的测试环境:Windows 10+cmd+MySQL5.6.36+InnoDB一、事务的基本要素(ACID) 1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。 2、一致性(Consistency):事务开始前和结束后,数据库的完整性约束没有被破坏 。比如A向B转账,不可能A扣了钱,B原创 2020-05-24 10:24:23 · 236 阅读 · 0 评论 -
索引?这些索引你都知道吗?
一、什么是索引 在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。 优点:1.大大加快数据的检索速度; 2.创建唯一性索引,保证数据库表中每一行数据的唯一性; 3.加速表和表之间的连接; 4.在使用分组和排序子句进行数据检索时,可以显著减少查询中分组和排序的时间。 缺点:1.索引需要占物原创 2020-05-12 11:25:59 · 253 阅读 · 0 评论 -
关系型数据库和非关系型数据库区别、oracle与mysql的区别
一、关系型数据库关系型数据库,是指采用了关系模型来组织数据的数据库。关系模型是在1970年由IBM的研究员E.F.Codd博士首先提出的,在之后的几十年中,关系模型的概念得到了充分的发展并逐渐成为主流数据库结构的主流模型。简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。关系模型中常用的概念:**关系:**可以理解为一张二维表,每个关系都具有一个关系名,就是通常说的表名**元组:**可以理解为二维表中的一行,在数据库中经常被称为记录**属转载 2020-05-12 10:13:12 · 1198 阅读 · 0 评论