![](https://img-blog.csdnimg.cn/2019091813595558.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
MySQL
文章平均质量分 51
mysql学习指南
袅沫
以梦为马,以汗为泉。鲜衣怒马,不负韶华。
展开
-
MySQL优化02——分页、分组、排序
where 条件和Order by 使用相同的索引,并且Order By 的顺序和索引顺序相同, 并且Order by 的字段都是升序,或者都是降序。一个常见又非常头疼的问题就是 limit 2000000,10 ,此时需要MySQL排序前2000010 记录,仅仅返回2000000 - 2000010 的记录,其他记录丢弃,查询排序的代价非常大。通过创建合适的索引,能够减少 Filesort 的出现,但是在某些情况下,条件限制不能让Filesort消失,那就需要加快 Filesort的排序操作。原创 2024-05-24 10:20:18 · 1134 阅读 · 0 评论 -
Error attempting to get column ‘sendTime‘ from result set. Cause: java.sql.SQLException: Error
【代码】Error attempting to get column ‘sendTime‘ from result set. Cause: java.sql.SQLException: Error。原创 2024-04-25 09:40:18 · 321 阅读 · 3 评论 -
使用Mybatis映射时间 DateTime ==> LocalDateTime
此处有弊端,请移步下一篇……service:接口。原创 2024-04-25 09:34:44 · 990 阅读 · 0 评论 -
MySQL如何使用某个表中的字段与字符串(使用逗号拼接)集合相匹配 FIND_IN_SET()
FIND_IN_SET()函数用于在一个逗号分隔的字符串列表中查找一个值的位置。相比一定是解析出错了,一般情况下,都是字符串和数字匹配有误,或者是当初逻辑运算的问题,原创 2024-04-20 13:49:19 · 465 阅读 · 0 评论 -
MySQL中InnoDB的行级锁
排他锁(X):又称为写锁,简称X锁,排他锁就是不能与其他锁并存,如一个事务获取了一个数据行的排他锁,其他事务就不能再获取该行的其他锁,包括共享锁和排他锁,但是获取排他锁的事务是可以对数据就行读取和修改。共享锁(S):又称为读锁,简称S锁,共享锁就是多个事务对于同一数据可以共享一把锁,都能访问到数据,但是只能读不能修改。对于UPDATE、DELETE和INSERT语句,InnoDB会自动给涉及数据集加排他锁(X);可以通过以下语句显示给记录集加共享锁或排他锁。窗口B进行更新操作:(持续等待A释放资源)原创 2024-04-18 15:50:32 · 461 阅读 · 0 评论 -
MySQL事务的隔离级别
为了解决上述提到的事务并发问题,数据库提供一定的事务隔离机制来解决这个问题。数据库的事务隔离越严格,并发副作用越小,但付出的代价也就越大,因为事务隔离实质上就是使用事务在一定程度上“串行化” 进行,这显然与“并发” 是矛盾的。数据库的隔离级别有4个,由低到高依次为Read uncommitted、Read committed、Repeatable read、Serializable,这四个级别可以逐个解决脏写、脏读、不可重复读、幻读这几类问题。事务具有以下4个特性,简称为事务ACID属性。原创 2024-04-18 15:32:33 · 235 阅读 · 0 评论 -
MySQL 锁
锁是计算机协调多个进程或线程并发访问某一资源的机制(避免争抢)。在数据库中,除传统的计算资源(如 CPU、RAM、I/O 等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。原创 2024-04-18 15:27:45 · 619 阅读 · 0 评论 -
MySQL 在Linux系统中的===>内存管理及优化
如果MySql的连接数达到max_connections时,新来的请求将会被存在堆栈中,以等待某一连接释放资源,该堆栈的数量即back_log,如果等待连接的数量超过back_log,将不被授予连接资源,将会报错。对于需要做排序的myisam表的查询,如带有order by子句的sql,适当增加 read_rnd_buffer_size 的值,可以改善此类的sql性能。但需要注意的是 read_rnd_buffer_size 是每个session独占的,如果默认值设置太大,就会造成内存浪费。原创 2024-04-18 14:38:53 · 276 阅读 · 0 评论 -
MySQL开启缓存,以及如何使用缓存
首先在配置文件中,my.ini 添加配置配置完成后,重启服务:默认缓存是关闭的状态:现在查看缓存状态: 查看缓存状态:各个变量的含义如下:MySQL的查询缓存默认是关闭的,需要手动配置参数 query_cache_type , 来开启查询缓存。query_cache_type 该参数的可取值有三个 : 当执行查询操作时: 查看缓存状态: 缓存个数增加:当再次查询时,不会新增缓存:但是命中次数加一,说明,该查询是从缓存中捞取的数据:可以在SELECT语句中指定两个与查询缓存相关的选项原创 2024-04-18 14:36:27 · 1820 阅读 · 0 评论 -
MySQL进阶 ==> 引擎选择&优化指南
每个MEMORY表实际对应一个磁盘文件,格式是.frm ,该文件中只存储表的结构,而其数据文件,都是存储在内存中,这样有利于数据的快速处理,提高整个表的效率。MEMORY的缺陷就是对表的大小有限制,太大的表无法缓存在内存中,其次是要确保表的数据可以恢复,数据库异常终止后表中的数据是可以恢复的。MERGE存储引擎是一组MyISAM表的组合,这些MyISAM表必须结构完全相同,MERGE表本身并没有存储数据,对MERGE类型的表可以进行查询、更新、删除操作,这些操作实际上是对内部的MyISAM表进行的。原创 2024-04-17 22:33:41 · 1700 阅读 · 0 评论 -
SQL优化,一次性插入百万条数据
因为InnoDB类型的表是按照主键的顺序保存的,所以将导入的数据按照主键的顺序排列,可以有效的提高导入数据的效率。如果应用使用自动提交的方式,建议在导入前执行 SET AUTOCOMMIT=0,关闭自动提交,导入结束后再执行 SET AUTOCOMMIT=1,打开自动提交,也可以提高导入的效率。在导入数据前执行 SET UNIQUE_CHECKS=0,关闭唯一性校验,在导入结束后执行SET UNIQUE_CHECKS=1,恢复唯一性校验,可以提高导入的效率。这种插入数据的方法,只能在dos窗口操作!原创 2024-04-17 20:08:53 · 841 阅读 · 0 评论 -
行列转化【附加面试题】
在MySQL中,行列转换是一种常见的操作。它包括行转列和列转行两种情况。原创 2024-01-17 20:26:32 · 527 阅读 · 0 评论 -
MySQL数据库中的创建用户以及用户权限管理
【代码】MySQL数据库中的用户权限管理。原创 2023-11-12 22:44:40 · 442 阅读 · 0 评论 -
MySQL之视图的使用及其规范
MySQL中的视图是一种虚拟的表,它是基于一个或多个实际表的查询结果。视图并不存储数据,而是在需要时动态地从基表中获取数据。视图的使用可以提高数据的安全性、简化复杂查询、提高查询性能等。例如,创建一个名为的视图,包含employees。原创 2023-11-12 21:35:10 · 66 阅读 · 0 评论 -
MySQL数据库中的事务隔离与其他并发事务的讲解
在MySQL中,事务隔离级别定义了事务与其他并发事务互相看见对方改变的数据的情况。SQL标准规定了: 当一个事务读取另一个事务尚的修改时,产生脏读;同一查询在同一事务中多次进行,由于其他事务所做的,每次返回不同的结果集,此时发生不可重复读;: 同一查询在统一事务中多次进行,有无其他提交事务所做的操作,每次返回不同的结果集,此时发生幻读。注意事项:将两表同时开启事务 start trancaction;如果在A未提交时,B控制台读到,A控制台未提交时的数据,证明脏读;原创 2023-11-11 23:49:48 · 125 阅读 · 1 评论 -
MySQL中事务的使用方式
在介绍回退事务前,先介绍一下保存点(savepoint). 保存点是事务中的点,用于取消部分事务,当结束事务时(commit),会自动的删除该事务所定义的所有保存点,当执行退回事务时,通过指定保存点可以回退到指定的点。使用commit语句可以提交事务,当执行了commt语句后,会确认事务的变化、结束事务、删除保存点、释放锁、数据生效。当使用commit语句结束事务子后,其他[]会话可以查看到事务变化后的新数据[]所有数据就正式生效].原创 2023-11-11 21:32:18 · 78 阅读 · 0 评论 -
MySQL中的自增长auto_increment
【代码】MySQL中的自增长auto_increment。原创 2023-11-10 21:40:06 · 284 阅读 · 0 评论 -
数据库中check的语法分析
但是在高版本的check语句,是生效的。,只做语法校验,但不会生效。-- 演示check的使用。原创 2023-11-10 12:17:26 · 184 阅读 · 0 评论 -
在MySQL中,FOREIGN KEY的使用
在MySQL中,可以使用FOREIGN KEY约束来定义表之间的关系。FOREIGN KEY约束用于确保在一个表中的数据与另一个表中的数据的完整性和一致性。原创 2023-11-10 11:58:32 · 145 阅读 · 0 评论 -
MySQL中的unique的使用
如果没有指定not null,则unique 字段可以有多个null。一张表可以有多个unique 字段。原创 2023-11-10 11:01:50 · 386 阅读 · 0 评论 -
MySQL中主键的定义规则
当再次插入主键为1的数据时,会报错。最后一条数据也是不能输入的。原创 2023-11-10 10:50:25 · 150 阅读 · 0 评论 -
MySQL的外连接的使用
在开发过程中,常常使用简单的连接,而外连接不经常使用,了解即可。原创 2023-11-10 10:20:44 · 36 阅读 · 0 评论 -
MySQL中的union的使用
MySQL中的UNION。并按照列的顺序进行排序。而UNION ALL。原创 2023-11-10 08:50:39 · 231 阅读 · 0 评论 -
MySQL的表格去重,史上最简便的算法,一看就会
上一条语句执行不通过,我也不知道为什么!原创 2023-11-09 23:10:21 · 574 阅读 · 0 评论 -
MySQL中表格的自我复制,与复制表格
先创建一个空表,my_tab01准备一张有数据的表格: 将另一张表格的数据插入到my_tab01的表格中: 查询结构如下: 现在进行表格的自我复制: 查询结果如下: 或者一句搞定: 现在进行表格的去重:#表格的去重-- 思路:-- 1.先创建一张临时表 my_tmp,该表的结构和my_tab02一样-- 2.把my_tmp的记录通过distinct关键字 处理后 把记录复制到 my_tmp-- 3.清除掉 my_tab02 记录-- 4.把m原创 2023-11-09 23:00:00 · 385 阅读 · 0 评论 -
MySQL代码子查询续集
查不出来,以下是正确代码示例。原创 2023-11-09 21:52:58 · 84 阅读 · 0 评论 -
MySQL中的多列子查询
- (字段1,字段2...) = (select 字段1,字段2 from ...)-- 如何查询与WOARD 的部门和岗位完全相同的所有雇员(并且不含smith本人)请查询 和宋江数学,语文,英语成绩完全相同的学生。原创 2023-11-09 20:42:51 · 252 阅读 · 0 评论 -
MySQL数据库中,all和any的使用
- 如何显示工资比部门为30的其中一个员工的工资高的员工的姓名、工资和部门号。-- 请思考:显示工资比部门30的所有员工的工资高的员工的姓名、工资和部门号。-- all 和 any 的使用。原创 2023-11-09 17:18:38 · 182 阅读 · 0 评论 -
表的自连接,以及表的子查询
【代码】表的自连接。原创 2023-11-09 16:38:50 · 47 阅读 · 0 评论 -
多表查询的使用
- 显示雇员名,雇员工资及所在部门的名字【笛卡尔集】3.需求对 emp 和 dept 查询。1.雇员名,雇员工资 来自emp表。2.部门的名字 来自 dept 表。原创 2023-11-09 16:20:45 · 51 阅读 · 0 评论 -
增强group by的使用
【代码】增强group by的使用。原创 2023-11-09 15:26:41 · 52 阅读 · 0 评论 -
-- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
【代码】-- 查询加强-- 使用如何where子句进行筛选,% _ like的使用。原创 2023-11-09 14:56:19 · 56 阅读 · 0 评论 -
使用MySQL指令进行分页显示:
将以上表单,进行分页显示,每页显示四行,显示4列。ORDER BY 进行排序【升序】LIMIT 进行分页显示。原创 2023-11-09 14:45:56 · 88 阅读 · 0 评论