Mysql
文章平均质量分 55
齐天qaq
生活给我一颗酸柠檬,我把它酿成了柠檬汽水。
展开
-
DBeaver导入sql脚本报错java.io.IOException: Process failed (exit code = 1). See error log.
编码不一致,sql脚本文件是utf8编码,而mysql默认以gbk编码连接数据库。原创 2024-07-02 09:21:56 · 2153 阅读 · 2 评论 -
InnoDB存储引擎中的锁(整理)
在数据库中锁是为了解决资源争抢的问题,锁是数据库系统区别于文件系统的一个关键特性。锁机制用于管理对共享资源的并发访问。数据库系统使用锁是为了支持对共享资源进行并发访问,提供数据的完整性和一致性。InnoDB存储引擎区别于MyISAM的两个重要特征就是:InnoDB存储引擎支持事务和行级别的锁,MyISAM只支持表级别的锁。原创 2024-03-20 15:02:54 · 947 阅读 · 0 评论 -
MySQL中如何实现事务提交和回滚
事务是由数据库中一系列的访问和更新组成的逻辑执行单元事务的逻辑单元中可以是一条SQL语句,也可以是一段SQL逻辑,这段逻辑要么全部执行成功,要么全部执行失败举个最常见的例子,你早上出去买早餐,支付宝扫码付款给早餐老板,这就是一个简单的转账过程,会包含两步从你的支付宝账户扣款10元早餐老板的账户增加10元这两步其中任何一部出现问题,都会导致整个账务出现问题假如你的支付宝账户扣款10元失败,早餐老板的账户增加成功,那你就Happy了,相当于马云请你吃早餐了,O(∩_∩)O哈哈~转载 2024-03-19 16:25:42 · 66 阅读 · 1 评论 -
数据库中DQL、DML、DDL、DCL的概念与区别
数据库语言可以根据其功能被分为几个不同的类别:DQL(数据查询语言)、DML(数据操纵语言)、DDL(数据定义语言)和DCL(数据控制语言)。这些类别反映了数据库管理系统中执行的不同类型的操作。原创 2024-03-18 15:36:50 · 756 阅读 · 0 评论 -
索引相关知识总结
当查询的数据,在索引树中找不到的时候,需要通过非主键索引获取主键,再到主键索引树中去获取所要查询的记录,这个过程叫回表。如:select * from Table where age = 22;通过执行计划(explain)的Extra字段值,可以看到当前sql是否进行了回表,如果Extra字段值为Using index则表示当前查询通过覆盖索引可以获取到,无需通过回表查询记录。select的数据列只用从索引中就能够取得,不必回表,换句话说:查询列要被所建的索引覆盖。最左前缀匹配原则。原创 2024-03-11 15:24:15 · 610 阅读 · 0 评论 -
drop、delete与truncate
truncate, drop是ddl(数据定义语言),操作立即生效,原数据不放到rollback segment中,不能回滚,操作不触发trigger。则一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志保存,删除行是不能恢复的。(5)当表被truncate后,这个表和索引所占用的空间会恢复到初始大小,delete操作不会减少表或索引所占用的空间。执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作。delete可以是table和view。原创 2024-02-27 17:05:04 · 438 阅读 · 0 评论 -
MySQL表分区技术介绍
分区功能并不是在存储引擎层完成的,因此不是只有 InnoDB 存储引擎支持分区,常见的存储引擎 MyISAM、NDB 等都支持。但也并不是所有的存储引擎都支持,如CSV, FEDORATED, MERGE等就不支持。在使用分区功能前,应该对选择的存储引擎对分区的支持有所了解。MySQL数据库在5.1版本时添加了对分区的支持。分区的过程是将一个表或索引分解为多个更小、更可管理的部分。就访问数据库的应用而言,从逻辑上讲,只有一个表或一个索引,但是在物理上这个表或索引可能由数十个物理分区组成。原创 2024-02-27 14:50:09 · 1787 阅读 · 0 评论 -
InnoDB的逻辑存储结构(表、段、区、页、行)
InnoDB存储引擎是面向列(row-oriented)的,也就是说数据是按行来进行存放的(数据表中的一行),而每个页的存放的行记录也是有硬性定义的,最多允许存放7992数量的行记录(计算公式为16 * 1024 /2 - 200,16是指页的大小为16KB)。其实这是因为,在每个段开始时,会先用32个页大小的碎片页来存放数据,在使用完这些碎片页才会进行区的申请(直接申请4~5个区),这样做的目的在于,对于一些小表,可以在开始时就占用比较少的空间,节省磁盘容量的开销。原创 2024-02-26 15:04:21 · 1010 阅读 · 0 评论 -
InnoDB特性之两次写(Double Write)
在对缓冲池的脏页进行刷新时,并不直接写磁盘,而是会通过memcpy函数将脏页先复制到内存中的doublewrite buffer,之后通过doublewrite buffer再分两次,每次1MB顺序地写入共享表空间的物理磁盘上,然后马上调用fsync函数,同步磁盘,避免缓冲写带来的问题。这样就可以解决上文提到的部分写失效的问题,因为在磁盘共享表空间中已有数据页副本拷贝,如果数据库在页写入数据文件的过程中宕机,在实例恢复时,可以从共享表空间中找到该页副本,将其拷贝覆盖原有的数据页,再应用重做日志即可。原创 2024-02-22 11:44:53 · 518 阅读 · 0 评论 -
MySQL NULL值处理
MySQL NULL值处理。原创 2023-12-22 16:29:00 · 157 阅读 · 0 评论 -
mysql驱动和druid连接池总结
在Spring Boot应用程序中,你需要在pom.xml文件中添加druid-spring-boot-starter的依赖,然后在yml或properties文件中配置Druid的相关信息(如initialSize、minIdle、maxActive等)。在这个配置中,spring.datasource.url、username、password和driver-class-name是mysql-connector-java的配置,type和druid下的配置是druid的配置。原创 2023-12-15 16:15:15 · 480 阅读 · 0 评论 -
报错:merge sql error, dbType mysql, sql : select...
使用Mybatis和druid连接池报错merge sql error, dbType mysql, sql : select原创 2023-12-11 10:06:36 · 1275 阅读 · 0 评论 -
mysql存储varchar类型的字符串如何按照数字大小排序
mysql存储varchar类型的字符串如何按照数字大小排序原创 2023-12-11 09:59:48 · 1524 阅读 · 0 评论 -
mysql数据库中的join查询
mysql数据库中的join查询。转载 2023-11-30 14:32:42 · 72 阅读 · 0 评论 -
命令行导入、导出sql脚本
source /home/web/app/xxx路径/ry_vue.sql;(source后是sql脚本的路径)mysql -u用户名 -p密码。3.导入ry_vue.sql脚本。原创 2023-11-13 11:38:45 · 951 阅读 · 5 评论