黑马MySQL数据库从入门到精通-基础篇数据库相关概念数据库1Database,简称DB。按照一定的数据结构来组织、存储和管理数据的仓库。
数据库管理系统1Database Management System,一种操纵和管理数据库的大型软件,用于创建、使用和维护数据库,简称DBMS。
关系型数据库(RDBMS)1234概念: 关系型数据库,是建立在关系模型基础上,由多张相互连接的二维表组成的数据库。特点:1. 使用表存储数据,格式统一,便于维护2. 使用SQL语句操作,标准统一,使用方便
非关系型数据库(NoSQL)1234概念:Not-Only SQL,泛指非关系型数据库,是对关系型数据库的补充。特点:1. 数据结构灵活2. 伸缩性强
SQL12结构化查询语言(Structured Query Language),简称SQL。是一种操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准
mysql数据库安装1大数据开发工程师那个课程的hive篇讲的很详细
启动
1234net start mysql80; --mysql80是安装时设置的mysql serv ...
数据库系统-刷题mysql常问问题mysql面试问题
1234567891011121314151617181920212223常用的存储引擎?InnoDB与MyISAM的区别?什么是事务,以及事务的四大特性?事务的隔离级别有哪些,MySQL默认是哪个?内连接与左外连接的区别是什么?MySQL默认InnoDB引擎的索引是什么数据结构?如何查看MySQL的执行计划?索引失效的情况有哪些?什么是回表查询?什么是MVCC?MySQL主从复制的原理是什么?主从复制之后的读写分离如何实现?数据库的分库分表如何实现?
1234567891011121314151617181920SQL性能优化经验1.sql优化大多依赖索引进行2.聚集索引和二级索引对于理解sql优化很关键(能使用聚集使用过滤就不使用二级索引,效率更高)3.满足业务需求的情况下,尽量降低主键的长度 --因为二级索引叶子节点会存储主键,会导致索引数据大插入数据时,尽量选择顺序插入,选择使用AUTO_INCREMENT自增主键。 --避免页分裂尽量不要使用UUID做主键或者是其他自然主键,如身份证号 --长度长且无序4.load d ...
黑马MySQL数据库从入门到精通-基础篇 事务事务1事务是一组操作的集合,这组操作,要么全部执行成功,要么全部执行失败。
事务操作12START TRANSACTION;--开启事务COMMIT/ROLLBACK;--提交/回滚事务
并发事务问题123脏读:一个事务可以读取另一个事务未提交的数据不可重复读:一个事务两次相同操作得到不同的结果(两次时间间隙有另一个事务进行数据操作)幻读:例如一个事务查询没有对应数据(此时另一个事务进行数据插入),然后进行数据插入,提醒已有对应数据,但是查询也还是没有(可重复读实现)
隔离级别1234read uncommitread commitrepeatable readserializable
12345 脏读 不可重复读 幻读read uncommit v v vread commit x v vrepeatable read x x vserializable x x x
123456789MySQL的默认事务隔离级别是 REPEATABLE READ。这意味着,在一个 ...
游标1游标(CURSOR)是用来存储查询结果集的数据类型,在存储过程和函数中可以使用游标对结果集进行循环的处理。游标的使用包括游标的声明、OPEN、FETCH和 CLOSE,其语法分别如下。
用法1234567891011声明游标DECLARE 游标名称 CURSOR FOR 查询语句;打开游标OPEN 游标名称;获取游标记录FETCH 游标名称 INTO 变量[,变量];关闭游标CLOSE 游标名称
案例1
1执行创建存储过程命令报错,声明变量和声明游标的顺序有要求
1上面的报错是因为执行存储过程后,当游标里的数据遍历完成后,由于是死循环当无数据时也执行,导致报错
异常处理程序
1上图是对前面的案例的改进
案例2123456789101112131415创建存储过程,里面使用游标,对每一行进行数据修改create procedure a()begin declare cno int; declare sno int; declare my_cursor cursor for select cno,sno from t; open my_cursor; fetc ...
黑马MySQL数据库从入门到精通-进阶篇 1存储引擎MySQL体系结构
简介123存储引肇就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引肇是基于表的,而不是基于库的,所以存储引擎也可被称为表类型mysql5.5之后默认是innodb
在创建表时,指定存储引擎123CREATE TABLE 表名(字段1 字段1类型 [COMMENT 字段1注释]字段n 字段n类型 [COMMENT 字段n注释])ENGINE =INNODB [COMMENT 表注释];
查看当前数据库支持的存储引擎123SHOW ENGINES;MyISAM是mysql早期的默认存储引擎
InnoDB介绍123456789101112131415介绍lnnoDB是一种兼顾高可靠性和高性能的通用存储引擎,在 MySOL5.5之后,innoDB是默认的 特点DML操作遵循ACID模型,支持事务;行级锁,提高并发访问性能;支持外键FOREIGN KEY约束,保证数据的完整性和正确性;文件xxx.ibd:;xxx代表的是表名,innoDB引擎的每张表都会对应这样一个表空间文件,存储该表的表结构(frm ...
黑马MySQL数据库从入门到精通-进阶篇 2SQL优化插入数据批量插入1234500-1000条合适insert into table_name values(xxx,xxx,xxx),(xxx,xxx,xxx),(xxx,xxx,xxx),....;几千几万条时可以分割成多条insert插入
手动提交事务123456start transaction;insert into table_name values(xxx,xxx,xxx);insert into table_name values(xxx,xxx,xxx);insert into table_name values(xxx,xxx,xxx);...commit;
主键顺序插入1不会涉及到页拆分,效率高
大批量数据插入12345678如果一次性需要插入大批量数据,使用inset语句插入性能较低,此时可以使用MySQL数据库提供的load指令进行插入。操作如下:#客户端连接服务端时,加上参数 --local-infilemysql --local-infile -u root -p#设置全局参数local_infile ...
黑马MySQL数据库从入门到精通-运维篇 1日志主从复制概述12使得从库和主库的数据保持同步主从复制是指将主数据库的DDL和 DML 操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。
1MySQL支持一台主库同时向多台从库进行复制,从库同时也可以作为其他从服务器的主库,实现链状复制。
优点1234MySQL主从复制的优点主要包含以下三个方面:主库出现问题,可以快速切换到从库提供服务。实现读写分离,降低主库的访问压力。(主库执行DDL、DML,从库执行DQL)可以在从库中执行备份,以避免备份期间影响主库服务。(从库加全局锁之后还是可以读)
原理
123从上图来看,主从复制分成三步:1.Master主库在事务提交时,会把数据变更记录在二进制日志文件Binlog中。2.从库读取主库的二进制日志文件Binlog ,写入到从库的中继日志Relay Log。3.slave重做中继日志中的事件,将改变反映它自己的数据
搭建
1学习建议使用直接关闭防火墙,生产中使用开放端口
12systemctl stop firewal ...
黑马MySQL数据库从入门到精通-进阶篇 3锁概述1锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(CPU、RAM、1/0)的争用以外,数据也是-种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访可性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。
分类1234MySQL中的锁,按照锁的粒度分,分为以下三类1.全局锁:锁定数据库中的所有表。2.表级锁:每次操作锁住整张表。3.行级锁:每次操作锁住对应的行数据
全局锁介绍12全局锁就是对整个数据库实例加锁,加锁后整个实例就处于只读状态,后续的DML的写语句,DDL语句,已经更新操作的事务提交语句都将被阻塞。其典型的使用场景是做全库的逻辑备份,对所有的表进行锁定,从而获取一致性视图,保证数据的完整性
123如果备份时不加锁,会导致数据不一致mysqldump是mysql提供的备份工具
演示123flush tables with read lock;unlock tables;
特点123456数据 ...
日记3.1812345678maven 廖雪峰maven这一章 根据大数据开发工程师hdfs这一章安装maven,并配置setting,然后配置idea IDEA 创建maven项目,pom文件细节查看 idea插件快捷下载 idea项目创建scala和java文件夹,添加sdk
3.291234567891011121314151617181920212223242526272829303132333435-hudi集成spark后,spark shell启动方式,插入数据,查询数据-spark 程序的一个基本架构、概念、安装、工作原理、rdd、spark架构相关进程和架构原理、spark运行案例(jar,源码) 、spark-shell以单线程,多线程,yarn运行*:1.spark shell中写纯数字相加parallelize Array 2.textFile(使用它时,正好遇到了auction算子时才计算的情况,linux文件协议问题,hdfs文件协议) scala语法,reduce,reduceByKey-flink基本概念 flink运行在yarn上*-idea配置 ...
临时笔记vscode12visual studio code它是一个高级编辑器,编译器,调试器,需要后期自己下载
12microsoft visual studio:集成开发环境microsoft vusual c++:只针对c++开发
123gcc.exe和cl.exe编译器gcc.exe:使用广泛的c++编译器,支持多种编程语言(通过mingw64下载)cl.exe专用于编译c++,在microsoft visual studio中使用
编译c代码12345c\c++编译配置,ctrl+shift+p->c++->得到配置文件配置执行任务,运行->终端运行执行任务ctrl+shift+`,打开终端运行exe文件
123456多个程序时(程序文件夹打开的方式不一样,一会导致.vscode配置目录呈现不同的情况)1.打开到最子目录,这时的.vscode文件夹和程序代码文件平级2.打开到不是最子级的目录,此时.vscode文件夹是打开目录的子级编译配置和任务配置:不用变(通俗的讲这是这个配置服务于这个项目下的所有代码)也可以直接将.vscode文件夹复制到其它代 ...






