
mysql
文章平均质量分 72
heromps
这个作者很懒,什么都没留下…
展开
-
B 树与 B+ 树:深入解析及应用场景
B 树和 B+ 树各自有其独特的优点和应用场景。B 树以其平衡性和高效的查找、插入、删除操作在多种应用中得到广泛使用。而 B+ 树由于在范围查询和缓存利用上的优势,通常在数据库系统中表现出色。根据具体的需求,选择适合的数据结构可以优化系统性能,提高数据操作的效率。原创 2024-08-23 14:33:22 · 1347 阅读 · 0 评论 -
深入探讨MySQL的锁机制:全局锁、表级锁和行级锁
MySQL提供了多种锁机制,以满足不同的并发控制需求。全局锁适用于需要全库一致性的操作,如备份和迁移;表级锁适合读密集型或写操作不频繁的场景;行级锁则提供了更好的并发性能,适用于高并发的读写操作。在实际应用中,选择合适的锁策略可以有效提升系统的性能和稳定性。通过本文的介绍和示例代码,希望能帮助你更好地理解和使用MySQL中的锁机制。如果你有任何问题或需要进一步的帮助,欢迎留言讨论!原创 2024-08-21 16:13:14 · 850 阅读 · 0 评论 -
MySQL 如何保证事务的原子性
事务原子性是指事务作为一个整体要么完全成功,要么完全失败。在事务的执行过程中,如果发生错误,所有已进行的更改都会被撤销,以确保数据库状态的一致性。事务原子性:确保事务中的所有操作要么全部成功,要么全部失败。日志机制:使用重做日志和撤销日志实现事务的原子性。事务操作:通过COMMIT和ROLLBACK控制事务的执行。存储引擎:事务原子性依赖于存储引擎的支持,如 InnoDB 和 NDB 支持事务,而 MyISAM 不支持事务。原创 2024-08-20 14:27:29 · 1189 阅读 · 0 评论 -
Ubuntu 上安装并配置 MySQL 8.0
安装过程中,你会看到一个配置界面。选择 MySQL Server & Cluster (Currently selected: mysql-8.0),然后选择 OK。该脚本会引导你完成一些安全设置,包括设置 root 用户密码、删除匿名用户、禁止 root 远程登录以及删除测试数据库等。安装过程中,你会被提示设置 MySQL root 用户的密码。根据你的系统资源和需求,可以优化 MySQL 配置。编辑 MySQL 配置文件。为了提高 MySQL 安全性,你可以运行。编辑 MySQL 配置文件。原创 2024-08-08 11:03:40 · 1360 阅读 · 0 评论 -
ERROR 1698 (28000): Access denied for user ‘root‘@‘localhost‘
错误通常发生在使用 UNIX socket 认证的 MySQL 上,这意味着 MySQL 尝试使用系统用户认证而不是传统的用户名和密码认证。原创 2024-08-08 00:32:49 · 4445 阅读 · 0 评论 -
Ubuntu 上卸载并重新安装 MySQL
输入你在安装过程中设置的密码,登录成功后即可开始使用 MySQL。该脚本会引导你进行一些安全配置,例如删除匿名用户、禁止远程。安装过程中会提示你设置 MySQL。登录、删除测试数据库等。原创 2024-08-07 22:20:10 · 1464 阅读 · 0 评论 -
mac 中存在两个或多个jdk,mvn install时报错Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:
Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.11.0:compile (default-compile) on project springbootdemo: Fatal error compiling: 无效的标记: -parameters -> [Help 1]原创 2024-04-27 11:53:43 · 276 阅读 · 0 评论 -
mac用Homebrew安装MySQL并配置远程登录
MySQL 是一个开源的关系型数据库管理系统(RDBMS),由瑞典 MySQL AB 公司开发,后被 Oracle 公司收购。MySQL 使用 SQL(Structured Query Language)作为查询语言,并提供了强大的功能和性能,被广泛应用于各种 Web 应用程序和企业级应用程序中。以下是 MySQL 的一些主要特点和优势:**开源和免费:**MySQL 是开源软件,可以免费使用,并且有一个活跃的开源社区支持和维护它。原创 2024-04-27 10:42:53 · 3282 阅读 · 1 评论 -
mac上使用brew安装mysql5.7
使用Homebrew进行MySQL数据库的安装需要MacOS系统中已经安装了相关环境。原创 2023-07-01 09:12:31 · 3147 阅读 · 0 评论 -
MyBatis之注解开发
Mybatis注解开发单表操作1 MyBatis的常用注解这几年来注解开发越来越流行,Mybatis也可以使用注解开发方式,可以用来减少编写Mapper映射文件了。@Insert:实现新增@Update:实现更新@Delete:实现删除@Select:实现查询@Result:实现结果集封装@Results:可以与@Result 一起使用,封装多个结果集@One:实现一对一结果集封装@Many:实现一对多结果集封装2 MyBatis的增删改查我们完成简单的student表的增删改查的原创 2022-02-24 08:30:00 · 695 阅读 · 0 评论 -
MyBatis进阶之接口代理方式
接口代理方式实现Dao1 代理开发方式介绍 采用 Mybatis 的代理开发方式实现 DAO 层的开发,这种方式是我们后面进入企业的主流。Mapper 接口开发方法只需要程序员编写Mapper 接口(相当于Dao 接口),由Mybatis 框架根据接口定义创建接口的动态代理对象,代理对象的方法体同上边Dao接口实现类方法。Mapper 接口开发需要遵循以下规范:1) Mapper.xml文件中的namespace与mapper接口的全限定名相同2) Mapper接口方法名和Mapper.xml原创 2022-02-23 17:30:00 · 660 阅读 · 0 评论 -
Mybatis之基础
Mybatis快速入门1 框架介绍框架是一款半成品软件,我们可以基于这个半成品软件继续开发,来完成我们个性化的需求!2 ORM介绍ORM(Object Relational Mapping): 对象关系映射指的是持久化数据和实体对象的映射模式,为了解决面向对象与关系型数据库存在的互不匹配的现象的技术。具体映射关系如下图:数据库表(table) —> 类(class)记录(record,行数据) —>对象(object)字段(filed) —>对象属性 (attri原创 2022-02-22 17:30:00 · 95 阅读 · 0 评论 -
JDBC高级之框架(JDBCTemplate)
JDBC框架(JDBCTemplate)1.分析项目中的重复代码dao层的重复代码定义必要的信息、获取数据库的连接、释放资源都是重复的代码!而我们最终的核心功能仅仅只是执行一条sql语句而已啊!所以我们可以抽取出一个JDBC模板类,来封装一些方法(update、query),专门帮我们执行增删改查的sql语句!将之前那些重复的操作,都抽取到模板类中的方法里。就能大大简化我们的使用步骤!2.自定义JDBC框架2.1数据库的源信息DataBaseMetaData(了解):数据库的源转载 2022-02-21 17:30:00 · 260 阅读 · 0 评论 -
JDBC高级之数据库连接池
数据库连接池1.数据库连接池的概念数据库连接数据库连接是一种关键的、有限的、昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。数据库连接池数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个。这项技术能明显提高对数据库操作的性能。数据库连接池原理2.自定义连接池java.sql.DataS原创 2022-02-20 20:00:00 · 103 阅读 · 0 评论 -
JDBC案例之student学生表的CRUD
JDBC案例student学生表的CRUD1.数据准备数据库和数据表-- 创建db14数据库CREATE DATABASE db14;-- 使用db14数据库USE db14;-- 创建student表CREATE TABLE student( sid INT PRIMARY KEY AUTO_INCREMENT, -- 学生id NAME VARCHAR(20), -- 学生姓名 age INT, -- 学生年龄 birthday DATE -原创 2022-02-15 21:17:04 · 828 阅读 · 0 评论 -
JDBC之基础知识
JDBC快速入门1.jdbc的概念JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系型数据库提供统一访问,它是由一组用Java语言编写的类和接口组成的。2.jdbc的本质其实就是java官方提供的一套规范(接口)。用于帮助开发人员快速实现不同关系型数据库的连接!3.jdbc的快速入门程序导入jar包注册驱动Class.forName("com.mysql.jdbc.Driver");原创 2022-02-18 22:00:00 · 216 阅读 · 0 评论 -
MySQL高级之锁
MySQL锁1.锁的概念锁机制 : 数据库为了保证数据的一致性,而使用各种共享的资源在被并发访问时变得有序所设计的一种规则。举例,在电商网站购买商品时,商品表中只存有1个商品,而此时又有两个人同时购买,那么谁能买到就是一个关键的问题。这里会用到事务进行一系列的操作:先从商品表中取出物品的数据然后插入订单付款后,再插入付款表信息更新商品表中商品的数量以上过程中,使用锁可以对商品数量数据信息进行保护,实现隔离,即只允许第一位用户完成整套购买流程,而其他用户只能等待,这样就解决了并发原创 2022-02-19 22:00:00 · 96 阅读 · 0 评论 -
MySQL高级之索引
MySQL索引1.索引的概念我们之前学习过集合,其中的ArrayList集合的特点之一就是有索引。那么有索引会带来哪些好处呢?没错,查询数据快!我们可以通过索引来快速查找到想要的数据。那么对于我们的MySQL数据库中的索引功能也是类似的!MySQL数据库中的索引:是帮助MySQL高效获取数据的一种数据结构!所以,索引的本质就是数据结构。在表数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式指向数据, 这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。原创 2022-02-14 20:46:58 · 101 阅读 · 0 评论 -
MySQL高级之存储引擎
MySQL存储引擎1.MySQL体系结构体系结构的概念任何一套系统当中,每个部件都能起到一定的作用!MySQL的体系结构体系结构详解客户端连接支持接口:支持的客户端连接,例如C、Java、PHP等语言来连接MySQL数据库第一层:网络连接层连接池:管理、缓冲用户的连接,线程处理等需要缓存的需求。例如:当客户端发送一个请求连接,会从连接池中获取一个连接进行使用。第二层:核心服务层管理服务和工具:系统的管理和控制工具,例如备份恢复、复制、集群等。SQ原创 2022-02-17 22:00:00 · 114 阅读 · 0 评论 -
MySQL高级之触发器
MySQL触发器1.触发器的概念触发器是与表有关的数据库对象,可以在 insert/update/delete 之前或之后,触发并执行触发器中定义的SQL语句。触发器的这种特性可以协助应用在数据库端确保数据的完整性 、日志记录 、数据校验等操作 。使用别名 NEW 和 OLD 来引用触发器中发生变化的记录内容,这与其他的数据库是相似的。现在触发器还只支持行级触发,不支持语句级触发。触发器类型OLD的含义NEW的含义INSERT 型触发器无 (因为插入前状态无数据)NE原创 2022-02-16 22:00:00 · 144 阅读 · 0 评论 -
MySQL高级之存储过程和函数
MySQL存储过程和函数1.存储过程和函数的概念存储过程和函数是 事先经过编译并存储在数据库中的一段 SQL 语句的集合2.存储过程和函数的好处存储过程和函数可以重复使用,减轻开发人员的工作量。类似于java中方法可以多次调用减少网络流量,存储过程和函数位于服务器上,调用的时候只需要传递名称和参数即可减少数据在数据库和应用服务器之间的传输,可以提高数据处理的效率将一些业务逻辑在数据库层面来实现,可以减少代码层面的业务处理3.存储过程和函数的区别函数必须有返回值存储过程没有返回原创 2022-02-15 22:00:00 · 264 阅读 · 0 评论 -
MySQL进阶之数据库备份和恢复
数据库备份和恢复命令行方式备份登录到mysql服务器,输入mysqldump -u root -p 数据库名称 > 文件保存路径恢复登录mysql数据库删除已经备份的数据库重新创建名称相同的数据库使用该数据库导入文件执行:source 备份文件路径图形化工具界面方式备份恢复删除数据库创建数据库db5执行导出的sql文件...原创 2022-02-14 23:00:00 · 152 阅读 · 0 评论 -
MySQL进阶之视图
视图介绍视图:是一种虚拟存在的表,这个虚拟的表并不在数据库中存在作用:将一些较为复杂的查询语句的结果,封装到一个虚拟表中,后期再有相同需求时,直接查询该虚拟表即可视图就是将一条SELECT查询语句的结果封装到了一个虚拟表中,所以我们在创建视图的时候,工作重心就要放在这条SELECT查询语句上视图的好处简单对于使用视图的用户不需要关心表的结构、关联条件和筛选条件。因为这张虚拟表中保存的就是已经过滤好条件的结果集安全视图可以设置权限 , 致使访问视图的用户只能访问他们被允许查询的结原创 2022-02-13 17:25:49 · 114 阅读 · 0 评论 -
MySQL进阶之多表操作
MySQL进阶多表操作多表建表多表概念有多张数据表,表与表之间是可以有一定的关联关系,这些关联关系通过外键约束实现多表分类一对一一对多多对多一对一通用场景人和身份证,一个人只有一个身份证,一个身份证只能对应一个人建表原则在任意一个表建立外键,去关联另一个表的主键sql演示-- 创建数据库db3create database db3 character set utf8;-- 使用数据库db3use db3;-- 创建person表cr原创 2022-02-13 16:07:43 · 480 阅读 · 0 评论 -
MySQL进阶之约束
MySQL进阶外键约束外键约束概念让表和表之间产生关系,从而保证数据的准确性建表时添加外键约束CREATE TABLE 表名( 列名 数据类型约束, CONSTRAINT 外键名 FOREIGN KEY (本表外键列名) REFERENCES 主表名(主表主键列名));删除外键约束-- 标准语法ALTER TABLE 表名 DROP FOREIGN KEY 外键名;建表后添加外键约束-- 标准语法ALTER TABLE 表名 ADD CONS原创 2022-02-12 22:00:27 · 86 阅读 · 0 评论 -
MySQL基础之基本操作
数据库数据库的基本概念更加方便的对开发中的数据进行管理之前通过IO流来对数据进行管理使用字符流每次读取一行数据将读取到的数据封装为对象将多个对象添加到集合中遍历集合,判断对象是否是所找对象找到对象,对其进行修改使用字符流将集合数据写回文件数据库介绍用于存储和管理数据的仓库英文单词为DataBase。简称DB存储空间大,可以存储百万条、千万条、上亿条数据使用一种统一的方式操作数据库----SQLMySQL是一个最流行的关系型数据库管理系统之一。由瑞原创 2022-02-09 22:38:33 · 152 阅读 · 0 评论 -
mysql自增id与uuid的区别
前言在设计数据库表的时候,MySQL官方推荐不要使用uuid或者不重复不连续的雪花id(long型且id唯一,单机递增),而是腿甲使用自增id,推荐使用auto_increment。自增id原创 2021-03-12 09:55:08 · 1916 阅读 · 0 评论 -
数据库范式
1. 数据库范式概念数据库规范化,又称正规化、标准化,是数据库设计的一系列原理和技术,以减少数据库中数据冗余,增进数据的一致性。关系模型的发明者埃德加·科德最早提出这一概念,并于1970年代初定义了第一范式、第二范式和第三范式的概念,还与Raymond F. Boyce于1974年共同定义了第三范式的改进范式——BC范式。除外还包括针对多值依赖的第四范式,连接依赖的第五范式、DK范式和第六范式。现在数据库设计最多满足3NF,普遍认为范式过高,虽然具有对数据关系更好的约束性,但也导致数据关系表增加而令数原创 2021-03-06 16:18:20 · 175 阅读 · 2 评论 -
索引
1.索引概念在数据库中如果有上万或者上亿条数据,对数据库查询就会非常慢,这个时候就需要用索引。索引是对数据库中某一列或多个列的值进行预排序的数据结构,通过使用索引,可以使得数据库不用扫描整张表,而是直接找到符合条件的记录位置,大大加快了索引查询的速度,同时数据库索引对于程序和用户来说是透明的。2.索引的作用大大提高查询速度确保数据唯一性可以加速表与表之间的链接,实现表与表之间的参照完整性使用分组和排序自居进行查询时,可以显著减少分组和排序的时间全文检索字段可以进行搜索优化3.索引分类原创 2021-03-05 09:08:33 · 99 阅读 · 1 评论 -
MySQL事务
事务概念事务一般包含了一系列的数据库读写操作,简而言之,事务中的一系列操作要成功就是全部操作成功,只要一个操作失败,整个事务操作失败。事务操作包含以下两个目的:为数据库操作提供从失败恢复正常的方法,同时保证在失败情况下依然保持数据一致性当有多个并发程序访问数据库时,可以在应用程序之间提供一个隔离方法,有效防止程序之间彼此的操作当事务被提交给了数据库管理系统(DBMS),则DBMS需要保证所有操作成功完成并保存到数据库中去,当事务中的某一操作未完成,则事务中的所有操作都需要回滚,回到事务执行前的状态原创 2021-03-04 09:39:54 · 106 阅读 · 0 评论 -
mysql中delete与truncate的区别
DELETE命令语法:delete from 表名 [where conditions]conditions为筛选条件,如果没有,默认删除全部数据TRUNCATE命令用于清空表数据,但表结构,索引,约束不变语法;truncate [table] table_name;相同点,不同点相同点:都可以删除数据,不删除表结构不同点:使用truncate会重新设置auto_incrment计数器使用truncate不会对事务有影响测试创建一个delete_test表原创 2021-03-03 10:07:00 · 226 阅读 · 1 评论