数据库知识总结

  1. Mysqladmin常用选项,设置密码的三种方式

1.1 mysqladmin常用选项

语法:mysqladmin [option] command [command option] command ......

常用选项:ping status password refresh刷新授权 shutdown 等

例如:mysqladmin -u root -p'Xxhf@2022' ping mysqladmin -u用户名 -p旧密码 password 新密码

1.2 为用户设置密码三种方式

SET PASSWORD FOR “USER@’HOST’=‘XXXXXX’; %匹配任意长度的任意字符

update mysql.user SET password=PASSWORD(‘password’) WHERE clause; (需要重读授权表)

mysqladmin -u用户名 -p旧密码 password 新密码

  1. Mysql的数据类型

字符:变长字符 VARCHAR(#),VARBINARY(#) BINARY是区分大小写的

定长字符型最长长度为255 变长为65535

定长字符 CHAR(#),BINARY(#) ‘zhangsan’ ZHANGSAN

内建类型 ENUM(枚举,多个条件选一个),SET(集合,多个条件选可以选多个) mysql独有的数据类型

对象(也是字符) TEXT(65535), TINYTEXT, MEDIUMTEXT(1600万), LOGTEXT(40亿), (文本大对象类型)

BLOB,TINYBLOB,MEDIUMBLOB,LONGBLOB (二进制大对象类型)<img>

字符型插入或更新数据必须接引号(单引号或双引号都可以)

MySQL :: MySQL 8.0 Reference Manual :: 13.3.2 The CHAR and VARCHAR Types

数值:

精确数值: 1:整形 INT (包含正数和负数)

TINYINT SMALLINT MEDIUMINT INT BIGINT

2^8(1字节) 2^16(2字节) 2^24(3字节) 2^32(4字节) 2^64(8字节)

2:十进制 DECIMAL(mysql独有类型) decimal(8,3) 总长8位,精确小数点后三位 例如20000.535 200000.10

近似数值: 1:单精度:FLOAT 精确到小数点后一位

2:双精度:DOUBLE 精确到小数点后两位

字符类型修饰符:

NOT NULL 非空约束

NULL

DEFAULT ‘’指定默认值 (此两试用任何)

CHARACTER SET ‘’使用的字符集,或者使用CHARSET ‘’

COLLATION:使用的排序规则

查看所有字符集

mysql > SHOW CHARACTER SET; show charset;

查看默认排序规则

mysql > SHOW COLLATION;

整形数据修饰符

NOT NULL 非空约束

NULL

DEFAULT NUMBER 默认数值,定义之后不要写主键唯一键

PRIMARY KEY主键 | UNIQUE KEY唯一键

UNSIGNED(无符号修饰,仅正数) (mysql中数值不能加引号,字符型要加引号,支持三种引号,’’,””,``.支持AUTO_INCREMENT(自动增长)

此两修饰数值属于mysql独有数据类型

内建类型(枚举和集合)修饰符

NULL

NOT NULL

DEFAULT gender enum(‘M’,’F’) default ‘M’

日期时间型:(也需要加上引号)

日期:DATE 年-月-日

时间:TIME 时-分-秒

日期和时间:DATETIME

时间戳:TIMESTAMP

年份:YEAR(2),YEAR(4) 18 2018

  1. 跳过密码破解密码进行免密登录

跳过密码实现破解密码免密登录 /etc/my.cnf

//只能在本机操作,进行密码破解 ,ss -tnl端口隐藏了,直接登录就ok

//查看账户

//改密码

先mysql进入数据库,将密码置为空,正在将上述添加的两行注释,正常进入数据库 改密码

  • mysql数据库的文件类型

数据文件(包括索引)日志文件(二进制日志、错误日志、查询日志、慢查询日志、中继日志)

  1. Mysql索引的作用和类型

索引管理

索引:

按照特定数据结构存储的数据

应创建在经常用作查询条件的字段上

实现的功能

没有索引:表扫描(消耗大量资源)

有了索引:将单个字段抽取出来,进行排序,将索引装载进入内存。

索引的作用

1:将经常用于查询的某些字段定义索引后,数据库利用索引定位技术,能够大大加快查询速率。

特别是在当表特别大的时候,或者涉及到多表查询的时候,利用索引可以使查询加快成千倍。

2:极大的降低I/O成本(将随机IO转为顺序IO),降低数据库的排序成本。

3:使用分组、排序时,能大大减少分组和排序时间

索引的缺点:占用额外空间,影响插入速度

索引类型:

myisam .myi存储索引 .myd存储文件 数据和索引不同文件

inodb .idb 数据和索引同一文件

聚集索引:数据和索引存储在一起 innodb——用于主键

非聚集索引:指针导向 myisam 二叉树红黑树

主键索引、辅助索引82

稠密索引(主键)、稀疏索引

B+ TREE索引 HASH索引 R TREE索引

参考链接:

二叉树:https://www.cs.usfca.edu/~galles/visualization/BST.html

红黑树:https://www.cs.usfca.edu/~galles/visualization/RedBlack.html

B树:https://www.cs.usfca.edu/~galles/visualization/BTree.html

B+树:https://www.cs.usfca.edu/~galles/visualization/BPlusTree.html

B树B+树的区别

B树每次发起io基于根节点,基于叶子节点的

都是通过索引检测数据的一种方式,

B树的节点上都存储了索引和数据,B+树都存在叶子节点,非叶子节点村索引

简单索引和组合索引

索引组织方式

左前缀索引:例如like ‘abc%’

模糊匹配

Select * from testlog where name like 'wang65%';

MySQL在索引时,采用左前缀索引。例如字符型255长度,会抽取最左侧的一部分字符来作为索引。

  1. Mysql的12大组件

  1. Select语句执行流程和优先级

SELECT

查询

SELECT语句的执行过程

过程详解:

from clause ---> where clause ---> group by ---> having clause --->order by ---> select --->limit

操作方法

select col1,col2... from clause--->where clause--->group by--->having--->order by--->limit

SELECT语句默认查询后会被缓存,方便下次查询

SQL_CACHE:显示指定存储查询结果于缓存之中。

查询sql缓存大小 show global variables like ‘query%’;

查询sql缓存开没开 show global variables like ‘cache%’;

  1. Mysql体系结构图

  1. mysql体系结构图

默认单个最大实例并发151,可以调大到1024,支持复用io结构

  1. Mysql存储引擎,myisam和innodb的区别

不同的存储技术将数据存储在磁盘上,每一种引擎采用不同的技术、存储机制、索引技巧、锁定水平,最终提供不同的功能和能力。

概念:5.1之前默认存储引擎是MyISAM,5.1之后默认是INNODB(支持事务处理)

查看当前默认存储引擎:show engines;

  1. MyISAM存储引擎的特点:

①:不支持事务

②:表级别锁

③:读写相互阻塞,写入不能读,读时不能写

④:只缓存索引

⑤:不支持外键约束

⑥:读取速度较快,占用资源较少

⑦:不支持MVCC和高并发

⑧:崩溃恢复性较差

⑨:MySQL5.5之前的版本默认的存储引擎。

MyISAM存储引擎适用的场景:只读、表较小

MyISAM存储引擎文件:.frm--->表格式定义 .MYD--->数据库文件 .MYI--->索引文件

  1. InnoDB引擎特点

 行级锁

 支持事务,适合处理大量短期事务

 读写阻塞与事务隔离级别相关

 可缓存数据和索引

 支持聚簇索引

 崩溃恢复性更好

 支持MVCC高并发

 从MySQL5.5后支持全文索引

 从MySQL5.5.5开始为默认的数据库引擎

  1. Mysql的事务,隔离级别,属性

  1. 事务

  1. 概念

事务Transactions:一组原子性的SQL语句,或一个独立工作单元

事务是一种机制,一个操作序列,包含了一组数据库操作命令,并且把所有的命令作为一个整体一起将系统提交或撤销操作请求,即这一组数据库命令要么都执行,要么都不执行。

事务是一个不可分割的工作逻辑单元,在数据库系统上执行并发操作时,事务是最小的控制单元。默认情况下一条sql语句就是一个事务

事务适用于多用户同时操作的数据库系统的场景,如银行、保险公司及证券交易系统等等。通过事务的完整性以保证数据的一致性、完整性。

事务日志:记录事务信息,实现undo,redo等故障恢复功能,

myisam不支持,只有innodb支持

只针对DML语句

   Insert xxxxxx

Update xxxxxx

Delete xxxxxx

  1. 事务的四个属性(ACID

原子性 atomicity 整个事务中的所有操作要么全部成功执行,要么全部失败后回滚

一致性 consistency 数据库总是从一个一致性状态转换为另一个一致性状态

隔离性 isolation 一个事务所做出的操作在提交之前,是不能为其它事务所见;隔离有多种隔离级别,实现并发

持久性 durability 一旦事务提交,其所做的修改会永久保存于数据库中

默认单条SQL语句即为一个单独的事务,会实现自动提交事务,若实现非自动提交,输入set autocommit=0;即可

  1. 事务隔离级别

从上至下更加严格

READ UNCOMMITTED 可读取到未提交数据,产生脏读

READ COMMITTED 不可重复读

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我变秃了也没变强

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值