数据库
TimeFriends
这里没有天赋异禀,也没有天资聪颖,只有每天的陪伴。万物瞬息万变,但唯一不变的只有变化。抓住变化的根本,以时间为伍,以坚持为伴,做时间的朋友。
展开
-
MySQL之my.cnf配置文件
首先,我们可以看到这个文件里面有mysqld和mysql_safe两类参数,我们知道mysqld和mysql_safe都可以启动mysql服务,那么mysqld和mysql_safe这两个类之间有什么不同呢?此时,所有的进程都被关闭掉了,综合上述操作,我们可以发现,当mysqld_safe进程存在时,我们无法直接杀掉mysqld进程,当我们杀掉mysqld_safe进程的时候,此时才可以杀掉mysqld进程,这便是mysqld_safe的守护进程作用,它可以防止mysqld进程被意外终止。...原创 2022-08-29 11:00:38 · 25788 阅读 · 98 评论 -
一张图看懂 SQL 的各种 join 用法!
具体分解如下:2.LEFT JOIN(左连接)3.RIGHT JOIN(右连接)4.OUTER JOIN(外连接)5.LEFT JOIN EXCLUDING INNER JOIN(左连接-内连接)6.RIGHT JOIN EXCLUDING INNER JOIN(右连接-内连接)7.OUTER JOIN EXCLUDING INNER JOIN(外连接-内连接)关于join,你学废了么?真诚地邀请您加入我们的大家庭.在这里不仅有技术知识分享,还有博主们之间的互帮互助不定期发红包原创 2022-08-05 09:34:04 · 7984 阅读 · 37 评论 -
MySQL日志介绍
0或OFF表示禁用,1或ON表示启用。设置binlog的最大存储上线,当日志达到该日志的上限时,mysql会重新创建一个日志开始记录,不过偶尔也会超出该设置的binlog,一般都是因为即将达到上限时候,产生了一个比较大的事物,为了保证事物的安全,mysql不会将同一个事物分开记录到两个binlog。主要记录MySQL数据库的变化,二进制日志以一种有效的格式,并且是事务安全的方式包含更新日志中可用的所有信息,二进制日志包含了所有更新了数据或者已经潜在更新了数据的语句,语句以“事件”的形式保存,描述数据更改。.原创 2022-07-25 09:33:29 · 1121 阅读 · 69 评论 -
提高分层 SQL 结构的性能
我和我的团队最近在一个拥有数百万页面的足球迷网站上工作。该网站的想法是成为足球支持者的权威资源,尤其是在投注方面。数据库和[应用程序架构]不是特别复杂。这是因为调度程序负责定期重新计算复杂数据并将其存储在表中,这样查询就不必涉及[SQL 聚合]。因此,真正的挑战在于[非功能性需求],例如性能和页面加载时间。体育行业有多个数据提供者,每个提供者都为其客户提供不同的数据集。具体来说,足球行业有四种类型的数据:我们的网站涉及所有这些类型的数据,特别关注出于 SEO 原因的历史数据和支持投注的实时数据。由于我签署了原创 2022-07-09 21:02:19 · 1756 阅读 · 70 评论 -
缓存在高并发场景下的常见问题
当数据时效性要求很高时,需要保证缓存中的数据与数据库中的保持一致,而且需要保证缓存节点和副本中的数据也保持一致,不能出现差异现象。这就比较依赖缓存的过期和更新策略。一般会在数据发生更改的时,主动更新缓存中的数据或者移除对应的缓存。缓存过期后将尝试从后端数据库获取数据,这是一个看似合理的流程。但是,在高并发场景下,有可能多个请求并发的去从数据库获取数据,对后端数据库造成极大的冲击,甚至导致 “雪崩”现象。此外,当某个缓存key在被更新时,同时也可能被大量请求在获取,这也会导致一致性的问题。那如何避免类似问题呢原创 2022-07-06 13:59:47 · 392 阅读 · 61 评论 -
面试中有哪些经典的数据库问题?
一、为什么用自增列作为主键1、如果我们定义了主键(PRIMARY KEY),那么InnoDB会选择主键作为聚集索引、如果没有显式定义主键,则InnoDB会选择第一个不包含有NULL值的唯一索引作为主键索引、如果也没有这样的唯一索引,则InnoDB会选择内置6字节长的ROWID作为隐含的聚集索引(ROWID随着行记录的写入而主键递增,这个ROWID不像ORACLE的ROWID那样可引用,是隐含的)。2、数据记录本身被存于主索引(一颗B+Tree)的叶子节点上。这就要求同一个叶子节点内(大小为一个内存页或磁盘页原创 2022-07-04 17:12:26 · 666 阅读 · 90 评论 -
MySQL日志
mysql日志原创 2022-06-09 17:13:08 · 427 阅读 · 98 评论 -
MySQL的事务
MySQL的锁机制锁是计算机协调多个进程或线程并发访问某一资源的机制在数据库中,除传统资源(如 cpu,ram,i/o)的争用以外,数据也是一种供许多用户共享的资源,如何保证数据并发访问的一致性有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素,从这个角度说,锁对数据库而言尤其重要,也更加复杂....原创 2022-06-07 11:16:00 · 873 阅读 · 95 评论 -
MySQL优化
mysql优化原创 2022-06-02 09:57:20 · 1489 阅读 · 113 评论 -
MYSQL的索引和存储引擎
MYSQL的索引和存储引擎介绍索引是通过某种算法,构建出一个数据模型,用于快速查出在某个列中有一特定值的行,不使用索引,MYSQL必须从第一行记录开始读完整个表,直到找出相关的行,表越大,查询数据所花费的时间就越多,如果表中查询的列有一个索引,MYSQL能够快速到达一个位置去搜索数据文件,而不必查看所有数据,那么将会节省很大一部分时间.索引类似一本书的目录,比如要查找student这个单词,可以先找到s开头的页然后向后查找,这个就类似索引.索引的分类索引是存储引擎用来快速查找记录的一种数据结构.原创 2022-05-23 09:49:52 · 1859 阅读 · 126 评论 -
MySQL触发器
MySQL触发器触发器是一种特殊的存储过程,触发器和存储过程一样是一个能完成特定功能、存储在数据库服务器上的SQL片段,但是触发器无需调用,当对数据库表中的数据执行DML操作时自动触发这个SQL片段的执行,无需手动调用.在MySQL中,只要执行insert,update,delete操作是才能触发触发器的执行触发器的这种特性可以协助应用在数据库端确保数据的完整性,日志记录,数据校验等操作.使用别名OLD和NEW来引用触发器中发生变化的记录内容,这与其他的数据库是相似的,现在触发器还值支持行级触发,不原创 2022-05-15 10:35:14 · 9308 阅读 · 114 评论 -
MYSQL的存储过程
mysql的存储过程原创 2022-05-12 18:31:08 · 1648 阅读 · 70 评论 -
MYSQL的视图
mysql的视图原创 2022-05-06 21:20:04 · 1313 阅读 · 8 评论 -
MYSQL的函数
mysql函数原创 2022-05-04 15:47:21 · 3133 阅读 · 58 评论 -
子查询关键字-ALL、ANY、SOME、IN、EXISTS
子查询关键字-ALL、ANY、SOME、IN、EXISTSALLselect from where c > all(查询语句)等价于select from where c > result1 and c > result2 and c > result3特点: 1:all与子查询返回的所有值比较为true 则返回true 2:ALL可以与= > < >= <= <>结合使用 3:all表示指定列中的值必须要大于子查询集中的每一个值原创 2022-03-23 08:46:10 · 3605 阅读 · 213 评论 -
聚合查询易忽略的点
聚合查询易忽略的点聚合查询的函数 count() 统计指定列不为null的记录行数 sum() 指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0 max()指定列的最大值,如果指定列是字符创类型,那么使用字符串排序运算 min()指定列的最小值,如果指定列是字符创类型,那么使用字符串排序运算 avg() 指定列的平均值,如果指定列不是数值类型,那么计算结果为0聚合查询对null值的处理 count()某个字段时,不统计含null值的记录个数 sum()和avg() 对n原创 2022-01-22 14:07:56 · 1347 阅读 · 7 评论 -
MYSQL的4种运算符
MYSQL的4种运算符MYSQL支持4中运算符 算术运算符,比较运算符,逻辑运算符,位运算符算数运算符+ 加法运算- 减法运算* 乘法运算/ 或 DIV 除法运算 返回商% 或 MOD 求余运算 返回余数原创 2022-01-14 22:33:39 · 1835 阅读 · 2 评论 -
mysql约束
mysql约束-自动增长约束(auto_increment)语法:字段名 数据类型 auto_increment特点: 默认情况下,auto_increment的初始值是1,每新增一条记录,字段值自动加1 一个表只能有一个字段auto_increment约束,且该字段必须有唯一索引,以避免序号重复(即主键或者主键的一部分) auto_increment约束的字段必须具备not null 属性 auto_increment约束的字段只能是整数类型(tinyint,smallint,int,原创 2022-01-13 22:50:07 · 1715 阅读 · 1 评论 -
MYSQL约束
MYSQL约束约束:constraint 约束实际上就是表中数据的限制条件作用:表在设计的时候加入了约束的目的就是为了保证表中记录的完整性和有效性,比如用户表有些列的值(手机号) 不能为空,有些列的值(身份证号)不能重复.约束的分类 主键约束(primary key) pk 唯一约束(unique) 自动增长约束(auto_increment) 非空约束(not null) 默认约束(default) 零填充约束(zerofill) 外键约束(foreign key) fk原创 2022-01-10 22:42:21 · 2170 阅读 · 2 评论 -
mysql数据库之DDL
mysql数据库的DDL基本操作(数据库定义语言)DDL(Data Defintion Language)---数据库定义语言 show databases create database use database drop database数据库的类型大体可以分为三类:数值类型,日期和时间类型,字符串类型 注意:date 是年月日 dateTime 是年月日 时分秒查看指定表的创建语句show create table 表名;查看表结构desc 表名删除表drop原创 2022-01-08 21:35:49 · 1925 阅读 · 0 评论 -
mysql特点
mysql特点 1:mysql数据库是用c和c++语言编写的,以保证源码的可移植性 2:支持多个操作系统例如:windows,linux,mac os 等等 3:支持多线程,可以充分的利用cpu资源 4:为多种编程语言提供API,包括C语言,Java,PHP,Python语言等 5:Mysql优化了sql算法,有效的提高了查询的速度 6:mysql开源代码且无版本权制约,自主性强,使用成本低 7:mysql历史悠久,社区及用户非常活跃,遇到问题,可以很快获得帮助...原创 2022-01-03 21:33:55 · 2867 阅读 · 2 评论 -
mysql基础知识——211221
计算机语言1 计算机语言分类机器语言 二进制汇编语言 汇编符号高级语言 c语言 java python sql phpsql语言基础sql的概述sql全称:Structured Query Language 结构化查询语言,用于访问和处理数据库的标准的计算机语言sql的特点 具有综合统一性,不同数据库的支持的sql稍有不同 非过程化语言 语言简捷,用户容易接受 以一种语法结构提供两种使用方式语法的特点 sql对关键字的大小写不敏感 s原创 2021-12-21 23:19:52 · 1880 阅读 · 1 评论 -
你与写的一手好sql的大佬可能就差这一道题!
你与写的一手好sql的大佬可能就差这一道题!1:建表语句1.1:课程表SET FOREIGN_KEY_CHECKS=0;-- ------------------------------ Table structure for `c`-- ----------------------------DROP TABLE IF EXISTS `c`;CREATE TABLE `c` ( `CNO` int(11) NOT NULL DEFAULT '0' COMMENT '课程号',原创 2021-01-03 15:45:25 · 1600 阅读 · 0 评论 -
Mysql8.0新特性
Mysql8.0新特性服务器功能方面:1:所有元数据使用InnoDB引擎储存,无frm文件2:系统表采用InnoDB存储并采用独立表空间3:支持定义资源管理组(目前仅支持CPU资源)4:支持不可见索引和降序索引,支持直方图优化5:支持窗口函数6:支持在线修改全局参数持久化用户及安全方面:1:默认使用caching_sha2_password认证插件(同一个密码加密出来的密文密码不一样)2:新增支持定义角色3:新增密码历史记录功能,限制重复使用密码InnoDB功能方面:1:InnoD原创 2020-08-02 15:35:08 · 1461 阅读 · 1 评论 -
mysql函数,concat,日期处理,分组
group byuser表中有两个a,一个b,一个c用户(name),年龄分别为5,6,7select name,count(*) from usr group by name; name count(*) a 2 b 1 c 1group by 字段 with rollup (可以根据某字段排序然后计算其他字段的和,平均数等)select name,count(age) as age from usr group by name原创 2020-06-01 18:31:05 · 2505 阅读 · 0 评论 -
映射文件中update语句自动生成的神奇语句
映射文件中update语句自动生成的神奇语句每次写这样的(图1)update语句的时候都会感觉很烦,写起来觉得没有营养,那么好为了满足大家的需求小编整理了一条神奇的语句,打开你的sqlyong或者其他的图形化界面工具.输入神奇的语句就能有意想不到的结果.图1:语句:select contant( contant( contant( contant(column_nam...原创 2019-09-21 11:51:16 · 1552 阅读 · 0 评论 -
数据库优化之联合索引
联合索引是什么?为什么需要注意联合索引中的顺序?Mysql可以使用多个字段同时建立一个索引,叫做联合索引,在联合索引中,如果想要命中索引,需要按照建立索引时的字段顺序使用,否则无法命中.具体原因:Mysql使用索引时需要索引有序,假设现在建立了name,age,school,的联合索引,那么索引的排序为:先按照name排序,如果name相同在按照age排序,如果age相同在按照school排...原创 2019-08-11 09:10:29 · 1531 阅读 · 1 评论 -
深入理解Token
深入理解TokenToken解决的问题1.Token完全由应用管理,所以它可以避开同源策略.2.Token可以避免CSRF攻击(跨域请求仿造).3.Token可以是无状态的,可以在多个服务间共享.Token是在服务端产生的,如果前端使用用户名/密码向服务端请求认证,服务端认证成功,那么服务端会反返回Token给前端,前端可以在每次请求的时候带上Token证明自己的合法地位,如果这个Tok...原创 2019-08-01 09:22:08 · 5140 阅读 · 3 评论 -
数据库关键字Union和Union All的区别
Union和Union All的区别SQL 的Union操作符合并两个或者多个select语句的结果.请注意:Union内部的每个select语句必须拥有相同数量的列,且列必须有相似的数据类型,同时select语句中列的顺序必须相同.table1建表语句:CREATE TABLE `table1`(`id` INT(2) AUTO_INCREMENT PRIMARY KEY,`na...原创 2019-07-27 00:13:30 · 1558 阅读 · 0 评论 -
Hash索引和B+树索引有什么区别或者说优劣势
Hash索引和B+树索引有什么区别或者说优劣势?首先要知道Hash索引和B+树索引的底层实现原理:hash索引底层就是hash表,进行查询时,调用一次hash函数就可以获取到相应的键值,之后进行回表查询获得实际数据.B+树底层实现原理是多路平衡查找树,对于每一次的查询都是从根节点出发,查询到叶子节点方可以获得所查键值,然后查询判断是否需要回表查询.区别:hash索引1:hash索引进行...原创 2019-07-31 07:23:54 · 6704 阅读 · 3 评论 -
Mysql索引优化及面试题
Mysql索引优化一:索引介绍索引是关系型数据库中给数据库表中一列或者多列的值排序后的储存结构,SQL的主流索引结构有B+树以及Hash结构,聚集索引以及非聚集索引用的是B+树索引.MySql索引类型有:唯一索引,主键(聚集)索引,非聚集索引,全文索引.1.1:聚集索引聚集(clustered)索引,也叫做聚簇索引.定义:数据行的物理顺序与列值(一般是主键的那一列)的逻辑顺序相同,一个...原创 2019-07-19 08:45:28 · 19179 阅读 · 8 评论 -
Mysql中的drop、truncate和delete的区别
A:结构层面delete是逐行删除,并且同时将该行的删除操作作为事务,在记录日志中保存以便进行回滚操作.可以与where一起使用删除某一条记录,不加where则删除所有记录.truncate则一次性的从表中删除所有的数据并不把单独的删除操作记录日志保存,删除行是不能恢复的,并且在删除的过程中不会激活与表有关的删除触发器,它的执行速度快.直接truncate+table不用加where.dro...原创 2019-07-18 08:25:30 · 1169 阅读 · 1 评论