- 博客(99)
- 收藏
- 关注
原创 MYSQL优化(1)
这两种缓存是全局缓存,可提升访问表的速度通过show open tables命令可以查看当前缓存中缓存了哪些表In_use:当前有多少线程正在使用该表Name_locked:当前该表是否被锁定,值为0表示没有锁定,值为1表示被锁定。被锁定通常发生在删除表或者重命名表的过程中。
2025-05-23 15:11:31
753
原创 mysql安全管理
数据库管理系统用于管理数据库服务器的各种数据库资源,MYSQL是一个支持多用户的数据库管理系统,实现多用户下,各种数据库资源的安全访问控制,确保数据库资源安全访问成为了数据库管理系统的核心功能。MYSQL安全管理是指允许合法账户访问合法数据库资源,并拒绝非法用户访问非法数据库资源。可以看出,MYSQL安全管理与MYSQL账户管理密不可分。
2025-05-22 16:44:11
592
原创 MYSQL备份与恢复
数据库管理员最为重要的任务就是防止数据丢失,或者发生数据丢失后将损失降到最低。通过数据库备份可以实现该任务目标,数据库备份就成了数据库管理员的日常工作。数据库的恢复是将数据库从某一种"错误"状态恢复到某一个已知的正确状态。
2025-05-22 11:02:34
837
原创 视图+触发器+临时表+派生表
作为常用的数据对象,视图为数据查询提供了一条捷径;触发器为数据自动维护提供了便利;而临时表和派生表也在一定程度方便了数据查询与维护。
2025-05-19 17:05:10
864
原创 表记录的检索
连接的方法有两种,一种是在from子句使用连接运算,讲多个数据源按照某种连接条件“缝补”在一起,一种是在where子句中指定连接条件。例如,在student表中,想要直接看到学生和其班级信息,可以通过班级id把班级信息连接上来。重点:保留表2的全部记录,而表1中不符合的信息则过滤掉,表2中如果存在某些匹配不到表1的信息,则该行的表1部分则都是NULL。重点:保留表1的全部信息,而表2 不符合的信息则过滤掉,表1如果存在某些匹配不到表2的信息,则该行的表2部分信息都是NULL。
2025-05-15 20:28:23
621
原创 修改一个表的相关操作语句
alter table 表名 add [unique | fulltext] index 索引名 (字段名[(长度)]);create [unique|fulltext] index 索引名 on 表名(字段名[(长度)]);(1)alter table tab1 add constraint 约束名 约束类型(字段名)alter table tab1 pack_keys=新的压缩类型。索引分为聚簇索引,主索引,唯一性索引,普通索引,复合索引等。(2)alter table 旧表名 rename 新表名。
2025-05-15 15:09:45
249
原创 mysql设置约束
MYSQL支持的约束包括主键约束(primary key),非空约束(not NULL), 检查约束(check), 默认值约束(default), 唯一性约束(unique), 外键约束(foreign key)约束。其中,检查(check)约束需要借助触发器或者MYSQL符合数据类型实现。
2025-05-15 11:38:30
360
原创 mysql数据类型
MYSQL数据类型支持五种类型又或者是7种具体类型:整数数值类型,小数数值类型,字符串类型,日期类型,enum类型,set集合类型,二进制类型。
2025-05-15 11:04:56
595
原创 mysql的系统变量与数据库备份
MYSQL启动时,将为服务器内存中的系统变量赋值,这些系统变量定义了当前MYSQL服务实例的属性,特征。(4)数据库恢复:停止MYSQL服务,然后将整个数据库目录,MYSQL配置文件,ibdata1共享表空间文件,以及重做日志文件复制到新的MYSQL服务器对应的目录即可。系统变量分为全局系统变量以及会话系统系统变量,静态变量属于特殊的全局变量。系统变量以两个"@“开头,@@global标记全局系统变量,@@session标记会话系统变量,若会话系统变量不存在,则标记全局系统变量。
2025-05-12 10:21:48
251
原创 mysql表管理知识记录
在数据库中创建innodb存储引擎的表,例如my_table,新表将使用独享表空间存储数据以及索引信息,默认情况下,独享表空间的文件名为"表名.ibd”,并且位于数据库目录下,独享表空间文件保存了my_table表的数据,索引以及该表的事务回滚等信息。(5)如果数据库表的存储引擎是MYISAM,MYSQL服务实会自动创建一个sdi文件,一个MYD文件,一个MYI文件,分别用于存放表结构信息,表数据信息,表索引信息。存储引擎是基于表的,创建一个表的时候,必须明确该表的存储引擎。(3)独享表空间的使用。
2025-05-12 10:18:16
330
原创 MYSQL字符集和字符序
字符是人类语言最小的表意符号,例如‘A’,‘B’等,给定一系列字符,并对每个字符赋予一个数值,用数值来代表对应的字符,这个数值就是字符的编码。俩如,假设给字符‘A’赋予整数65,给字符‘B’赋予整数66,则65就是字符‘A’的编码,66就是字符‘B’的编码。给定一系列字符并赋予对应的编码后,所有这些字符和编码对的集合就是字符集。字符序是指在同一字符集内字符之间的比较规则。只有确定字符序后,才能在一个字符集上定义什么是等价的字符,以及字符之间的大小关系。
2025-05-12 10:11:10
557
原创 MYSQL服务的运行流程
(7)MYSQL服务实例负责解析这些MYSQL命令或SQL语句,并选择一种执行计划运行这些MYSQL命令或SQL语句,然后将执行结果沿着通信链路返回给MYSQL客户机,这个过程称为MYSQL服务器向MYSQL客户机返回相应。(5)数据库用户访问MYSQL服务器的数据时,首先需要选择一台登陆主机,然后在该登陆主机上开启MYSQL客户机,输入正确的账户名,密码,建立一条MYSQL客户机与MYSQL服务器之间的"通信链路"(8)数据库用户关闭MYSQL客户机,通信链路被断开,该客户机对应的MYSQL会话结束。
2025-05-08 14:10:23
139
原创 Unix信号处理
当更改信号动作时,如果sa_handler指向一个信号捕捉函数(不是常数SIG_IGN或者SIG_DFL),则sa_mask字段说明了一个信号集,在调用信号捕捉函数之前,该信号集要加到进程的信号屏蔽集。比较特殊的是,exec函数将原先设置为要捕捉的信号都更改为默认动作,其他信号的状态则不变(一个进程原先要捕捉的信号,当其执行一个新程序后,就自然不能再被捕捉了,因为信号捕捉函数的地址很可能在所执行的新程序文件中已无意义)。当捕捉到一个信号时,进入信号捕捉函数,此时当前的信号被自动加到进程的信号屏蔽字中。
2024-10-18 11:29:41
859
原创 makefile语法注意点
(1)有两个变量,一个是SHELL,一个是MAKEFLAGS,这两个变量不管是否export,总是传递到下层Makefile中,特别是MAKEFLAGS,其中包含了make的参数信息,如果我们执行"总控Makefile"时有make参数或是在上层Makefile中定义了这个变量,那么MAKEFLAGS变量将会是这些参数,并会传递到下层Makefile中,这是一个系统级别的环境变量。make只管文件的依赖性,即,如果在我找了依赖关系以后,冒号后面的文件还是不在,那么停止make工作。
2024-09-12 16:54:26
449
原创 最长回文子串
遍历字符串,计算以当前字符为中心的最长回文字串。以此类推,记录最长字串长度和中心点。该题分两次计算,一次计算长度为单数的最长子串,一次计算长度为双数的最长子串。给你一个字符串 s,找到 s 中最长的回文子串。解释:“aba” 同样是符合题意的答案。输入:s = “babad”输入:s = “cbbd”
2022-11-13 15:11:11
276
原创 UNIX环境高级编程-第六章-系统数据文件和信息
它所做的一切是以成功状态终止。在wtmp文件的注销记录中,ut_name字段清除为0.在系统再启动时,以及更改系统事件和日期的前后,都在wtmp文件中追加写特殊的记录项。但是,对于较大的系统,顺序扫描口令文件很花费时间,我们需要能够以非ASCII文本格式存放这些文件,但仍向使用其他文件格式的应用程序提供接口,对于这些数据文件的可移植接口是本章的主题。UNIX系统的正常运作需要适用大量与系统有关的数据文件,例如,口令文件/etc/passwd和组文件/etc/group就是经常被多个程序频繁适用的两个文件。
2022-09-29 17:59:38
1178
原创 UNIX环境高级编程-第五章
只有两个函数可改变流的定向。第二,任何时候只要通过标准IO库要求从(a)一个不带缓冲的流,或者(b)一个行缓冲的流得到输入数据,那么就会冲洗所有行缓冲输出流。该对象通常是一个结构,它包含了标准IO库为管理该流需要的所有信息,包括用于实际IO的文件描述符,指向用于该流缓冲区的指针,缓冲区的长度,当前在缓冲区中的字符数以及出错标志等。在本章中,我们UNIX系统环境中说明标准标准IO库,正如前述,此标准库已移植到UNIX之外的很多系统中,但是为了说明该库实现的一些细节,我们将讨论其在UNIX系统上的典型实现。
2022-09-13 11:32:27
435
原创 Unix环境高级编程-第四章
否则,在默认情况下,返回的是符号链接所指向的实际文件的信息。但是可以在文件模式字(st_mode)中设置一个特殊标志,其含义是"当执行此文件时,将进程的有效用户ID设置为文件所有者的用户ID(st_uid)"。lstat函数类似于stat,但是当命名的文件是一个符号链接时,lstat返回该符号链接的有关信息,而不是由该符号链接引用的文件的信息。(3)保存的设置用户ID和保存的设置组ID在执行一个程序时包含了有效用户ID和有效组ID的副本,在8.11节中说明setuid函数时,将说明这两个保存值的作用。
2022-08-23 17:26:13
473
原创 UNIX环境高级编程-第二章
①编译时选项定义在②与文件或目录无关的运行时选项用sysconf函数来判断。③与文件或目录有关的运行时选项通过调用pathconf和fpathconf函数来判断。如果符号常量未定义,则必须使用sysconf,pathconf或fpathconf来判断是否支持该选项。这种情况下,这些函数的name参数前缀_POSIX必须替换位_SC或_PC。对于以_XOPEN为前缀的常量,在构成name参数时必须在其前放置_SC或_PC。
2022-08-04 20:02:00
385
原创 UNIX环境高级编程-第一章
口令文件中的登陆项由7个以冒号分隔的字段组成,依次是:登录名,加密口令,数字用户ID(205),数字组ID(105),注释字段,起始目录(/home/sar)以及shell程序(/bin/ksh)。与资源相关的非致命性出错包括:EAGAIN,ENFILE,ENOBUFS,ENOLCK,ENOSPC,EWOULDBLOCK,有时ENOMEM也是非致命性出错。按惯例,每当运行一个新程序时,所有的shell都为其打开3个文件描述符,即标准输入,标准输出以及标准错误。通常每个用户有一个唯一的用户ID。
2022-08-02 18:46:29
641
原创 leetcode-相同的树
题目:给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:输入:p = [1,2,3], q = [1,2,3]输出:true示例 2:输入:p = [1,2], q = [1,null,2]输出:false示例 3:输入:p = [1,2,1], q = [1,1,2]输出:false代码1:利用队列解决。也就是广度优先搜索/** * Definition for a bi
2022-04-29 09:30:59
171
原创 C++编程-两数之和IV-leetcode653
题目:给定一个二叉搜索树 root 和一个目标结果 k,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。示例 1:输入: root = [5,3,6,2,4,null,7], k = 9输出: true示例 2:输入: root = [5,3,6,2,4,null,7], k = 28输出: false代码1:思路:建立两个链表,一个升序,一个降序,相当于从一个数组两端相向而行,不断靠近,直到某一个结果符合题意。/** * Definition for a
2022-04-27 16:54:28
282
原创 C++编程-验证二叉搜索树
题目:给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。有效 二叉搜索树定义如下:节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入:root = [2,1,3]输出:true示例 2:输入:root = [5,1,4,null,null,3,6]输出:false解释:根节点的值是 5 ,但是右子节点的值是 4 。代码:/** * Definition for a bi
2022-04-27 16:08:36
1706
原创 C++编程-二叉搜索树的插入
题目:给定二叉搜索树(BST)的根节点 root 和要插入树中的值 value ,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据 保证 ,新值和原始二叉搜索树中的任意节点值都不同。注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。 你可以返回 任意有效的结果 。示例 1:输入:root = [4,2,7,1,3], val = 5输出:[4,2,7,1,3,5]解释:另一个满足题目要求可以通过的树是:示例 2:输入:root = [40,20,60,10
2022-04-27 14:21:51
351
原创 C++编程-二叉搜索树中的搜索-leetcode700
题目:给定二叉搜索树(BST)的根节点 root 和一个整数值 val。你需要在 BST 中找到节点值等于 val 的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 null 。示例 1:输入:root = [4,2,7,1,3], val = 2输出:[2,1,3]示例 2:输入:root = [4,2,7,1,3], val = 5输出:[]代码1:/** * Definition for a binary tree node. * struct TreeNode
2022-04-27 14:08:00
931
原创 C++编程-路径总和-leetcode
题目:给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。叶子节点 是指没有子节点的节点。示例 1:输入:root = [5,4,8,11,null,13,4,7,2,null,null,null,1], targetSum = 22输出:true解释:等于目标和的根节点到叶节点路径如上图所示。示例 2:输入
2022-04-27 13:39:30
420
原创 C++编程-翻转二叉树
题目:给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。示例 1:输入:root = [4,2,7,1,3,6,9]输出:[4,7,2,9,6,3,1]示例 2:输入:root = [2,1,3]输出:[2,3,1]示例 3:输入:root = []输出:[]代码1:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *lef
2022-04-27 11:50:42
581
原创 C++编程-赎金信
题目:给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。如果可以,返回 true ;否则返回 false 。magazine 中的每个字符只能在 ransomNote 中使用一次。示例 1:输入:ransomNote = “a”, magazine = “b”输出:false示例 2:输入:ransomNote = “aa”, magazine = “ab”输出:false示例 3:输入:ransomN
2022-04-26 17:04:08
574
原创 C++编程-杨辉三角
题目:给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。示例 1:输入: numRows = 5输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]示例 2:输入: numRows = 1输出: [[1]]代码:class Solution {public: vector<vector<int>> generate(int numRows
2022-04-26 14:50:45
1696
原创 C++编程-对称二叉树
题目:给你一个二叉树的根节点 root , 检查它是否轴对称。示例 1:输入:root = [1,2,2,3,4,4,3]输出:true示例 2:输入:root = [1,2,2,null,3,null,3]输出:false代码:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; *
2022-04-26 14:25:28
1642
原创 C++编程-买卖股票的最佳时机
题目:给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。示例 1:输入:[7,1,5,3,6,4]输出:5解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意利润不能是
2022-04-26 10:59:12
968
原创 C++编程-数据结构-二叉树的层序遍历
题目:给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。示例 1:输入:root = [3,9,20,null,null,15,7]输出:[[3],[9,20],[15,7]]示例 2:输入:root = [1]输出:[[1]]示例 3:输入:root = []输出:[]提示:树中节点数目在范围 [0, 2000] 内-1000 <= Node.val <= 1000代码:/** * Definition for a
2022-04-25 16:51:08
193
原创 C++编程-最大子数组和-数据结构
题目:给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组 是数组中的一个连续部分。示例 1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。示例 2:输入:nums = [1]输出:1示例 3:输入:nums = [5,4,-1,7,8]输出:23提示:1 <= nums.length <= 105-104 <=
2022-04-25 14:50:52
1300
原创 C++编程-四数之和-组合求解
题目:给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] (若两个四元组元素一一对应,则认为两个四元组重复):0 <= a, b, c, d < na、b、c 和 d 互不相同nums[a] + nums[b] + nums[c] + nums[d] == target你可以按 任意顺序 返回答案 。示例 1:输入:nums = [1,0
2022-04-25 12:51:12
344
原创 C++编程-电话号码的字母组合
题目:给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例 1:输入:digits = “23”输出:[“ad”,“ae”,“af”,“bd”,“be”,“bf”,“cd”,“ce”,“cf”]示例 2:输入:digits = “”输出:[]示例 3:输入:digits = “2”输出:[“a”,“b”,“c”]提示:0 <= digits.length <
2022-04-25 12:29:44
1006
原创 C++编程-最接近的三数之和
题目:给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数,使它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在恰好一个解。示例 1:输入:nums = [-1,2,1,-4], target = 1输出:2解释:与 target 最接近的和是 2 (-1 + 2 + 1 = 2) 。示例 2:输入:nums = [0,0,0], target = 1输出:0提示:3 <= nums.length <
2022-04-25 11:19:46
919
原创 C++编程-leetcode-三数之和-组合数求解
题目:给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]示例 2:输入:nums = []输出:[]示例 3:输入:nums = [0]输出:[]提示:0 <= nums.length <= 3000-105
2022-04-25 10:55:57
1150
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人