
数据库#mysql
文章平均质量分 78
csdn_life18
这个作者很懒,什么都没留下…
展开
-
MySQL数据库面试题(2020最新版)
结构化查询语言(Structured Query Language)简称SQL,是一种数据库查询语言。作用:用于存取数据、查询、更新和管理关系数据库系统。MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。转载 2024-07-07 10:37:31 · 129 阅读 · 0 评论 -
缓存与数据库一致性问题深度剖析
本篇文章是我之前系列文章中的一篇,主要讨论了我们在平时的开发过程中,各大系统中都要用到的缓存数据的问题,进一步延伸到数据库和缓存的双写一致性问题,并且给出了所有方案的实现代码方便大家参考。转载 2024-06-22 11:13:48 · 86 阅读 · 0 评论 -
MySQL分区是全局索引还是本地索引
索引。转载 2024-05-22 18:18:16 · 754 阅读 · 0 评论 -
MySQL分区表:万字详解与实践指南
因此,在设计分区表时,应该谨慎考虑NULL值的处理方式,并根据需要采取相应的预防措施。此外,如果确实需要存储NULL值,并且不希望MySQL将其视为0,可以考虑使用其他特殊值(如某个不可能在实际业务中出现的标识值)来代替NULL,或者在设计分区策略时明确考虑NULL值的处理逻辑。table_name是你要修改的表名,partition_name是要拆分的分区名,new_partition1和new_partition2是新分区的名称,而value1和value2是定义新分区键值范围的值。转载 2024-05-22 18:06:44 · 410 阅读 · 0 评论 -
mysql优化,and和where的区别
left join表示以左边的表为基准,即使左边表的某条记录不满足连接条件,也会将它保留在结果集中,只是右边表的部分会用NULL填充。and是用来在连接条件中添加额外的过滤条件的,它会影响连接操作的结果,但不会改变left join或right join的基准表。表连接是一种将两个或多个表的数据组合在一起的方法,通常需要指定一个连接条件,即哪些字段或列是相等或匹配的。表连接是一种将两个或多个表的数据组合在一起的方法,通常需要指定一个连接条件,即哪些字段或列是相等或匹配的。原创 2024-01-25 19:54:52 · 1369 阅读 · 0 评论 -
mysql调优-Join多种连接方式
如果有索引,会选取第二种方式进行join,但如果join列没有索引,就会采用Block Nested-Loop。在查询时,驱动表(r)会根据关联字段的索引进行查找,当在索引上找到符合的值,再回表进行查询,也就是只有当。如果非驱动表(s)的关联键是主键的话,性能会非常高,如果不是主键,要进行多次回表查询,先关联索引,然后根。中,然后批量与匹配表进行匹配,将第一种多次比较合并为一次,降低了非驱动表(s)的访问频。r为驱动表,s为匹配表,可以看到从r中分别取出每一个记录去匹配s表的列,然。原创 2024-01-25 13:42:32 · 437 阅读 · 0 评论 -
MySQL 参数- Innodb_File_Per_Table(独立表空间)
如果启用了innodb_file_per_talbe参数,需要注意的是每张表的表空间内存放的只是数据、索引和插入缓冲Bitmap页,其他数据如:回滚信息、插入缓冲索引页、系统事物信息、二次写缓冲(Double write buffer)等还是放在原来的共享表空间内。**缺点:**所有的数据和索引存放到一个文件中,虽然可以把一个大文件分成多个小文件,但是多个表及索引在表空间中混合存储,这样对于一个表做了大量删除操作后表空间中将会有大量的空隙,特别是对于统计分析,日值系统这类应用最不适合用共享表空间。转载 2024-01-12 15:24:55 · 1662 阅读 · 0 评论 -
MySQL数据表中的auto_increment自增值属性及修改
环境说明: MySQL 5.7 、MySQL 8.0长期以来,我的博客中连续文章的主键编号一直都不是连续的,让我这个强迫症晚期患看着很不舒服。在忍受了这么长时间以后,趁着给博客换的时机,我把所有的文章编号全部改成了连续的,可算是舒服多了。把改完主键编号的文章数据导入新数据库之后,就产生了一个新问题:现在新数据表的主键自增值还是旧数据表的主键自增值。比如说博客数据库的文章表中有80条数据,下次新创建文章的编号是以旧数据库的自增值202开始递增,生成的新文章编号是203,而不是81。转载 2023-12-23 13:03:19 · 8143 阅读 · 0 评论 -
MySQL5.7 最详细下载安装配置教程
在安装MySQL的时候会遇到很多问题,博客上有很多解决问题的办法,在这里我附上一些链接,遇到问题的朋友们可以阅读参考哈~本文主要针对于刚接触数据库的小白,来安装MySQL数据库。目前官网上的MySQL版本有5.5,5.6,5.7和8,在开发的时候我们一般要选择比最新版低1到2个版本的,因此我选择了5.7作为要安装的数据库算上我写博客的时间,安装这个数据库差不多花掉我4个小时的时间,原因是在安装途中我遇到很多问题,在此总结一下,并附上解决链接:1.找不到my.ini文件2.3.4.5.转载 2023-12-21 14:01:47 · 2536 阅读 · 0 评论 -
mysql InnoDB中的页合并与分裂
MySQL/InnoDB不断地进行这些操作,你可能只能了解到很少的信息。但他们可能给你造成伤害,特别是比起用SSD,你还在用传统的机械存储(spindle storage)的时候(顺便提一下SSD会有另外的问题)。坏消息就是我们用什么参数或者魔法去改变服务端。但好消息是我们可以在设计的时候做很多(有帮助)的事。恰当地使用主键和设计辅助索引,并且记住不要滥用(索引)。如果你已经预计到会有很多插入/删除/更新操作,规划一个合适的时间窗来管理(整理)表。转载 2023-12-21 10:38:12 · 431 阅读 · 0 评论 -
MYSQL—自增主键相关原理
由于自增主键可以让主键索引尽量地保持递增顺序插入,避免了页分裂,因此索引更紧凑。之前我见过有的业务设计依赖于自增主键的连续性,也就是说,这个设计假设自增主键是连续的。但实际上,这样的假设是错的,因为自增主键不能保证连续递增。转载 2023-12-21 10:22:32 · 297 阅读 · 0 评论 -
Mysql高级 局部性原理和磁盘预读
局部性原理是指无论程序指令还是数据都趋于聚集在一个较小的连续区域中。转载 2023-12-20 15:11:06 · 182 阅读 · 0 评论 -
MySQL数据库慢的原因
例如,如果需要查询一个包含 100 万条数据的表,而表中的数据分散在 1000 个数据页中,如果 IO 读写速度为 100 MB/s,则查询该表需要 1 秒。如果需要查询的数据分散在多个数据页中,就会导致 MySQL 需要多次读取磁盘数据页,从而导致数据查询速度变慢。MySQL 数据库支持多线程并发访问,如果并发请求过多,就会导致 MySQL 服务器的 CPU 和内存资源被大量消耗,从而导致数据查询速度变慢。如果并发请求过多,就会导致 MySQL 服务器的线程池资源被大量消耗,从而导致数据查询速度变慢。原创 2023-12-19 20:36:52 · 1183 阅读 · 0 评论 -
Oracle的示例数据库 MySQL版本
【代码】Oracle的示例数据库 MySQL版本。原创 2023-12-08 13:25:10 · 421 阅读 · 0 评论 -
Mysql重要内容(视图以及物化视图)
这里我想说的是,程序本身不需要关心表的结构,只需要按照视图定义来取数据或更新数据。说起视图呢,就是说它相当于一个虚拟的表,你看不到它,但是你可以根据它来更新和操作表,视图中的with check option就是针对于可更新的视图的通过这一期文章的学习,我也算是掌握了很多吧,首先是视图上的学习,然后就是物化视图,但是Mysql数据库本身不支持物化视图,因此对于物化视图就显得无能为力,用户只能在应用程序端做一些控制。我是明怀,今天不知道怎么回事,感觉累累(蕾蕾)的,嘿嘿,我们下期见啦!转载 2023-11-29 19:48:15 · 527 阅读 · 0 评论 -
mysql分组排序取第一条记录
mysql分组排序取第一条记录转载 2022-09-06 20:51:54 · 2804 阅读 · 0 评论 -
关于使用多表联查代替LEFT JOIN 的使用方案
前言还记得,我们在刚刚开始学习MYSQL的时候,我们的老师或多或少都对我们说。MYSQL尽量不要去使用多表联查。但是,理由呢?我们学习的过程之中,不应该仅仅只是去听 ,更应该自己思考。我认为任何事情既然其存在必有其存在的含义。因此,我们不应该连考虑都不进行考虑就进行对其的否定。我们也应该勇敢的进行适当的尝试。当然了,这并不是对自己的东西完全的肯定,对他人的完全否定。这下面的内容,也仅仅只是一个使用方案罢了问题假设我们有两张表,一张记录商品信息,另一张商品类型,二者的关系是根据商转载 2021-04-19 15:27:09 · 1208 阅读 · 0 评论 -
数据库备份
1.Win + R :打开运行界面,输入:taskschd.msc 打开任务计划。2.点击创建基本任务。3.填写信息。4.选择每天执行5.指定每天执行的时间6.选择启动程序7.选择数据库备份脚本8.完成备份数据库.bat–PostgreSQL:: ------------------- 备份脚本 --------------------:: 如需隐藏执行窗口,放开以下注释::@echo off ::if "%1" == "h" goto begin::原创 2021-03-08 11:47:36 · 1001 阅读 · 0 评论 -
数据库灾备解决方案
文章目录行业背景解决方案优势核心产品灾备设计及技术指标DBS冷备热备份同城容灾同城容灾——复制加高可用同城容灾——A-S同城容灾——A-A更多信息行业背景数据是企业重要的生产资料,关键数据的丢失可能会给企业致命一击,因为数据是计算机系统存在的原因和基础。数据往往是不可再生的,一旦发生数据丢失,企业就会陷入困境:客户资料、技术文件、财务账目等客户、交易、生产数据可能被破坏得面目全非。 概括起来,数据丢失分三个层次:逻辑错误:包括软件bug、病毒攻击、数据块被破坏等。物理损坏:包括服务器、磁盘损坏等。转载 2021-01-24 11:52:38 · 3262 阅读 · 0 评论 -
为什么mysql的字段尽量设置为 not null
NULL为什么多人用?1、NULL是创建数据表时默认的,初级或不知情的或怕麻烦的程序员不会注意这点。2、很多人员都以为not null 需要更多空间,其实相反。3、重点是很多程序员觉得NULL在开发不用去判断插入数据,写sql语句的时候更方便快捷。那么将字段设置成允许null有什么坏处呢?1:查询语句中包含允许null字段的那些查询,mysql难以优化,而且它会使索性、索引统计和值更加复杂。2:可空列需要更多的存储空间。官方文档中写到:“NULL columns require additio转载 2020-08-09 18:24:38 · 915 阅读 · 0 评论 -
覆盖索引与SQL优化
文章目录什么叫做覆盖索引1.无WHERE条件的查询优化:2、二次检索优化3、分页查询优化什么叫做覆盖索引在了解覆盖索引之前我们先大概了解一下什么是聚集索引(主键索引)和辅助索引(二级索引)聚集索引(主键索引):聚集索引就是按照每张表的主键构造一颗B+树,同时叶子节点中存放的即为整张表的记录数据。聚集索引的叶子节点称为数据页,聚集索引的这个特性决定了索引组织表中的数据也是索引的一部分。辅助索引(二级索引):非主键索引,叶子节点=键值+书签。Innodb存储引擎的书签就是相应行数据的主键索引值。转载 2020-08-08 19:37:40 · 653 阅读 · 0 评论 -
BTree和B+Tree详解
B+树索引是B+树在数据库中的一种实现,是最常见也是数据库中使用最为频繁的一种索引。B+树中的B代表平衡(balance),而不是二叉(binary),因为B+树是从最早的平衡二叉树演化而来的。在讲B+树之前必须先了解二叉查找树、平衡二叉树(AVLTree)和平衡多路查找树(B-Tree),B+树即由这些树逐步优化而来。二叉查找树二叉树具有以下性质:左子树的键值小于根的键值,右子树的键值大于根的键值。如下图所示就是一棵二叉查找树,对该二叉树的节点进行查找发现深度为1的节点的查找次数为1,深...转载 2020-08-07 17:10:56 · 184 阅读 · 0 评论 -
innodb引擎的4大特性
文章标题1.插入缓冲(insert buffer)2.二次写(double write)3.自适应哈希索引(ahi)4.预读(read ahead)4.1 线性预读(linear read-ahead)4.2 随机预读(randomread-ahead)1.插入缓冲(insert buffer)插入缓冲(Insert Buffer/Change Buffer):提升插入性能,change buffering是insert buffer的加强,insert buffer只针对insert有效,change转载 2020-08-07 10:37:16 · 2147 阅读 · 0 评论