mysql
文章平均质量分 59
都是底层
这个作者很懒,什么都没留下…
展开
-
mysql性能莫名抖动
第一个,可能buffer pool的缓存页都满了,此时你执行一个SQL查询很多数据,一下子要把很多缓存页flush到磁盘上去,刷磁盘太慢了,就会导致你的查询语句执行的很慢。因为你必须等很多缓存页都flush到磁盘了,你才能执行查询从磁盘把你需要的数据页加载到buffer pool的缓存页里来。第二个,可能你执行更新语句的时候,redo log在磁盘上的所有文件都写满了,此时需要回到第一个redo log文件覆盖写,覆盖写的时候可能就涉及到第一个redo log文件里有很多redo log日志对应的更新操原创 2021-07-30 11:24:18 · 1312 阅读 · 0 评论 -
mysql 数据库压测
数据库压测工具给大家介绍一个非常好用的数据库压测工具,就是sysbench,这个工具可以自动帮你在数据库里构造出来大量的数据,你想要多少数据,他就自动给你构造出来多少条数据。然后这个工具接着可以模拟几千个线程并发的访问你的数据库,模拟使用各种各样的SQL语句来访问你的数据库,包括模拟出来各种事务提交到你的数据库里去,甚至可以模拟出几十万的TPS去压测你的数据库在linux上安装sysbench工具首先你需要有一台linux机器,如果你只有一个windows笔记本电脑,可以在里面装一个lin原创 2021-07-27 10:34:42 · 1446 阅读 · 0 评论 -
mysql整体执行流程
原创 2021-07-23 11:43:11 · 1449 阅读 · 0 评论 -
mysql InnoDB行锁的三种算法 随记1
3种锁算法Record Lock:单个行记录上的锁Gap Lock:间隙锁,锁定一个范围,但不包含记录本身Next-Key Lock:Gap Lock + Record Lock,锁定一个范围,并且锁定记录本身Record LockRecord Lock总是会去锁住索引记录,如果InnoDB存储引擎表在建立的时候没有设置任何一个索引,那么这时InnoDB存储引擎会使用隐式的主键来进行锁定。Next-Key LockNext-Key Lock是结合了Gap Lock 和 Record原创 2021-05-19 17:11:54 · 2195 阅读 · 1 评论 -
两张表查询没有分配任务的单子
订单表CREATE TABLE `order_info` ( `id` bigint(22) NOT NULL AUTO_INCREMENT COMMENT '主键', `order_no` varchar(32) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=151103 DEFAULT CHARSET=utf8mb4 COMMENT='订单信息表 ';任务表CREATE TABLE `order_col原创 2020-12-23 23:14:26 · 2944 阅读 · 0 评论 -
mysql 删除不了库
由于在9月30号粗暴地打断了一个导入进程,今天发现MySQL竟然不能启动了,只好卸载重装(也许可以花些时间查找问题,但是这个来的更快些)。重启导入进程,却出现了数据库已存在的提示信息。于是就进入命令行窗口dropdatabase myapp,可是却得到了ERROR 1010 (HY000): Error dropping database(can’t rmdir ‘./myapp’, errno: 39)的错误信息。解决方法:删除/var/lib/mysql/myapp下面的所有文件,不要删除mya.原创 2020-12-02 18:59:07 · 3468 阅读 · 0 评论 -
数据库服务器使用的RAID存储架构初步介绍
一般来说,很多数据库部署在机器上的时候,存储都是搭建的RAID存储架构,其实这个RAID很多人以为非常的深奥,确实这个概念比较难以理解,而且说深了其实里面的技术含量很高,但是如果简单说一下,也是每个人都能理解的。说白了,RAID就是一个磁盘冗余阵列,什么意思呢? 假设我们的服务器里的磁盘就一块,那万一一块磁盘的容量不够怎么办?此时是不是就可以再搞几块磁盘出来放在服务器里现在多搞了几块磁盘,机器里有很多块磁盘了,不好管理啊,怎么在多块磁盘上存放数据呢?所以就是针对这个问题,在存储层面往往会在机器里搞.原创 2020-11-28 17:46:57 · 4155 阅读 · 2 评论 -
数据库常见面试题sql
建表语句课程表SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------ Table structure for cource-- ----------------------------DROP TABLE IF EXISTS `cource`;CREATE TABLE `cource` ( `cno` int(11) NOT NULL AUTO_INCREMENT, `cname`原创 2020-09-02 14:12:27 · 3390 阅读 · 0 评论 -
mysql优化流程
优化流程先排除缓冲sql nocache 1. SELECT SQL_NO_CACHE * FROM TABLE 2. SHOW VARIABLES LIKE 'query_cache_type'; SET SESSION query_cache_type = OFF;预发跑sql explain看一下行数对不对,不对可以用analyze table tableName矫正添加索引 索引不一定是最优的 force index存在回表的情况,覆盖索引避免回表,不原创 2020-08-21 11:35:03 · 3163 阅读 · 0 评论 -
mysql创建表是字段类型的选择
整数类型可以使用的几种整数类型:TINYINT,SMALLINT,MEDIUMINT,INT,BIGINT分别使用8,16,24,32,64位存储空间。尽量使用满足需求的最小数据类型字符和字符串类型varchar根据实际内容长度保存数据1、使用最小的符合需求的长度。2、varchar(n) n小于等于255使用额外一个字节保存长度, n>255使用额外两个字节保存长度。3、varchar(5)与varchar(255)保存同样的内容,硬盘存储空间相同,但内存空间占用不同,是指原创 2020-05-25 17:10:14 · 4003 阅读 · 0 评论 -
mysql 5.7修改简单密码
现象:设置简单密码会报错:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements原因:原来MySQL5.6.6版本之后增加了密码强度验证插件validate_password,相关参数设置的较为严格。使用了该插件会检查设置的密码是否符合当前设置的强度规则,若不满足则拒绝设置。影响的语句和函数有:create user,grant,set password,password(),old pass原创 2020-05-18 15:16:32 · 4114 阅读 · 0 评论 -
事务的隔离级别和数据库的事务机制
事务的隔离级别① 脏读: 脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。② 不可重复读:是指在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,那么第一个事务两次读到的的数据可能是不一样的。这样就发生了在一个...原创 2019-02-16 17:00:57 · 3801 阅读 · 0 评论