![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库
文章平均质量分 62
大叶子不小
这个作者很懒,什么都没留下…
展开
-
How to choose a table that have the table name : “group“?
SELECT * FROM ` GROUP `原创 2022-12-07 15:18:12 · 98 阅读 · 0 评论 -
mysql column key mul_请问 mysql key这列里的MUL是什么意思,怎么加呢
http://dev.mysql.com/doc/refman/5.1/en/show-columns.htmlThe Key field indicates whether the column is indexed:If Key is empty, the column either is not indexed or is indexed only as a secondary column in a multiple-column, non-unique index.If Key is原创 2021-04-13 21:43:33 · 1794 阅读 · 0 评论 -
MySQL中Cardinality介绍
参见:https://www.pianshen.com/article/26011430107/1) 什么是Cardinality不是所有的查询条件出现的列都需要添加索引。对于什么时候添加B+树索引。一般的经验是,在访问表中很少一部分时使用B+树索引才有意义。对于性别字段、地区字段、类型字段,他们可取值范围很小,称为低选择性。如SELECT * FROM student WHERE sex='M'按性别进行查询时,可取值一般只有M、F。因此SQL语句得到的结果可能是该表50%...原创 2021-04-08 12:09:40 · 1198 阅读 · 0 评论 -
ERROR 2003 (HY000): Can‘t connect to MySQL server
一.问题的提出/usr/local/webserver/mysql/bin/mysql -u root -h 172.29.141.112-p -S /tmp/mysql.sockEnter password:ERROR 2003 (HY000): Can't connect to MySQL server on '172.29.141.112' (113)二.问题的分析出现上述问题,可能有以下几种可能1. my.cnf 配置文件中 skip-networking 被...原创 2021-03-30 18:24:19 · 4218 阅读 · 0 评论 -
mysql 输出表的详细信息详解 show table status like ‘表名‘
在mysql中 查看表的详细信息, 可以使用use 数据库;show table status like '表名称';在dos窗口中 使用 \G可以格式化输出即:show table status like ‘表名称’ \G ;1.Name表名称2.Engine:表的存储引擎3.Version:版本4.Row_format行格式。对于MyISAM引擎,这可能是Dynamic,Fixed或Compressed。动态行的行长度可变,例如Varch.原创 2021-03-26 12:53:02 · 909 阅读 · 0 评论 -
数据库分区、分表、分库、分片
一、分区的概念数据分区是一种物理数据库的设计技术,它的目的是为了在特定的SQL操作中减少数据读写的总量以缩减响应时间。分区并不是生成新的数据表,而是将表的数据均衡分摊到不同的硬盘,系统或是不同服务器存储介子中,实际上还是一张表。另外,分区可以做到将表的数据均衡到不同的地方,提高数据检索的效率,降低数据库的频繁IO压力值,分区的优点如下:1、相对于单个文件系统或是硬盘,分区可以存储更多的数据;2、数据管理比较方便,比如要清理或废弃某年的数据,就可以直接删除该日期...原创 2021-03-22 12:48:11 · 622 阅读 · 0 评论 -
MySQL 是如何解决幻读的
一、什么是幻读在一次事务里面,多次查询之后,结果集的个数不一致的情况叫做幻读。而多或者少的那一行被叫做幻行二、为什么要解决幻读在高并发数据库系统中,需要保证事务与事务之间的隔离性,还有事务本身的一致性。三、MySQL 是如何解决幻读的如果你看到了这篇文章,那么我会默认你了解了脏读、不可重复读与可重复读。1. 多版本并发控制(MVCC)(快照读/一致性读)多数数据库都实现了多版本并发控制,并且都是靠保存数据快照来实现的。以InnoDB为例。可以理解为每一行中都冗余...原创 2021-02-07 15:45:05 · 503 阅读 · 1 评论 -
MySQL中ENGINE=InnoDB、AUTO_INCREMENT的意思
CREATE TABLE `hui_user` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户表id', `username` varchar(50) NOT NULL COMMENT '用户名', `password` varchar(50) NOT NULL COMMENT '用户密码,MD5加密', `email` varchar(50) DEFAULT NULL, `phone` varchar(20) DEFAULT NU.原创 2021-01-29 18:01:03 · 710 阅读 · 0 评论 -
mysql批量建库建表实践
1.第一种方式,简单暴力的方式http://www.toolscat.com/dev/split-table2.手动在dbever页面中创建存储过程参见dbever中创建存储过程坑:delimiter,参见:mysql导入存储过程时declare报错的问题解决3.在dbever脚本中写脚本解决前缀加零的问题,另外一种方式{ CALL database_name.createdatabase2() }delimiter //CREATE PROCEDURE `databas原创 2021-01-07 17:39:22 · 408 阅读 · 0 评论 -
MongoDB学习
SQL术语/概念 MongoDB术语/概念 解释/说明 database database 数据库 table collection 数据库表/集合 row document 数据记录行/文档 column field 数据字段/域 index index 索引 table joins 表连接,MongoDB不支持 primary key primary key 主键,MongoD.原创 2020-10-22 17:52:44 · 81 阅读 · 0 评论 -
NoSQL 数据库分类
NoSQL 数据库分类类型 部分代表 特点 列存储 Hbase Cassandra Hypertable 顾名思义,是按列存储数据的。最大的特点是方便存储结构化和半结构化数据,方便做数据压缩,对针对某一列或者某几列的查询有非常大的IO优势。 文档存储 MongoDB CouchDB 文档存储一般用类似json的格式存储,存储的内容是文档型的。这样也.原创 2020-10-22 15:02:13 · 133 阅读 · 0 评论 -
密集索引和稀疏索引的区别
区别密集索引文件中的每个搜索码值都对应一个索引值 稀疏索引文件只为索引码的某些值建立索引项密集索引:叶子节点保存的不只是键值,还保存了位于同一行记录里的其他列的信息,由于密集索引决定了表的物理排列顺序,一个表只有一个物理排列顺序,所以一个表只能创建一个密集索引 稀疏索引:叶子节点仅保存了键位信息以及该行数据的地址,有的稀疏索引只保存了键位信息机器主键mysam存储引擎,不管是主键索引,唯一键索引还是普通索引都是稀疏索引 innodb存储引擎:有且只有一个密集索引。密集索引的选取规则如下:.原创 2020-10-22 14:47:25 · 206 阅读 · 0 评论 -
mysql索引优化实践
背景最近在写一些数据统计的面板,里面有sql对表数据的聚合统计,我的主表现在有100来万的数据,其间看了很多资料。记录一下sql索引的优化过程. sql 如下,只有一个连表查询,再加上函数聚合出结果select count(if(b.severity = 1, true, null)) severityAllNum, count(if(b.severity = 2, true, null)) importanceAllNum, count(if(b.severity原创 2020-10-19 18:40:35 · 153 阅读 · 0 评论 -
mysql redolog binlog 之二阶段提交
目录一:什么是redolog和binglog?二:redolog和binlog可以相互替代或者只保留其一吗?三:为什么redolog和binlog要进行二阶段提交?四:二阶段提交步骤五、redolog和binlog二阶段提交与redolog和binlog的顺序提交是否真的有区别?六:恢复步骤?一:什么是redolog和binglog? redo log Binglog 日志类型 物理日志 物理日志即数据页中的真实二级制数据,恢复速度快 ..原创 2020-09-28 09:58:01 · 1204 阅读 · 1 评论 -
谈谈你对Mysql的MVCC的理解?
MVCC(Mutil-Version Concurrency Control),就是多版本并发控制。MVCC 是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问。在Mysql的InnoDB引擎中就是指在已提交读(READ COMMITTD)和可重复读(REPEATABLE READ)这两种隔离级别下的事务对于SELECT操作会访问版本链中的记录的过程。这就使得别的事务可以修改这条记录,反正每次修改都会在版本链中记录。SELECT可以去版本链中拿记录,这就实现了读-写,写-读的并发执原创 2020-09-27 15:50:40 · 281 阅读 · 0 评论 -
04深入浅出索引模型
可以用于提高读写效率的数据结构:哈希表,有序数组和搜索数。哈希表:无序,所以哈希索引做区间查询的速度是很慢的,哈希表这种结构适用于只有等值查询的场景,比如Memcached及其他NoSQL引擎有序数组:查询效率最高,更新麻烦,有序数组数组索引只适用于静态存储引擎索引树InnoDB的索引模型在InnoDB中,表都是根据主健顺序以索引的形式存放的,这种存储方式的表称为索引组织表每一个索引在InnoDB里面对应一棵B+树。索引类型分为主键索引和非主键索引主键索引的叶子结点存的是整行数据。在In原创 2020-09-10 15:27:07 · 218 阅读 · 0 评论 -
通俗地解释脏读、不可重复读、幻读
spring(数据库)事务隔离级别分为四种(级别递减):1、Serializable (串行化):最严格的级别,事务串行执行,资源消耗最大;2、REPEATABLE READ(重复读) :保证了一个事务不会修改已经由另一个事务读取但未提交(回滚)的数据。避免了“脏读取”和“不可重复读取”的情况,但不能避免“幻读”,但是带来了更多的性能损失。3、READ COMMITTED (提交读):大多数主流数据库的默认事务等级,保证了一个事务不会读到另一个并行事务已修改但未提交的数据,避免了“脏读取”,但不能避免原创 2020-09-08 20:06:29 · 420 阅读 · 0 评论 -
关系型数据库与非关系型数据库
1. 关系型数据库1.1 概念关系型数据库,是指采用了关系模型来组织数据的数据库。关系模型指的就是二维表格模型,因此一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。目前十大主流的关系型数据库:MySQL、Microsoft SQL Server、Oracle、SQLite、MariaDB(MySQL的分支)、PostgreSQL、Microsoft Access、Teradata、SAP。1.2 结构(1)关系:可以理解为一张二维表,每个关系都具有一个关系名,就是通常说的表名。(原创 2020-08-31 16:06:05 · 334 阅读 · 0 评论 -
redo和undo日志
在数据库系统中,既有存放数据的文件,也有存放日志的文件。日志在内存中也是有缓存Log buffer,也有磁盘文件log file,本文主要描述存放日志的文件。 MySQL中的日志文件,有这么两类常常讨论到:undo日志与redo日志。1 undo1.1 undo是啥undo日志用于存放数据修改被修改前的值,假设修改 tba 表中 id=2的行数据,把Name=’B’ 修改为Name = ‘B2’ ,那么undo日志就会用来存放Name=’B’的记录,如果这个修改出现异常,可以使用undo日志来实现原创 2020-08-30 14:08:53 · 626 阅读 · 0 评论 -
oracle隔离级别
隔离级别描述已提交读取Oracle 默认使用的事务隔离级别。事务内执行的查询只能看到查询执行前(而非事务开始前)就已经提交的数据。Oracle 的查询永远不会读取脏数据(未提交的数据)。Oracle 不会阻止一个事务修改另一事务中的查询正在访问的数据,因此在一个事务内的两个查询的执行间歇期间,数据有可能被其他事务修改。举例来说,如果一个事务内同一查询执行两次,可能会遇到不可重复读取或不存在读取的现象。 串行化 串行化隔离的事务只能看到事务执行前就已经提交的数据,以及事务内 I...原创 2020-08-30 11:01:18 · 130 阅读 · 0 评论 -
mysql与oracle的区别
相同点:1.都是关系型数据库管理系统2.都是目前比较流行的数据库不同点:1.单引号的处理Mysql里可以用双引号包起字符串,Oracle里只可以用单引号包起字符串。在插入和修改字符串前必须做单引号的替换:把所有出现的一个单引号替换成两个单引号。2.自动增长的数据类型处理Mysql是一个自动增长的数据类型,插入数据的时候,不需要管理,它自己会自动增长,Oracle不支持自动增长的数据类型,通过建立一个自动增长的序列号来完成自动增长。3.sql语句的扩展和灵活性Mysql对sql语句有很多非常原创 2020-08-30 10:54:32 · 88 阅读 · 0 评论 -
OLAP、OLTP的介绍和比较
OLTP与OLAP的介绍数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。OLTP:系统强调数据库内存效率,强调内存各种指标的命令率,强调绑定变量,强调并发操作;OLAP:系统则原创 2020-08-30 10:37:22 · 259 阅读 · 0 评论 -
oracle的逻辑读、物理读总结
(一)、物理读:把数据从数据块读取到buffer cache中1、第一次查询一个表tselect * from t ;2、第二次查询:select * from t;第一次查询有6次物理读,第二次查询有0个物理读。当数据块第一次读取到,就会缓存到buffer cache 中,而第二次读取和修改该数据块时就在内存buffer cache 了。3、数据块被重新读入buffer cache ,这种发生在如果有新的数据需要被读入Buffer Cache中,而Buffer Cache又没有足够的空闲空原创 2020-08-30 10:34:46 · 767 阅读 · 0 评论 -
Oracle之内存结构(SGA、PGA)
像很多数据库如db2,mysql等等都是关系型数据库。但是他们也有区别,区别就在数据库的架构上面。整个Oracle来讲就两个部分,一部分是实例(由两部分构成,一部分是里面的内存结构由sga和Pga构成。SGA全称为system gloable area,系统全局区域,也就是说在SGA区里面放的是共享的,全部的人都可以看到的数据。只有这一类的数据会放到SGA区里面。PGA是某个会话独有的数据和其他的东西,每个会话都是不一样的,所以每一个会话都有一个PGA。而SGA里面的就不是这样划分的,SGA里面的东西是.原创 2020-08-27 21:40:22 · 4806 阅读 · 0 评论 -
storage ( initial 64K minextents 1 maxextents unlimited );
对于表空间存储的定义数据库的逻辑结构如下:数据库是由一系列表空间(tablespace)组成,表空间由若干段(segment)组成,段由若干区(extent)组成,区由若干块(block)组成当在表空间中创建表时,系统先分配一个初始空间,这个空间大小由initial这个参数决定,此处为64KB,minextents 表示建好表后至少要分配几个区,这里是1个,maxextents 表示表空间最多能分配几个区,这里是无限制...原创 2020-08-27 09:49:41 · 1389 阅读 · 0 评论 -
详解一条sql语句的执行过程(总感觉少了很重要的一部分)
转载自 https://www.cnblogs.com/cdf-opensource-007/p/6502556.htmlSQL是一套标准,全称结构化查询语言,是用来完成和数据库之间的通信的编程语言,SQL语言是脚本语言,直接运行在数据库上。同时,SQL语句与数据在数据库上的存储方式无关,只是不同的数据库对于同一条SQL语句的底层实现不同罢了,但结果相同。这有点类似于java中接口的作用,一个接口可以有不同的实现类,不同的实现类对于接口中方法的实现方式可以不同,结果可以相同。这里SQL语言的作用就类似于j原创 2020-08-12 08:29:13 · 124 阅读 · 0 评论 -
oracle表空间
一、概念Oracle表空间(tablespaces)是一个逻辑的概念,真正存放数据的是数据文件(data files)。一个Oracle数据库能够有一个或多个表空间,而一个表空间则对应着一个或多个物理的数据库文件。表空间是Oracle数据库恢复的最小单位,容纳着许多数据库实体,如表、视图、索引、聚簇、回退段和临时段等。1.Oracle表空间的特性:(1)控制数据库数据磁盘分配;(2)限制用户在表空间中可以使用的磁盘空间大小;(3)表空间具有 online, offline, readon原创 2020-07-08 15:32:01 · 211 阅读 · 0 评论