DataBase
文章目录一、Oracle1.1 查询Oracle各项信息1.2 Oracle12c单机服务启动/停止1.3 Oracle 锁表与解锁1.4 Oracle常用函数二、Mysql2.1 Mysql基础2.1.1 数据存储结构2.1.2 索引2.1.3 SQL优化2.1.4 踩坑备忘2.2 查询Mysql5.7各项信息2.2.1 死锁日志分析2.2.2 分析锁等待关系2.3 Mysql5.7常用函数三、SqlServer1 账户创建2 查看外部连接暴露端口四、数据库事务1 事务的ACID属性2 数据库中的并发问题3 数据库事务的隔离级别一、Oracle1.1 查询Oracle各项信息1、查看当前数据库建立的会话情况selectcount(a.sid)当前会话数,max(b.num)当前活跃数,max(c.value)最大会话数fromv$sessionaleftjoin(selectcount(1)numfromv$sessionwherestatusACTIVE)bon11leftjoin(selectvaluefromv$parameterwherenamesessions)con11;2、查看当前数据库建立的连接情况selectcount(a.pid)当前连接数,max(c.value)最大连接数fromv$process aleftjoin(selectvaluefromv$parameterwherenameprocesses)con11;3、查询数据库正在执行Sql信息进程Id、用户、系统、执行语句...selectalter system kill session ||b.sid||,||b.serial#||; 终止进程,b.sid oracleID,b.username Oracle用户,b.serial#,spid 操作系统ID,paddr,sql_text 执行的SQL,b.machine 计算机名fromv$process ainnerjoinv$sessionbona.addrb.paddrandb.sql_hash_value0leftjoinv$sqlarea conb.sql_hash_valuec.hash_value;1.2 Oracle12c单机服务启动/停止# 停止服务su- oracle sqlplus / as sysdbashutdownimmediate;exitlsnrctl stop# 停止监听# 启动服务lsnrctl start# 启动监听sqlplus / as sysdba startup;exit1.3 Oracle 锁表与解锁-- 查看锁表会话、表名、用户名SELECTa.OS_USER_NAME,c.owner,c.object_name,b.sid,b.serial#, logon_timeFROMv$locked_object a,v$sessionb,dba_objects cWHEREa.session_idb.sidANDa.object_idc.object_idORDERBYb.logon_time;-- 杀死锁表进程ALTERSYSTEMKILLSESSIONsid,serial#;1.4 Oracle常用函数正则表达式函数REGEXP_LIKE(column, regexp)column要匹配的列名或字符串regexp正则表达式如匹配是否包含非字母数字的字符REGEXP_LIKE(col, [^A-Za-z0-9])时间截断函数TRUNC(date, dateFormat)date截断的时间sysdate当前数据库服务器带时区的时间current_timestamp at time zone UTC将当前时间转化为对应时区UTC时间dateFormat截断的时间精度-- 截取到当前年第一天 2024-01-01 00:00:00selecttrunc(sysdate,yyyy)fromdual-- 截取到当前小时 2024-08-28 14:00:00selecttrunc(sysdate,hh24)fromdual-- 截取UCT时区当前小时 2024-08-28 06:00:00selecttrunc(current_timestampattimezoneUTC,hh24)fromdual条件运算符EXISTS (select ...)检测子查询是否返回任何行NOT EXISTS与EXISTS相反先执行外查询逐行取出数据传给内查询进行匹配短路求值特性一旦找到第一个匹配项就立即停止执行返回TRUE无需遍历全部数据内存效率高不需要缓存整个子查询结果集采用流式处理方式子查询中必须包含与外查询表的关联条件当查询外层数据量远小于子集时优先使用EXISTS反之使用IN连表二、Mysql2.1 Mysql基础2.1.1 数据存储结构MyISAMInnoDB2.1.2 索引索引类别索引结构索引优化索引失效2.1.3 SQL优化计划字段优化查询2.1.4 踩坑备忘2.2 查询Mysql5.7各项信息-- 所有连接进程showprocessList-- 线程连接统计showstatuslikethreads%;-- 数据库最大连接数showvariableslikemax_connections;-- 最近一次死锁日志showengineinnodbstatus;-- 开启死锁全局日志记录setglobalinnodb_status_outputon;-- 错误日志路径showvariableslikelog_error;-- 慢sql日志路径showvariableslikeslow_query_log_file;-- 通用查询日志路径对性能影响大通常不开showvariableslikegeneral_log%;2.2.1 死锁日志分析查看最近一次死锁日志事务1事务1611699052已活跃 61 秒正在获取行fetching rows在等待一个 X锁排他锁被授予这个锁是在表 tb_ems_fittings_storehouse 的 PRIMARY 索引上space id 250 page no 138 n bits 168 index PRIMARY事务2事务2611699179已活跃 35 秒正在开始索引读取starting index read持有一个在 PRIMARY 索引上的 X锁lock_mode X locks rec but not gap这个锁恰好是事务1正在等待的锁同时在等待另一个在 PRIMARY 索引上的 X锁space id 250 page no 67死锁的处理结果InnoDB 选择回滚了事务2WE ROLL BACK TRANSACTION (2)来解除死锁。被回滚的事务通常被认为是相对“代价较小”的那个例如修改的行数较少或回滚日志较少2.2.2 分析锁等待关系-- 当前锁等待关系SELECTr.trx_idASwaiting_trx_id,r.trx_mysql_thread_idASwaiting_thread,r.trx_queryASwaiting_query,b.trx_idASblocking_trx_id,b.trx_mysql_thread_idASblocking_thread,b.trx_queryASblocking_query,b.trx_startedASblocking_start_time,TIMESTAMPDIFF(SECOND,b.trx_started,NOW())ASblocking_duration_sec,pl.lock_modeASlock_mode,pl.lock_typeASlock_type,pl.lock_tableASlocked_table,pl.lock_indexASlocked_indexFROMinformation_schema.innodb_lock_waits wINNERJOINinformation_schema.innodb_trx bONb.trx_idw.blocking_trx_idINNERJOINinformation_schema.innodb_trx rONr.trx_idw.requesting_trx_idINNERJOINinformation_schema.innodb_locks plONpl.lock_idw.blocking_lock_id;-- 当前运行事务SELECT*FROMinformation_schema.INNODB_TRXORDERBYTRX_STARTEDASC;-- 当前被锁的表SHOWOPENTABLESWHEREIn_use0;waiting_thread等待锁的事务ID受害者blocking_thread持有锁的事务ID凶手waiting_query受害者正在执行的SQLblocking_query凶手正在执行的SQLblocking_duration_sec凶手已经运行了多久时间过长通常有问题locked_table被锁定的表locked_index被锁定的索引2.3 Mysql5.7常用函数相关文档w3schools 教程_Mysql参考手册日期加减DATE_ADD(inputDate, INTERVAL expr unit)inputDate:输入时间合法日期表达式expr:时间间隔正加负减unit:单位是以下值之一MICROSECOND, SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR等-- 当前时间减三十天selectdate_add(now(),interval-30day)-- 当前时间加24小时selectdate_add(now(),interval30day)字符串转化时间STR_TO_DATE(str, format)str转化字符串format指定转化时间格式符号具体符号含义如下表selectstr_to_date(2025-04-23 12:00:01,%Y-%m-%d %H:%i:%s)时间转化字符串DATE_FROMAT(data, format)date转化时间format指定转化时间格式符号具体符号含义如下表selectdate_format(now(),%Y-%m-%d %H:%i:%s)符号描述%a工作日的缩写名称周日至周六%b缩写月份名称1 月至 12 月%c数字月份名称0 到 12%D以数字形式表示的月份中的日期后跟后缀 (1st, 2nd, 3rd, …)%d以数值表示的月份中的日期01 到 31%e以数字形式表示的月份中的日期0 到 31%f微秒000000 到 999999%H小时00 到 23%h小时00 到 12%I小时00 到 12%i分钟00 到 59%j一年中的某一天001 到 366%k小时0 到 23%l小时1 到 12%M完整的月份名称1 月至 12 月%m数字形式的月份名称01 到 12%p上午或下午%r12 小时 AM 或 PM 格式的时间 (hh:mm:ss AM/PM)%S秒00 到 59%s秒00 到 59%T24 小时制时间 (hh:mm:ss)%U星期天是一周的第一天00 到 53%u星期一是一周的第一天的星期00 到 53%V星期天是一周的第一天01 到 53。与%v星期一是一周的第一天的星期01 到 53。与%W完整的工作日名称周日至周六%w星期天0星期六6%X星期天是一周的第一天的星期。与%x星期一是一周的第一天的一周的年份。与%Y4 位数字形式的年份%y2 位数字形式的年份三、SqlServer1 账户创建右键管理员运行SQL Server Management Studio进入权限界面Security - Logins右键New Login设置账号密码选择权限角色2 查看外部连接暴露端口运行SQL Server Configuration Manager选择SQL Server Network Config右键TCP/IP查看对应属性TCP Dynamic Ports四、数据库事务1 事务的ACID属性原子性(Atomicity)事务是一个不可分割的工作单位事务中的操作要么都发生要么都不发生一致性(Consistency)事务中操作的数据总是随操作从某一个稳定的状态转变为另一个稳定的状态隔离性(Isolation)每个事务之间互不干扰持久性(Durability)事务一旦提交对数据库的改变就是永久性的2 数据库中的并发问题不同事务同时访问相同数据造成并发问题 脏读 不可重复读 幻读脏读两个事务一个事务读取到了另一个事务未提交的数据不可重复读在一个事务内两次先后读的数据不一样因为别的事务在更改这个数据幻读在一个事务内读取到别的事务插入的数据3 数据库事务的隔离级别读未提交(READ UNCOMMITED)级别最低允许事务读取其他事务未提交的数据读已提交(READ COMMITED)解决脏读只允许事务读取其他事务已提交的数据不可避免(不可重复读、幻读)可重复读(REPEATABLE READ)解决不可重复读不可避免(幻读)串行化(SERIALIZABLE)解决所有并发问题直接让每个事务串行运行效率低下Oracle 支持2种事务隔离级别读已提交、串行化Mysql 支持3种事务隔离级别读已提交、可重复读、串行化那些操作会导致数据的自动提交?DDL(Data Definition Language)数据定义语言 操作一旦执行都会自动提交 set autocommit false 无效DML(Data Manager Language)数据管理语言 默认自动提交 set autocommit false 可以取消自动提交连接一关闭数据就会自动提交自动提交关闭用完之后要变回去 数据一旦发生异常记得回滚 conn.rollback();

相关新闻

Unity DOTS BlobAsset:ECS架构下高性能只读数据共享方案详解

Unity DOTS BlobAsset:ECS架构下高性能只读数据共享方案详解

1. 项目概述:为什么我们需要 BlobAsset?如果你已经跟着 DOTS 系列一路走来,从 Entity 创建到 System 调度,再到 IComponentData 和 IJobEntity,你应该已经感受到了 ECS 架构在性能上的巨大潜力。数据紧密排列&#xff…

2026/10/13 14:01:55 阅读更多 →
如何在10分钟内为Honey Select 2安装终极汉化去码补丁:完整新手指南

如何在10分钟内为Honey Select 2安装终极汉化去码补丁:完整新手指南

如何在10分钟内为Honey Select 2安装终极汉化去码补丁:完整新手指南 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch HS2-HF Patch是专为Honey Selec…

2026/9/28 6:57:53 阅读更多 →
WordPress高转化技术栈:2024年性能优化实战指南

WordPress高转化技术栈:2024年性能优化实战指南

1. 项目概述:WordPress高转化技术栈的核心价值在数字营销领域,转化率提升1%可能意味着六位数的收入增长。作为从业12年的WordPress技术顾问,我见证了无数企业因技术栈选择不当而损失潜在客户。2024年的WordPress技术生态已发生质变&#xff0…

2026/10/13 5:19:47 阅读更多 →

最新新闻

Logstash离线插件安装实战:依赖解析、打包与验证全流程

Logstash离线插件安装实战:依赖解析、打包与验证全流程

1. 为什么Logstash插件必须离线安装——一个被低估的生产环境现实Logstash作为ELK栈中承上启下的数据管道核心,其价值从来不在“能跑起来”,而在于“能在哪跑、怎么稳跑、出问题时能否快速恢复”。我见过太多团队在测试环境用bin/logstash-plugin instal…

2026/10/13 14:01:51 阅读更多 →
百度人工智能试题备考:从机器学习基础到工程化落地

百度人工智能试题备考:从机器学习基础到工程化落地

简介:面向百度人工智能岗位的经典考试试题合集,覆盖语义网络、推理、知识表示、机器学习与自然语言处理等核心模块,适合正在准备人工智能面试或系统复习基础知识的学习者。资源包仅含1个doc文档,压缩包大小279KB,文件虽…

2026/10/13 14:01:51 阅读更多 →
知识工作者的插件矩阵:从信息摄入到检索复用的搭建实录

知识工作者的插件矩阵:从信息摄入到检索复用的搭建实录

从"装插件"到"搭系统":知识工作者的插件矩阵搭建实录最近常常被问到一个很朴素的问题:那些每天都在产出内容、处理信息的知识工作者,桌面上的浏览器和编辑器到底装着哪些插件?说句实话,两年前我自…

2026/10/13 14:01:51 阅读更多 →
软件交付移交清单:27项可验证条目与自动化校验实践

软件交付移交清单:27项可验证条目与自动化校验实践

简介:本资源是一份开箱即用的软件交付系统移交清单标准化模板,面向项目经理、实施工程师及IT交付团队,解决项目收尾阶段交付物遗漏、文档不全、软硬件与培训材料脱节等常见痛点。模板覆盖项目基本信息、软件/硬件/文档/其他四类交付清单&…

2026/10/13 14:01:51 阅读更多 →
Delphi 集成 Chromium:CEF4Delphi 控件从入门到请求拦截实战

Delphi 集成 Chromium:CEF4Delphi 控件从入门到请求拦截实战

简介:CEF4Delphi控件是一套面向Delphi开发者的Chromium谷歌内核浏览器集成方案,适合需要在桌面应用中嵌入现代网页渲染能力的开发者,覆盖从Delphi 7到Delphi 10.2的多个版本,作者已亲自测试调试安装正常。资源包共462个文件&#…

2026/10/13 14:01:51 阅读更多 →
Python字典的__missing__魔术方法:缺失键的优雅处理机制

Python字典的__missing__魔术方法:缺失键的优雅处理机制

就像所有键都找不到时会手足无措的字典一样,Python里的dict其实留了一扇专门处理这种情况的门,这门就是魔术方法__missing__。它是字典变体类的核心钩子:当d[key]访问的键不在字典里时,解释器不会直接抛KeyError,而是先…

2026/10/13 14:00:49 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →