
关系型数据库
文章平均质量分 70
关系型数据库
张俊杰zjj
一个大龄的码农.目前是Java+Python开发,业余时间研究减肥健身养生,后期可能会去做减肥健身博主.
展开
-
Windows10安装MySQL
链接: https://pan.baidu.com/s/1cUVH8_WlnNA0OLuDEN3Lmg?pwd=ras7该免安装版本 使用方法,假如存放在了:B:\databaseTools\mysql-5.7.24-winx64解压到你需要存放的目录, 然后在系统变量配置环境变量:MYSQL_HOMEB:\databaseTools\mysql-5.7.24-winx64B:\databaseTools\mysql-5.7.24-winx64\bin内容参考附件:修改basedirdatad原创 2022-10-29 13:07:50 · 1289 阅读 · 0 评论 -
windows10的MySQL忘记密码
其中 --skip-grant-tables 选项的意思是启动 MySQL 服务的时候跳过权限表认证。 启动后,连接到 MySQL 的 root 将不需要口令(危险)。如何重启MySQL的服务这样就可以重启服务了3.到 my.cnf 中删除 skip-grant-tables 选项,然后重启MySQL服务。最后:客户端连接一下原创 2022-10-29 13:07:00 · 1066 阅读 · 0 评论 -
查看MySQL的版本号
用sql方式查看select version();原创 2022-02-05 15:55:52 · 620 阅读 · 0 评论 -
表的访问设计:你该选择 SQL 还是 NoSQL? 转自拉钩教育
到目前为止,我已经带你学习了表结构的字段类型选择和表的物理存储设计,这一讲我们将继续学习表的访问选型。这样一来,字段类型选择 + 物理存储设计 + 表的访问设计,就完成了表结构设计的所有内容。前面 6 讲,我演示的都是通过 SQL 的方式对表进行访问,但从 MySQL 5.6 版本开始,就支持除 SQL 外的其他访问方式,比如 NoSQL,甚至可以把 MySQL 打造成一个百万级并发访问的 KV 数据库或文档数据库。今天这一讲,我就带你从全局角度看 MySQL 数据库中表的访问方式,以及它们各自的使用场转载 2021-08-24 12:05:10 · 223 阅读 · 0 评论 -
表压缩:不仅仅是空间压缩-转自 拉钩教育
据我观察,很多同学不会在表结构设计之初就考虑存储的设计,只有当业务发展到一定规模才会意识到问题的严重性。而物理存储主要是考虑是否要启用表的压缩功能,默认情况下,所有表都是非压缩的。但一些同学一听到压缩,总会下意识地认为压缩会导致 MySQL 数据库的性能下降。这个观点说对也不对,需要根据不同场景进行区分。 这一讲,我们就来看一看表的物理存储设计:不同场景下,表压缩功能的使用。表压缩数据库中的表是由一行行记录(rows)所组成,每行记录被存储在一个页中,在 MySQL 中,一个页的大小默认为 16K,一转载 2021-08-24 11:28:28 · 395 阅读 · 2 评论 -
Mysql主键设计-转拉钩教育
工程上的表结构设计实战真实的业务场景是工程实现,表结构设计做好以下几点就已经足够:每张表一定要有一个主键(方法有自增主键设计、UUID 主键设计、业务自定义生成主键);消除冗余数据存在的可能。我想再次强调一下,你不用过于追求所谓的数据库范式准则,甚至有些时候,我们还会进行反范式的设计。自增主键设计主键用于唯一标识一行数据,所以一张表有主键,就已经直接满足一范式的要求了。在 01 讲的整型类型中,我提及可以使用 BIGINT 的自增类型作为主键,同时由于整型的自增性,数据库插入也是顺序转载 2021-08-24 09:59:06 · 265 阅读 · 0 评论 -
MySQL中关联的字段数据类型不一致会导致索引失效
数据类型不一致会导致索引失效下面案例中fk_do_depart 是varchar类型的, 如果关联的字段不是varchar类型的话会导致索引失效用相同的数据类型关联注意观察 fk_do_depart = ‘10001108’ ,两个都是varchar类型的EXPLAINSELECT do.fk_definition_id, t3.fk_org_region_idFROM t_user_account t1 INNER JOIN t_relation_account_role原创 2021-06-29 16:54:17 · 2415 阅读 · 0 评论 -
MySQL关于金额问题,浮点类型和高精度类型以及DECIMAL
出自:<姜承尧的MySQL实战宝典 >,本人学习完了在原文又做了一些更改和总结浮点类型和高精度型除了整型类型,数字类型常用的还有浮点和高精度类型。MySQL 之前的版本中存在浮点类型 Float 和 Double,但这些类型因为不是高精度,也不是 SQL 标准的类型,所以在真实的生产环境中不推荐使用,否则在计算时,由于精度类型问题,会导致最终的计算结果出错。更重要的是,从 MySQL 8.0.17 版本开始,当创建表用到类型 Float 或 Double 时,会抛出下面的警告:MySQ原创 2021-06-26 14:46:43 · 4540 阅读 · 0 评论 -
Mysql整型类型与自增设计注意点
出自:<姜承尧的MySQL实战宝典 >,本人学习完了在原文又做了一些更改和总结在真实业务场景中,整型类型最常见的就是在业务中用来表示某件物品的数量。例如上述表的销售数量,或电商中的库存数量、购买次数等。在业务中,整型类型的另一个常见且重要的使用用法是作为表的主键,即用来唯一标识一行数据。注意点1,用BITINT做主键,而不是INT整型结合属性 auto_increment,可以实现自增功能,但在表结构设计时用自增做主键,希望你特别要注意以下两点,若不注意,可能会对业务造成灾难性的打击:原创 2021-06-26 14:31:41 · 1219 阅读 · 0 评论 -
Mysql的整形类型 signed 和 unsigned 属性采坑
出自:<姜承尧的MySQL实战宝典 >,本人在原文又做了一些更改MySQL 数据库支持 SQL 标准支持的整型类型:INT、SMALLINT。此外,MySQL 数据库也支持诸如 TINYINT、MEDIUMINT 和 BIGINT 整型类型(表 1 显示了各种整型所占用的存储空间及取值范围):各 INT 类型的取值范围在整型类型中,有 signed 和 unsigned 属性,其表示的是整型的取值范围,默认为 signed。如果不知道signed 和 unsigned是什么意思就看下原创 2021-06-26 13:31:05 · 2852 阅读 · 0 评论 -
为了执行SQL语句,你知道MySQL用了什么样的架构设计吗?
原文从零开始带你成为MySQL实战优化高手 – 中华石杉1、把MySQL当个黑盒子一样执行SQL语句上一讲我们已经说到,我们的系统采用数据库连接池的方式去并发访问数据库,然后数据库自己其实也会维护一个连接池,其中管理了各种系统跟这台数据库服务器建立的所有连接我们先看下图回顾一下 当我们的系统只要能从数据库连接池获取到一个数据库连接之后,我们就可以执行增删改查的SQL语句了从上图其实我们就可以看到,我们可以通过数据库连接把要执行的SQL语句发送给MySQL数据库原创 2021-05-16 13:53:19 · 361 阅读 · 0 评论 -
MySQL数据库的连接池是用来干什么的?
数据库连接池到底是用来干什么的?接着我们来思考一个问题,一个Java系统难道只会跟数据库建立一个连接吗?这个肯定是不行的,因为我们要明白一个道理,假设我们用Java开发了一个Web系统,是部署在Tomcat中的,那么Tomcat本身肯定是有多个线程来并发的处理同时接收到的多个请求的,我们看下图。这个时候,如果Tomcat中的多个线程并发处理多个请求的时候,都要去抢夺一个连接去访问数据库的话,那效率肯定是很低下的我们看下面的图那么如果Tomcat中的每个线程在每次访问数据库的时候,都基于MySQL原创 2021-05-16 13:41:02 · 1065 阅读 · 1 评论 -
MySQL驱动到底是什么东西?
MySQL驱动到底是什么东西?大家都知道,我们如果要在Java系统中去访问一个MySQL数据库,必须得在系统的依赖中加入一个MySQL驱动,有了这个MySQL驱动才能跟MySQL数据库建立连接,然后执行各种各样的SQL语句。那么这个MySQL驱动到底是个什么东西?我们先来看下面的一段maven配置,这段maven配置中就引入了一个MySQL驱动。这里的mysql-connector-java就是面向Java语言的MySQL驱动。大家都知道,如果我们要访问数据库,必须得跟数据库建立一个网络连接,那么原创 2021-05-16 13:33:46 · 6502 阅读 · 2 评论 -
MySQL 派生表(Derived Table)是什么
本文将通过演示告诉你:MySQL 中派生表(Derived Table)是什么?以及 MySQL 对它的优化。Background有如下一张表:mysql> desc city;+------------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+------------+-------------+------+-----转载 2021-05-10 20:18:26 · 2291 阅读 · 0 评论 -
Mysql事务原理
概述事务是基于重做日志文件(redo log)和回滚日志(undo log)实现的。每提交一个事务必须先将该事务的所有日志写入到重做日志文件进行持久化,数据库就可以通过重做日志来保证事务的原子性和持久性。每当有修改事务时,还会产生undo log,如果需要回滚,则根据undo log 的反向语句进行逻辑操作,比如insert 一条记录就delete 一条记录。undo log 主要实现数据库的一致性,还可以用来实现MVCC详解事务操作原理:事务开启之后,所有的操作都会临时保存到事务日志,事务日志只原创 2021-03-19 12:19:09 · 145 阅读 · 0 评论 -
MVCC多版本并发控制
什么是MVCCMultiversion concurrency control (多版本并发控制)MySQL的大多数事务型存储引擎实现的都不是简单的行级锁。基于提升并发性能的考虑,它们一般都同时实现了多版本并发控制(MVCC)。不仅是MySQL,包括Oracle、PostgreSQL等其他数据库系统也都实现了MVCC,但各自的实现机制不尽相同,因为MVCC没有一个统一的实现标准。可以认为MVCC是行级锁的一个变种,但是它在很多情况下避免了加锁操作,因此开销更低。虽然实现机制有所不同,但大都实现了非阻塞原创 2021-03-19 12:13:19 · 219 阅读 · 0 评论 -
Oracle 授权建立同义词
基本语法介绍-- 在对方的数据库里面执行grant select on 要授权的表 to 对方的表;-- 在自己的数据库里面执行create or replace synonym 同义词的名字 for 他们的库名字.他们的表名;操作我想建立同义词,希望我能从B库里面查询A库里面的a表.就需要授权建立同义词在A数据库里面操作grant select on a表 to A库;在B数据库里面操作create or replace synonym 同义词名字 for A数据库名字.a表;原创 2021-02-25 16:04:19 · 576 阅读 · 0 评论 -
Plsql跑Oracle存储过程,输入参数并且查询结果
点击测试菜单查看结果跑完断点之后就出结果了查看列表详情新弹出一个页面显示列表详细数据原创 2021-02-25 14:09:55 · 1758 阅读 · 0 评论 -
oracle number 类型的字段到Java代码里面出现小数点后面0丢失问题
oracle number 类型的字段到Java代码里面出现小数点后面0丢失问题SQL查询是这样的结果到了Java代码之后发现小数点后面0都被舍掉了.这个字段是number类型的我的解决办法就是 Java实体类用String类型接收,然后在SQL里面给number类型的字段转成varchar类型 trim(to_char(SALEFEE_PER, '99999999990.999999')) as SALEFEE_PER完整的SQL.这样是varchar2类型的,到Java端直接是用S原创 2021-02-24 16:30:03 · 2567 阅读 · 0 评论 -
plsql 查看Oracle存储过程
给存储过程粘贴上 Ctrl +鼠标右键点击一下就可以了原创 2021-02-24 15:08:45 · 8351 阅读 · 0 评论 -
MySQL死锁原理及如何定位和解决?
什么是死锁死锁是指两个或者多个事务在同一资源上相互占用,并请求锁定对方占用的资源,从而导致恶性循环的现象。当多个事务试图以不同的顺序锁定资源时,就可能会产生死锁。多个事务同时锁定同一个资源时,也会产生死锁。例如,设想下面两个事务同时处理StockPrice表:事务1START TRANSACTION;UPDATE StockPrice SET close = 45.50 WHERE stock_id = 4 and date = '2002-05-01';UPDATE StockPrice SET原创 2021-02-12 15:26:16 · 2062 阅读 · 0 评论 -
MySQL如何阅读死锁日志
转载地址http://blog.itpub.net/22664653/viewspace-2145133/一 前言欲善其事必先利其器,前面分析了很多死锁案例,并没有详细的介绍如何通过死锁日志来诊断死锁的成因。本文将介绍如何读懂死锁日志,尽可能的获取信息来辅助我们解决死锁问题。二 日志分析2.1 场景为了更好的学习死锁日志,我们需要提前了解死锁场景MySQL 5.6 事务隔离级别为RRCREATE TABLE `ty` ( `id` int(11) NOT NULL AUTO_INCREM转载 2021-02-10 12:46:59 · 507 阅读 · 0 评论 -
Msyql优化分页查询
在使用一些常规的 SQL 时,如果我们通过一些方法和技巧来优化这些 SQL 的实现,在性能上就会比使用常规通用的实现方式更加优越,甚至可以将 SQL 语句的性能提升到另一个数量级。1. 优化分页查询通常我们是使用 <LIMIT M,N> + 合适的 order by 来实现分页查询,这种实现方式在没有任何索引条件支持的情况下,需要做大量的文件排序操作(file sort),性能将会非常得糟糕。如果有对应的索引,通常刚开始的分页查询效率会比较理想,但越往后,分页查询的性能就越差。这是因为我们原创 2021-02-07 18:21:51 · 230 阅读 · 0 评论 -
记一次线上SQL死锁事故:如何避免死锁?
转载自 极客时间- Java性能调优实战 刘超记一次线上SQL死锁事故:如何避免死锁?之前我参与过一个项目,在项目初期,我们是没有将读写表分离的,而是基于一个主库完成读写操作。在业务量逐渐增大的时候,我们偶尔会收到系统的异常报警信息,DBA 通知我们数据库出现了死锁异常。按理说业务开始是比较简单的,就是新增订单、修改订单、查询订单等操作,那为什么会出现死锁呢?经过日志分析,我们发现是作为幂等性校验的一张表经常出现死锁异常。我们和 DBA 讨论之后,初步怀疑是索引导致的死锁问题。后来我们在开发环境中模拟原创 2021-02-07 13:40:41 · 1099 阅读 · 0 评论 -
MySQL的聚簇索引和非聚簇索引
聚簇索引和非聚簇索引(一)两者区别简单概括:聚集索引就是以主键创建的索引,将数据存储与索引放到了一块,找到索引也就找到了数据,非聚集索引就是以非主键创建的索引;将数据存储于索引分开结构,索引结构的叶子节点指向了数据的对应行区别:聚集索引在叶子节点存储的是表中的数据;非聚集索引在叶子节点存储的是主键和索引列;使用非聚集索引查询出数据时,拿到叶子上的主键再去查到想要查找的数据。(拿到主键再查找这个过程叫做回表)非聚集索引也叫做二级索引,不用纠结那么多名词,将其等价就行了~非聚集索引在建立的时原创 2021-02-06 12:10:34 · 517 阅读 · 0 评论 -
MySQL索引为什么用B+Tree?
(一)二叉查找树二叉查找树 检索是10是根节点,假如我想查询 7 的数据,检索步骤是 一个节点一个节点去比对,先把根节点加载到内存里面, 7 和 10比对发现比10小,就会往左边进行搜索.这时候把5加载到内存里面,去跟7比对,发现 7 比5大,就往右边走. 然后把 7加载到内存里面发现是我要的数据.这样的话就可以过滤掉 15 节点后面的数据,大大减少了检索的时间.二叉树也会出现问题,在连续插入的时候如果后面的插入的数据依次都比前面的大,就会变成是链表的形式.这样就和全表扫描没有什么不同了.[外链原创 2021-02-06 12:01:04 · 514 阅读 · 0 评论 -
什么是回表查询-转自架构师之路公众号文章
这先要从InnoDB的索引实现说起,InnoDB有两大类索引:聚集索引(clustered index)普通索引(secondary index)InnoDB聚集索引和普通索引有什么差异?InnoDB聚集索引的叶子节点存储行记录,因此, InnoDB必须要有,且只有一个聚集索引:(1)如果表定义了PK,则PK就是聚集索引;(2)如果表没有定义PK,则第一个not NULL unique列是聚集索引;(3)否则,InnoDB会创建一个隐藏的row-id作为聚集索引;画外音:所以PK查询非常快,原创 2021-02-03 17:27:14 · 342 阅读 · 0 评论 -
MySQL 数据库如何实现 XA 规范?
MySQL 数据库如何实现 XA 规范?(一)转自分布式技术原理与实战45讲转自 分布式技术原理与实战45讲 - 邴越MySQL 为我们提供了分布式事务解决方案,在前面的内容中提到过 binlog 的同步,其实是 MySQL XA 规范的一个应用,那么 XA 规范是如何定义的,具体又是如何应用的呢?今天我们一起来看一下 XA 规范相关的内容。(二)MySQL 有哪些一致性日志问你一个问题,如果 MySQL 数据库断电了,未提交的事务怎么办?答案是依靠日志,因为在执行一个操作之前,数据库会首原创 2021-02-03 09:36:03 · 389 阅读 · 0 评论 -
oracle 修改date类型的字段的值
用 to_date函数.update UM_MESSAGE_APPLYset SEND_TIME = to_date('2020-10-21 10:00:00', 'yyyy-mm-dd hh:mi:ss')where id = '9dcaf791985e4077a02d6cdaa2f5317a';原创 2020-10-31 11:20:42 · 3725 阅读 · 0 评论