
数据库应用实战案例集锦
文章平均质量分 81
目前主流数据库使用过程中常见问题及解决方案
优惠券已抵扣
余额抵扣
还需支付
¥19.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
普通网友
这个作者很懒,什么都没留下…
展开
-
MySQL从入门到精通50讲(三十三)-MySQL 8.0线上环境硬件故障导致的主备切换
问题定位和环境介绍故障环境概况及部分参数发生故障环境的概况如下:MySQL Version:8.0.21MySQL Port:3386Xtrabackup Version:percona-xtrabackup-8.0.22-15数据同步方式:ROW + GTID + 增强半同步复制高可用架构:Keepalived + M-S(经典常见架构)一些参数配置:binlog_transaction_dependency_tracking = WRITESETtransa原创 2022-07-11 04:45:00 · 790 阅读 · 0 评论 -
MySQL从入门到精通50讲(三十五)-执行计划详解
执行计划输出各列的含义详解如果我们想查看某个查询的执行计划,可以在具体的查询语句前面加一个EXPLAIN或DESC或DESCRIBE均可,就像下面这样。输出的内容就是执行计划。除了将上述三个关键字任意一个加在SELECT语句前,DELETE、INSERT、UPDATE语句前也可以添加。EXPLAIN语句输出的各个列代表的含义如下:列名 描述 id 执行编号,标识SELECT所属的行,在一个大的查询语句中每个SELECT关键字都对应一个唯一的id,只有唯一的..原创 2022-07-08 04:45:00 · 802 阅读 · 0 评论 -
MySQL从入门到精通50讲(三十二)-ScyllaDB生产环境集群搭建
服务器规划 & 准备工作01环境介绍名称 详情 服务器 京东公有云ECS:32C/128G/8T(存储优化IO型本地NVMe SSD直通盘) × 5台 操作系统版本 CentOS Linux release 7.4.1708 (Core) 操作系统内核版本 3.10.0-693.el7.x86_64 ScyllaDB版本 4.4.4 因为ScyllaDB集群的数据最终会以SSTable文件方式落盘,所以对磁盘的性能要求....原创 2022-06-30 05:00:00 · 1135 阅读 · 1 评论 -
MySQL从入门到精通50讲(四十二)-线上环境MySQL Last_Errno:1292故障解决方案
问题的定位和处理问题环境概况及部分参数MySQL Version:10.1.10-MariaDBMySQL Port:3306同步方式:MIXED+binlog-position+异步复制报警所在的MySQL集群是一主两从架构,业务上线较早,使用的数据库版本也是MariaDB 10.1.10很早的版本。关键参数:binlog_format=MIXEDParallel_Mode: conservative问题定位showslavest......原创 2022-06-19 04:15:00 · 835 阅读 · 0 评论 -
MySQL从入门到精通50讲(四十一)-线上环境MySQL冷备恢复导致复制启动失败
同事A申请了一台服务器S自行安装(非交维:没有移交到运维部门统一规范管理)MySQL 5.7.13当作测试环境,因申请时,只考虑作为测试环境使用,所以MySQL没有开启binlog,也没有备份。阴差阳错地,服务器S交到了另一个同事B手上,此时,机器的定位尚不明确,但是同事B在正式使用服务器S之前让我协助帮他们每天做备份,备份也没有强一致的要求。随着开发的迭代,这个库慢慢成为了生产环境。但还是没有正式交维(我们的工作流:如需交维,是需要向我们运维部门提交工单的)、机器的OWNER没有发生变更还是同事A..原创 2022-06-13 05:30:00 · 800 阅读 · 0 评论 -
MySQL从入门到精通50讲(二十一)-CURSOR游标
游标游标概念游标(CURSOR)是一个存储在MySQL服务器上的数据库查询,它不是一条SELECT语句,而是被该语句检索出来的结果集。在存储了游标之后,应用程序可以根据需要滚动或浏览其中的数据。游标主要用于交互式应用,其中用户需要滚动屏幕上的数据,并对数据进行浏览或做出更改。小提示只能用于存储过程:不像多数DBMS,MySQL游标只能用于存储过程(和函数)。使用游标须知使用游标涉及几个明确的步骤。 在能够使用游标前,必须声明(定义)它。这个过程实际上原创 2022-07-19 06:15:00 · 836 阅读 · 0 评论 -
MySQL从入门到精通50讲(四十)-表空间碎片是如何产生的
01INSTALLATION环境介绍 & 工具安装.测试环境介绍 Linux操作系统版本:CentOS Linux release7.5.1804(Core) 这个工具是直接编译好的,我们可以直接下载即用。innblock下载因为GitHub上没有介绍安装教程,所以从网上找了一篇资料,提供了一个编译好的工具下载地址:http://pan.baidu.com/s/1qYnyVWo。同时我也把下载好的软件放在了百度网盘,为防止原地址丢失,大家也...原创 2022-06-02 05:00:00 · 880 阅读 · 0 评论 -
MySQL从入门到精通50讲(二十三)-EVENT事件
事件事件概念有时候我们想让MySQL服务器在某个时间点或者每隔一段时间自动地执行一些语句,这时候就需要去创建一个事件。其实我觉得MySQL的事件就和Linux操作系统的定时任务一样(Crontab),设置某个时间点或者按照设置的时间频率执行某些特定任务。和TRIGGER触发器一样,也不用像FUNCTION函数和PROCEDURE存储过程需要进行调用触发,事件只需要到设定的时间MySQL服务器自动触发。使用事件创建事件创建事件的语法如下:原创 2022-05-21 06:00:00 · 834 阅读 · 0 评论 -
MySQL从入门到精通50讲(三十七)-连接查询成本
ConditionFiltering介绍因为要做连接查询,所以我们创建一张和table_query_cost表一模一样的表table_query_cost2。CREATETABLE`table_query_cost`(`id`INT(11)NOTNULLAUTO_INCREMENT,`key1`VARCHAR(100),`key2`INT(11) ,`key3`VARCHAR(100),`key_par...原创 2022-04-26 04:30:00 · 909 阅读 · 0 评论 -
MySQL从入门到精通50讲(三十八)-表连接原理
同样地,我们还是先来准备一些测试数据。--Create DatabaseCREATEDATABASE`test_join`DEFAULTCHARACTERSETutf8mb4;--Create TableUSE`test_join`;CREATETABLEbook (idINT(11) PRIMARYKEYAUTO_INCREMENTCOMMENT'图书编号',titleVARCHAR(50)DEFAULTNULL...原创 2022-04-17 05:00:00 · 1443 阅读 · 0 评论 -
MySQL从入门到精通50讲(十)-DML语句
INSERT-插入数据库有了,表有了,下面就要往表中插入一些数据了。还是拿上次的student表举例,先来回顾一下student的表结构定义语句:CREATETABLE`student`(`student_id`INT(11)NOTNULLAUTO_INCREMENTCOMMENT'学生编号',`student_name`VARCHAR(20)NOTNULLCOMMENT'学生姓名',`address`VARCHAR(100)NULL...原创 2022-04-13 05:00:00 · 888 阅读 · 0 评论 -
MySQL从入门到精通50讲(九)-DDL语句详解
DDL语句DDL 是 DBMS 的核心组件,也是 SQL 的重要组成部分,DDL 的正确性和稳定性是整个 SQL 运行的重要基础。回顾一下以前的知识,DDL 的英文全称是 Data Definition Language,中文是数据定义语言。它定义了数据库的结构和数据表的结构。数据库定义语句 创建数据库语法: CREATE{DATABASE|SCHEMA} [IFNOTEXISTS] db_name[create_option] ...create_optio...原创 2022-04-05 04:00:00 · 1178 阅读 · 0 评论 -
SQL优化实战案例:给你的数据库提提速
1、MySQL的基本架构1)MySQL的基础架构图左边的client可以看成是客户端,客户端有很多,像我们经常你使用的CMD黑窗口,像我们经常用于学习的WorkBench,像企业经常使用的Navicat工具,它们都是一个客户端。右边的这一大堆都可以看成是Server(MySQL的服务端),我们将Server在细分为sql层和存储引擎层。当查询出数据以后,会返回给执行器。执行器一方面将结果写到查询缓存里面,当你下次再次查询的时候,就可以直接从查询缓存中获取到数据了。另一方面,直接将结果响应原创 2022-02-14 03:00:00 · 1050 阅读 · 0 评论 -
ORACLE疑难杂症解决方案:几大常见报错解决应用案例
ORA-00600 [4194] 故障处理1. 问题现象启动数据库,数据进行实例恢复完成后,能成功open,但数据库在几分钟后自动宕掉,通过alert日志,可以看到宕库前报错是ORA-00600 arguments: [4194]。alter database openBeginning crash recovery of 1 threadsparallel recovery started with 3 processesStarted redo scan ----->原创 2022-01-26 05:30:00 · 1370 阅读 · 0 评论 -
MySQL实战应用案例:单主/多主模式详解
单主/多主模式搭建MGR特点(1)基于Paxos协议和原生复制,多数节点同意即可通过事务提交;(2)具备高可用自动故障检测,可自动切换;(3)可弹性扩展,集群自动的新增和移除节点;(4)有单主和多主模式;(5)支持多节点写入,具备冲突检测机制,可以适应多种应用场景需求。MGR组复制是什么(1)主从复制是异步复制master事务的提交不需要经过slave的确认,slave是否接收到master的binlog,master并不care。slave接收到master binlog后先写原创 2022-02-07 05:00:00 · 1692 阅读 · 0 评论 -
MySQL快速查询的12条建议,让你不止会用select *
应用程序慢如牛,原因多多,可能是网络的原因、可能是系统架构的原因,还有可能是数据库的原因。那么如何提高数据库SQL语句执行速度呢?有人会说性能调优是数据库管理员(DBA)的事,然而性能调优跟程序员们也有莫大的关系。程序中嵌入的一行行的SQL语句,如果使用了一些优化小技巧,定能达到事半功倍的效果。技巧1 比较运算符能用 “=”就不用“<>”“=”增加了索引的使用几率。技巧2 明知只有一条查询结果,那请使用 “LIMIT 1”“LIMIT 1”可以避免全表扫描,找到对..原创 2021-09-30 04:00:00 · 1052 阅读 · 0 评论 -
数据仓库建设从0到1-一文带你深入建设金融数仓体系
导语本文讲述了金融数据仓库从无到有的整体设计思路,以及对数据建模、质量控制、元数据管理及开发规范各方面的经验思考,希望对大家在数仓建设工作方面有所帮助。背景自2018年以来,随着业务体系的不断丰富与发展,数据分析与应用需求越来越丰富,对金融数据仓库建设的要求也越来越迫切。金融数据仓库建设需要解决的问题,主要包括如下几点:1、数据存储和组织不成体系,数据集成的开发、维护及分析应用成本高;2、数据质量缺乏定义,缺乏有效统一的数据质量监控体系;3、缺失元数据规范管理,数据开发、表结构定义.原创 2021-07-06 09:11:10 · 1736 阅读 · 0 评论 -
MySQL从入门到精通50讲(八)-MySQL排序&分组
前言声明:以下是博主精心整理的机器学习和AI系列文章,博主后续会不断更新该领域的知识:人工智能AI实战系列代码全解析手把手教你ML机器学习算法源码全解析有需要的小伙伴赶紧订阅吧。MySQL 排序我们知道从MySQL表中使用SQL SELECT 语句来读取数据。如果我们需要对读取的数据进行排序,我们就可以使用MySQL的 ORDER BY 子句来设定你想按哪个字段哪中方式来进行排序,再返回搜索结果。本章节使用的数据库结构及数据下载:MySQL.sql语法以下是SQ.原创 2021-05-29 08:13:55 · 956 阅读 · 0 评论 -
MySQL从入门到精通50讲(四)-MySQL表操作创建表及删除表
前言声明:以下是博主精心整理的机器学习和AI系列文章,博主后续会不断更新该领域的知识:人工智能AI实战系列代码全解析手把手教你ML机器学习算法源码全解析有需要的小伙伴赶紧订阅吧。MySQL 创建数据表创建MySQL数据表需要以下信息:表名 表字段名 定义每个表字段语法以下为创建MySQL数据表的SQL通用语法:CREATE TABLE table_name (column_name column_type);以下例子中我们将在 W3CSCHOOL..原创 2021-05-08 08:48:53 · 931 阅读 · 1 评论 -
MySQL从入门到精通50讲(十)-MySQL中null值如何处理
MySQL NULL 值处理我们已经知道MySQL使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作。为了处理这种情况,MySQL提供了三大运算符:IS NULL:当列的值是NULL,此运算符返回true。 IS NOT NULL:当列的值不为NULL, 运算符返回true。 <=>:比较操作符(不同于=运算符),当比较的的两个值为NULL时返回true。关于 NULL 的条件比较运...原创 2021-05-02 06:23:32 · 1025 阅读 · 0 评论 -
MySQL从入门到精通50讲(十一)-MySQL正则表达式及事务
前言声明:以下是博主精心整理的机器学习和AI系列文章,博主后续会不断更新该领域的知识:人工智能AI实战系列代码全解析手把手教你ML机器学习算法源码全解析有需要的小伙伴赶紧订阅吧。MySQL 正则表达式在前面的章节我们已经了解到MySQL可以通过LIKE ...%来进行模糊匹配。MySQL 同样也支持其他正则表达式的匹配, MySQL中使用 REGEXP 操作符来进行正则表达式匹配。如果您了解PHP或Perl,那么操作起来就非常简单,因为MySQL的正则表达式匹配与这...原创 2021-05-01 06:31:21 · 1040 阅读 · 0 评论 -
MySQL从入门到精通50讲(一)-MySQL数据库操作创建数据库及删除数据库
前言声明:以下是博主精心整理的机器学习和AI系列文章,博主后续会不断更新该领域的知识:人工智能AI实战系列代码全解析手把手教你ML机器学习算法源码全解析有需要的小伙伴赶紧订阅吧。MySQL 连接使用MySQL二进制方式连接您可以使用MySQL二进制方式进入到MySQL命令提示符下来连接MySQL数据库。实例以下是从命令行中连接MySQL服务器的简单实例:[root@host]# mysql -u root -pEnter password:******在登录原创 2021-04-27 08:36:25 · 1044 阅读 · 0 评论 -
Windows下安装Redis
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set —有序集合)和hash(哈希类型)。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是...原创 2018-04-27 16:43:39 · 1008 阅读 · 0 评论 -
完美解答35K月薪的MySQL面试题(四)MySQL是如何加行锁的?
四、MySQL是如何加行锁的?1.RR隔离级别下的加锁机制2.RC隔离级别下的加锁机制间隙锁时为了解决幻读问题,在RC允许出现幻读现象所以RC隔离级别下行锁都加的是记录锁。只有在外键约束检查(foreign-key constraint checking)以及唯一键检查(duplicate-key checking)时会使用间隙锁封锁区间附录sakila数据库简介Sakila示例数据库的开发始于2005年初。最初由MySQL AB文档团队的前成员Mike Hill..原创 2020-08-21 08:11:59 · 1059 阅读 · 0 评论 -
完美解答35K月薪的MySQL面试题(三)MySQL是如何实现事务的?
三、MySQL是如何实现事务的?1.原子性,持久性和一致性原子性,持久性和一致性主要是通过redo log、undo log、Force Log at Commit和DoubleWrite机制来完成的。redo log用于在崩溃时恢复数据undo log用于对事务回滚时进行撤销,也会用于隔离性的多版本控制。Force Log at Commit机制保证事务提交后redo log日志都已经持久化。Double Write机制用来提高数据库的可靠性,用来解决脏页落盘时部分写失效问题。原创 2020-08-20 08:36:20 · 1088 阅读 · 0 评论 -
完美解答35K月薪的MySQL面试题(二)MySQL是如何查询一条语句的?
二、MySQL是如何查询一条语句的?1.执行流程介绍我们使用MySQL示例数据库sakila,待分析SQL语句如下:mysql> select customer_id,first_name,last_name from customer wherecustomer_id=14;上面给出的是 MySQL 的查询流程示意图,从中你可以清楚地看到 SQL 语句在 MySQL 的各个功能模块中的执行过程。大体来说,MySQL 可以分为 Server 层和存储引擎层两..原创 2020-08-19 08:31:02 · 1037 阅读 · 0 评论 -
完美解答35K月薪的MySQL面试题(一)MySQL是如何存储数据的
引言:说一下以下SQL语句的整体交互流程,包括客户端与服务端的交互以及服务器内部的整体流程BEGINSELECT * FROM user WHERE id > 10 FOR UPDATE;COMMIT;涉及知识点:整体执行流程、索引、锁、事务一、MySQL是如何存储数据的?1.MySQL的整体架构介绍2.MySQL磁盘文件介绍MySQL在Linux中的数据索引文件和日志文件一般默认都在/var/lib/mysql目录下。2.1 日志文件2.1.1 错误日原创 2020-08-18 08:37:34 · 1301 阅读 · 0 评论 -
MySQL 的 Binlog 日志处理工具(Canal/Maxwell/Databus/DTS)对比
Canal定位:基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了mysql。原理: canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议 mysql master收到dump请求,开始推送binary log给slave(也就是canal) canal解析binary log对象(原始为byte流) 整个parser过程大致可分为几步: Connection获取.原创 2020-10-09 08:37:49 · 1406 阅读 · 0 评论 -
MySQL如何向表中增加、修改字段
alter table 表名 add 字段名 数据类型 default 默认值说明:数据类型如,varchar(50)alter table BANK_SOKECT_INFO ADD COLUMN DEPTNO varchar(8);如何删除表中字段ALTER table 表名 DROP column 字段名ALTER TABLE — 更改表属性语法ALTER原创 2014-08-07 11:29:51 · 1769 阅读 · 0 评论 -
常用MySQL数据库命令
1、系统管理1.1 连接MySQL 格式: mysql -h主机地址 -u用户名 -p用户密码 举例: 例1:连接到本机上的MySQL。 首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令"mysql –u root –p",回车后提示你输密码,如果刚安装好MySQL,超级用户"root"是没有密码的,故直接回车即可进入到MySQL中了,MySQL的提示符原创 2014-06-19 17:08:53 · 1478 阅读 · 0 评论 -
MySQL关系数据库
1.1 Windows平台 1)准备软件 MySQL版本:mysql-5.5.21-win32.msi 2)安装环境: 操作系统:Windows 7旗舰版 3)开始安装 第一步:双击"msi"安装文件,出现如图1.1-1界面——"MySQL安装向导",按"Next"继续。 图1.1-1 MySQL安装向导 第二步:在"I accept …原创 2014-06-19 15:24:28 · 1588 阅读 · 0 评论 -
MySQL函数集锦
MySQL数据库中提供了丰富的内置函数,这些内置函数可以帮助用户更加方便地处理数据表中的数据。 (1)数学函数ABS(x) ==> 返回x的绝对值CEIL(x), CEILIN(x) ==> 返回不小于x的最小整数值FLOOR(x) ==> 返回不大于x的最大整数值RAND() ==> 返回0-1的随机数RAND(x) ==> 返回0-1的随机数,x值相同时返回的随机数原创 2014-08-01 11:19:42 · 1325 阅读 · 0 评论 -
Linux系统下MySQL数据库的备份和恢复
当我们MySQL数据库保存重要数据的时候,备份工作极为重要。本文介绍如何使用mysqldump备份和恢复数据,使用该方法,可以将数据库中的数据备份成一个文本文件,也可将备份好的数据库迁移到另一台的服务器。 (1) 从命令行备份MySQL数据库在Linux操作系统中,我们可以使用mysqldump命令进行备份。该命令将连接MySQL服务器并创建SQL转储文件,该文件包含了重新创建数据库所原创 2014-08-01 11:17:13 · 1608 阅读 · 0 评论 -
mysql数据库整理
mysql做分页查询: 1、SELECT * FROM TABLENAME LIMIT 5,10; //检索记录行6-10 2、//为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1 SELECT * FROM TABLENAME LIMIT 10,-1; //检索记录行11到末尾 3、//如果只给定一个参数,它表示返回最大原创 2014-07-25 18:09:38 · 1899 阅读 · 0 评论 -
对数据的操作
一、插入数据Insert语法如下:INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO] tbl_name [(col_name,...)] VALUES ({expr | DEFAULT},...),(...),... [ ON DUPLICATE KEY UPDATE col_nam原创 2014-05-09 14:19:34 · 775 阅读 · 0 评论 -
更改表结构
在(3)小节和(2)小节中都对mysql创建表有个清晰的认识,那么现在就学习如何更改表结构。一、快速入门通过一个例子进行深入理解,这里a1表结构如下:下面的例子对a1的表结构进行更改1、添加字段alter table a1 add column s1 int not null default 0 after sex; #添原创 2014-05-09 14:18:54 · 866 阅读 · 0 评论 -
mysql 字段类型
一、串数据类型分为定长和变长。定长:接受长度固定的字符串,且不能超过指定的字符数目,在创建表的时候就定下来了。变长:存储长度可变的文本。性能分析:Mysql对定长的处理速度比变长的处理数度要快的多,此外mysql不允许对变长列进行索引。MySQL数据类型含义char(n)固定长度的字符串,最多255个字符varchar(n)原创 2014-05-09 14:20:15 · 728 阅读 · 0 评论 -
数据库完整性和约束
一、数据库完整性1、定义关系完整性是为保证数据库中数据的正确性和相容性,对关系模型提出的某种约束条件或规则。完整性包括:域完整性: 域完整性是保证数据库字段取值的合理性。包括限制类型(数据类型),格式(通过检查约束和规则),可能值范围(通过外键约束,检查约束,默认值定义,非空约束和规则),在当今的关系DBMS中,一般都有域完整性约束检查功能。实体完整性: 实体完整性原创 2014-05-09 14:18:12 · 1308 阅读 · 0 评论 -
Mysql 查看、创建、更改 数据库和表
一、一探究竟我想看看有多少个数据库,有多少个表,以及表里有啥东西。那么你可以这样:图形界面:命令:查看多少个数据库:注意 后面带s#查看SHOW DATABASES; #查看表USE blog;SHOW TABLES;#查看表中的列SHOW COLUMNS FROM auth_user;DESCRIBE auth_us原创 2014-05-09 14:17:20 · 825 阅读 · 0 评论 -
mysql操作符
一、算术运算符1 SELECT 2+3; #42 SELECT 4-1; #33 SELECT 2*3; #64 SELECT 4/3; #1.33335 SELECT 10 DIV 3; #整除 3二、比较操作符=等号操作符,用于比较两个变量是否相等。注意:在比较时,许多字符串会自动被转换为整数。SELECT原创 2014-05-09 14:20:50 · 695 阅读 · 0 评论