首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

MySQL - 库了,但是很慢

mysql 上执行了一句 drop database 半天没有完成,详细的慢查询日志如下,那当时MySQL 在做什么呢?...如果我们从 linux 内核层面看,还是可以发现 mysql 这个时候在执行哪些函数的;从而达到更加细粒度的确认 MySQL 在做什么,进而回答 drop database 为什么慢。...可以看到在库时调用的是 mysql_rm_db 这个函数,而这个函数又调用了 mysql_rm_table_no_locks 函数,mysql_rm_table_no_locks 会去清理数据字典。...那库为什么会慢呢?回答这个问题还需要更加深入地分析才行。 ---- OFF-CPU 如果一个进程所依赖的所有资源都已经准备好,那它就可以被调度到 cpu 上执行。...我在分析清理文件的时候发现 vfs 并没有 rm_file 这样的 API ,而是采用“以写代” 的方式来完成删除操作; 也就是说操作系统并不直接去删除文件,而是把文件系统里面对应的 inode 标记为

2.3K20

MySQL中drop和delete用户场景

关于用户创建的文章,之前写过几篇《MySQL创建用户提示1396》《小白学习MySQL - 不同版本创建用户的些许区别》。 碰巧看到技术社群的这篇文章《同样是用户,为啥还有差别?》...在MySQL当中,对于删除用户的操作大家并不陌生,先来看看问题, # 创建用户testuser01 mysql> create user 'testuser01'@'%' identified by '...接着往下看, # 再次删除用户testuser01 mysql> delete from mysql.user where user = 'testuser01'; Query OK, 1 row affected...mysql> flush privileges; Query OK, 0 rows affected (0.01 sec) # 创建用户testuser01成功 mysql> create user '...分析  还是回到这条语句上,这条语句是创建一个用户'testuser01'@'%',在MySQL当中,这条语句在执行器执行时,大致上看成对mysql库的user表插入一条记录,既然是表,大可以先查查看,

17020

MySQL库到跑路(三)——SQL语言

db.student from 'wang'@'localhost'; 3、数据操作语言(DML) DML:Data Manipulation Language 用于操作数据库对象中所包含的数据,增、、...VERSION() 返回数据库的版本号 CONNECTION_ID() 返回服务器的连接数,也就是到现在为止mysql服务的连接次数 DATABASE(),SCHEMA() 返回当前数据库名 USER(...如果对一个字段存储了一个超出许可范围的数字,MySQL会根据允许范围最接近的一端截短后再进行存储。MySQL会在不合规定的值插入表前自动修改为0。 UNSIGNED 修饰符规定字段只保存正值。...没有冒号分隔符的TIME类型值,将会被MySQL理解为持续的时间,而不是时间戳。 MySQL还对日期的年份中的两个数字的值,或是SQL语句中为YEAR类型输入的两个数字进行最大限度的通译。...MySQL 会自动使用系统当前的日期和时间来填充它。

1.7K30

MySQL库到恢复,还用跑路吗?

]> insert into test values (4,'d'); Query OK, 1 row affected (0.00 sec) 3.数据库突然故障(其实是小伙伴没事儿库练手玩儿),数据无法访问...需要恢复备份: 库跑路: # 这里为了便于测试,不把库操作记入日志,当前 session 设置 sql_log_bin 为 off。...# 库后,执行 flush logs,让后续的 binlog 到新的文件中,即名为 mysql-bin.000003中 MySQL [t2]> set sql_log_bin = 0; Query OK...冷备份 冷备份其实就是停掉数据库服务,cp 数据文件的方法。(基本不考虑这种方法) 2. 热备份 在 MySQL 中,对于不同的存储引擎热备份的方法也有所不同。...:架构下静态数据通用缓存机制 微服务:小型系统如何“微服务”开发 微服务:深入理解为什么要设计幂等性的服务 中间件:应用消息中间件设计可以解决哪些实际问题?

1.3K50

MySQL库到跑路_高级(六)——索引

作者:天山老妖S 链接:http://blog.51cto.com/9291927 一、索引简介 1、索引简介 索引(Index)是帮助MySQL高效获取数据的数据结构。...在MySQL中,索引属于存储引擎级别的概念,不同存储引擎对索引的实现方式是不同的。...possible_keys:MySQL在搜索数据记录时可以选用的各个索引 key:实际选用的索引 key_len:显示MySQL使用索引的长度(使用的索引个数),当key字段的值为 null时,索引的长度就是...rows:MySQL在执行查询时预计会从数据表里读出的数据行的个数。 extra:提供与关联操作有关的信息。   ...MySQL只需要通过索引就可以返回查询所需要的数据,而不必在查到索引之后进行回表操作,减少IO,提供效率。

1.2K20

MySQL库到跑路(五)——SQL查询

select * from TStudent where sname like '%志%' or class='net'; 10、查询结果不重复 在SELECT语句中可以使用DISTINCE关键字指示MySQL...studentid<=10 union select studentid, sname from TStudent where sname like '王%'; 13、为表和字段取别名 为字段取别名 MySQL...MySQL不支持全外连接。可以通过左外和右外求合集来获取全外连接的查询结果。...三、对查询结果排序 MySQL中可以通过在SELECT使用ORDER BY子句对查询的结果进行排序。 1、单列排序 ASC代表结果会以由小往大的顺序列出,而 DESC 代表结果会以由大往小的顺序列出。...MySQL用WHERE子句对正则表达式提供了初步的支持,允许指定用正则表达式过滤SELECT检索出的数据。 在SQL查询语句中,查询条件REGEXP后所跟的东西作为正则表达式处理。

2.5K30

MySQL库到跑路(一)——MySQL数据库简介

目前Internet上流行的网站构架方式是LAMP(Linux+Apache+MySQL+PHP),即使用Linux作为操作系统,Apache作为Web服务器,MySQL作为数据库,PHP作为服务器端脚本解释器.../usr/bin #相关命令目录 /etc/init.d/mysql #启动脚本 8、MySQL服务端口开启 开启MySQL服务端口3306并保存 /sbin/iptables -I INPUT -p...服务器 使用telnet xx.xx.xx.xx 3306命令测试Windows客户端是否能连接MySQL服务器。...如果不能连接可能是Linux服务器的防火墙或是云主机的安全组限制。 12、关闭MySQL服务的域名解析功能 通常MySQL服务会对连接的客户端进行域名解析,影响访问MySQL的速度。...security riskssymbolic-links=0 skip-name-resolve 重启MySQL服务

2K20

如何将组件启动服务封装为系统服务

每个服务都有一个对应的systemd单元(.service文件),它包含了服务的配置信息和启动脚本。 systemctl命令可以与这些单元进行交互,来启动、停止、重启、启用或禁用服务。...主要参数说明: Description:主要填写服务的介绍,表明该服务的用途。 WorkingDirectory:启动命令的工作路径,一般配置为组件所在的安装路径。...StandardOutput:服务运行时日志的输出路径。 StandardError:服务运行时错误日志的输出路径。这里将错误日志与正常运行日志分开主要是为了当服务报错时,排查问题方便。...第四步:启动服务 当我们进行完前置步骤后,就可以使用systemctl命令来对我们安装的服务进行管理。...#启动服务 systemctl start grafana.service #停止服务 systemctl stop grafana.service #重启服务 systemctl restart grafana.service

11830
领券