![](https://img-blog.csdnimg.cn/fd6917a339ca4aceb667f8b97ad502e5.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据库
文章平均质量分 50
全面介绍Mysql、PostgreSQL、Oracle、OceanBase、Kingbase、达梦数据库的安装部署和运行维护
shangjg3
这个作者很懒,什么都没留下…
展开
-
MySQL实现同一语句中先查后改
MySQL中You can't specify target table for update in FROM clause错误的意思是说,不能先select出同一表中的某些值,再update这个表(在同一语句中)。You can't specify target table for update in FROM clause含义:不能在同一表中查询的数据作为同一表的更新数据。我想查询t_user_asset的余额加上50000作为更新字段f_cashAmount的值,这样写是不行的。原创 2024-06-12 04:00:00 · 412 阅读 · 0 评论 -
MySQL查询ab字段相同取时间最大的一条数据
在实际应用中,经常会遇到需要查询某个字段相同的多条数据中,取时间最大的一条数据的需求。代码使用了MySQL的子查询语法和IN关键字,保证了查询结果只包含a和b字段相同的数据,并且时间最大。首先,我们可以编写一个子查询语句,用于查询出a和b字段相同的数据。然后,在子查询的基础上,再进行排序,以获取时间最大的一条数据。MySQL的功能非常强大,除了子查询和排序,还有许多其他功能可以满足各种复杂的查询需求。我们的目标是查询出a和b字段相同的数据中,时间最大的一条数据。子查询,通过a、b分组并获取时间的最大值。原创 2024-06-12 03:00:00 · 304 阅读 · 0 评论 -
MySQL数据库事务
持久性是通过事务日志来保证的。REPEATABLE READ:可重复读,事务A在读到一条数据之后,此时事务B对该数据进行了修改并提交,那么事务A再读该数据,读到的还是原来的内容。当事务处在活动的或者部分提交的状态时,可能遇到了某些错误(数据库自身的错误、操作系统错误或者直接断电等)而无法继续执行,或者人为的停止当前事务的执行,我们就说该事务处在失败的状态。事务的隔离性是指一个事务的执行不能被其他事务干扰,即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。原创 2023-11-07 16:08:50 · 100 阅读 · 0 评论 -
MySQL数据库调优策略
如果MySql的连接数达到max_connections时,新来的请求将会被存在堆栈中,以等待某一连接释放资源,该堆栈的数量即back_log,如果等待连接的数量超过back_log,将不被授予连接资源,将会报错。一个表使用了这些字段的数据类型,若已经删除了表的一大部分数据,或者已经对含有可变长度行的表(含有VARCHAR、BLOB或TEXT列的表)进行了很多更新,则应使用OPTIMIZE TABLE来重新利用未使用的空间,并整理数据文件的碎片。当然,这个值不是越大越好,它的大小取决于内存的大小。原创 2023-11-07 15:39:24 · 109 阅读 · 0 评论 -
MySQL索引的数据结构
不论是叶子节点中的记录,还是内节点中的记录(也就是不论是用户记录还是目录项记录)都是按照索引列的值从小到大的顺序而形成了一个单向链表。这样我们再插入记录(9, 1, 'c')时,由于页3中存储的目录项记录是由c2列+主键+页号的值构成的,可以先把新记录的c2列的值和页3中各目录项记录的c2列的值作比较,如果c2列的值相同的话,可以接着比较主键值,因为B+树同一层中不同目录项记录的c2列+主键的值肯定是不一样的,所以最后肯定能定位唯一的一条目录项记录,在本例中最后确定新记录应该被插入到页5中。原创 2023-11-07 09:55:08 · 211 阅读 · 1 评论 -
MySQL性能分析工具的使用
不论我们的查询语句有多复杂,包含了多少个表 ,到最后也是需要对每个表进行单表访问的,所以MySQL规定EXPLAIN语句输出的每条记录都对应着某个单表的访问方法,该条记录的table列代表着该表的表名(有时不是真实的表名字,可能是简称)。所以说,遇到I/O并不用担心,方法找对了,效率还是很高的。如果我们从磁盘中对单一页进行随机读,那么效率是很低的(差不多10ms),而采用顺序读取的方式,批量对页进行读取,平均一页的读取效率就会提升很多,甚至要快于单个页面在内存中的随机读取。对新连接的客户端有效。原创 2023-11-06 20:09:21 · 460 阅读 · 0 评论 -
MySQL索引优化与查询优化
不再是逐条获取驱动表的数据,而是一块一块的获取,引入了join buffer缓冲区,将驱动表join相关的部分数据列(大小受join buffer的限制)缓存到join buffer中,然后全表扫描被驱动表,被驱动表的每一条记录一次性和join buffer中的所有驱动表记录进行匹配(内存中操作),将简单嵌套循环中的多次比较合并成一次,降低了被驱动表的访问频率。优化器是基于什么的优化器?对于多列索引,**过滤条件要使用索引必须按照索引建立时的顺序,依次满足,一旦跳过某个字段,索引后面的字段都无法被使用。原创 2023-11-06 03:00:00 · 254 阅读 · 0 评论 -
MySQL索引的创建与设计原则
也就是说,**在记录行数一定的情况下,列的基数越大,该列中的值越分散;从MySQL 8.x开始支持隐藏索引(invisible indexes),只需要将待删除的索引设置为隐藏索引,使查询优化器不再使用这个索引(即使使用force index(强制使用索引),优化器也不会使用该索引),确认将索引设置为隐藏索引后系统不受任何响应,就可以彻底删除索引。索引本身可以起到约束的作用,比如唯一索引、主键索引都可以起到唯一性约束的,因此在我们的数据表中,如果某个字段是唯一的,就可以直接创建唯一性索引,或者主键索引。原创 2023-11-05 22:48:43 · 180 阅读 · 0 评论 -
MySQL存储引擎 、索引、锁、事务和设计范式总结
1. 常见存储引擎1.1InnoDBInnoDB是MySQL5.5之后默认的存储引擎,它具有高可靠、高性能的特点,主要具备以下优势:DML操作完全遵循ACID模型,支持事务,支持崩溃恢复,能够极大地保护用户的数据安全;支持多版本并发控制,它会保存数据的旧版本信息,从而可以支持并发和事务的回滚;支持行级锁,支持类似Oracle的一致性读的特性,从而可以承受高并发地访问;InnoDB组织数据时默认按照主键进行聚簇,从而可以提高主键查找的效率。对于频繁访问的数原创 2023-11-02 14:14:24 · 81 阅读 · 0 评论 -
MySQL load data infile导入数据主键重复怎么解决
以上代码中,“REPLACE”关键字表示如果发现重复的行,就用新的数据替换旧的数据。这种方法的缺点是如果旧的数据还有其它表与其关联,就会影响其它表的数据。以上代码中,“IGNORE”关键字表示在导入数据时忽略重复的行,直接跳过。这种方法的缺点是如果有重要的数据被忽略了,就很难恢复。原创 2023-09-22 15:22:57 · 811 阅读 · 0 评论 -
MySQL 导入数据速度提升
在MySQL导入数据之前,禁用表中的所有约束和索引可以显著提高导入速度。在导入完成后,可以重新启用它们。2.使用LOAD DATA INFILE命令。3.使用BULK INSERT命令。4.利用多个cpu处理器。原创 2023-08-29 14:31:16 · 1268 阅读 · 0 评论 -
Mysql运维问题汇总
修改/etc/my.cnf的[mysqld]配置。mysql客户端执行(临时生效)1.Mysql配置允许创建函数。原创 2023-08-22 10:22:58 · 67 阅读 · 0 评论 -
observer进程CPU占用高的原因
目前observer在启动后会启动不少的后台线程来定期处理任务,其中有部分循环频率较高,每次循环均会消耗部分CPU资源,从而导致observer整体上消耗将近两个核的情况。当数据表以及对应分区较多的情况下,可能会消耗更多的CPU资源。oceanbase部署好之后,没有业务使用observer的CPU占用率却达到了200%-400%,是什么原因呢?暂时没有较好的解决方法,虽然可以通过关闭部分功能来减少CPU消耗,但常规使用下不建议关闭。原创 2023-08-17 16:27:22 · 214 阅读 · 0 评论 -
PostgreSQL导入导出SQL
U :有数据库操作权限的用户。-f:sql文件存放的路径。-d:数据库中的一个库名。#使用pgsql客户端。原创 2023-08-07 10:07:25 · 2451 阅读 · 0 评论 -
PostgreSQL源码编译安装
【代码】Postgresql 15.3 源码编译安装。原创 2023-08-02 11:24:04 · 250 阅读 · 1 评论 -
PostgreSQL 10.23 离线安装
【代码】postgresql 10.23 二进制tar包安装。原创 2023-08-02 10:38:33 · 665 阅读 · 1 评论 -
MySQL配置远程访问
【代码】mysql配置远程访问。原创 2023-07-31 10:34:57 · 43 阅读 · 0 评论 -
MySQL 一键离线安装脚本
【代码】mysql 二进制tar包一键安装脚本。原创 2023-07-31 09:12:49 · 308 阅读 · 1 评论 -
MySQL 源码编译安装
mysql-5.7.42-src目录,安装到/data/base/mysql-5.7.42目录。首先将源码移动到/data/base/最好是下载包含boost库的版本。3.添加mysql用户组和用户。6.配置mysql启动服务。4.解压源码,编译和安装。2.安装编译工具和依赖。5.初始化mysql。原创 2023-07-31 10:28:04 · 262 阅读 · 1 评论