![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
文章平均质量分 64
暮的秋歌
一名嵌入式开发工程师,熟悉stm32, linux
展开
-
phpmyadmin报错:mysqli_real_connect(): (HY000/2002): No such file or directory 错误正确解决方法
vim config.inc.php$cfg['Servers'][$i]['host'] = '127.0.0.1';原创 2024-06-05 12:39:41 · 192 阅读 · 0 评论 -
一文讲清楚MySQL事务隔离级别和实现原理,开发人员必备知识点
而在事务A提交之前,事务B也想 update 这行数据,于是申请行锁,但是由于已经被事务A占有,事务B是申请不到的,此时,事务B就会一直处于等待状态,直到事务A提交,事务B才能继续执行,如果事务A的时间太长,那么事务B很有可能出现超时异常。假设事务A对某些行的内容作了更改,但是还未提交,此时事务B插入了与事务A更改前的记录相同的记录行,并且在事务A提交之前先提交了,而这时,在事务A中查询,会发现好像刚刚的更改对于某些数据未起作用,但其实是事务B刚插入进来的,让用户感觉很魔幻,感觉出现了幻觉,这就叫幻读。转载 2024-01-25 22:16:24 · 61 阅读 · 0 评论 -
MySQL】MySQL有几种锁
2,Gap Lock(间隙锁):间隙锁,锁定一个范围,但不包括记录本身(只不过它的锁粒度比记录锁的锁整行更大一些,他是锁住了某个范围内的多个行,包括根本不存在的数据)。注意,由于其效果相当于(3, 5)上的gap lock加5上的record lock,而且gap lock是可重入的,相互不阻塞的(上文讲过),当其它事务试图获取(3, 5)的gap lock时,不会被阻塞;表级锁是mysql中锁定粒度最大的一种锁,表示对当前操作的整张表加锁,它实现简单,资源消耗较少,被大部分mysql引擎支持。转载 2022-11-19 16:42:24 · 3189 阅读 · 0 评论 -
go 连接 mysql: could not use requested auth plugin ‘mysql_native_password‘
文章目录 go 连接 mysql 问题go 连接 mysql 问题 参考官方文档 https://go.dev/doc/tutorial/database-access var db *sql.DBfunc main() {// Capture connection properties.cfg := mysql.Config{User: os.Getenv("DBUSER"),Passwd: os.Getenv("DBPASS…转载 2022-10-06 14:31:21 · 399 阅读 · 0 评论 -
mysql用户分配权限
给来自10.163.225.87的用户joe分配可对数据库vtdc的employee表进行select,insert,update,delete,create,drop等操作的权限,并设定口令为123。在mysql中用户权限是一个很重析 参数,因为台mysql服务器中会有大量的用户,每个用户的权限需要不一样的,下面我来介绍如何给mysql用户分配权限吧,有需要了解的朋友可参考。给来自10.163.225.87的用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。转载 2022-10-06 13:30:10 · 7023 阅读 · 0 评论 -
使用GO操作MongoDB的方法
更新时间:2022年05月11日 14:41:30 作者:hubb这篇文章主要介绍了使用GO操作MongoDB,包括安装MongoDB驱动程序连接mongodb的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下+目录。转载 2022-09-29 12:43:04 · 1025 阅读 · 0 评论 -
【MySQL】MySQL有几种锁
目录一、按照对数据操作的锁粒度来分:行级锁、表级锁、页级锁、间隙锁1 行级锁2 表级锁3 页级锁二、按照锁的共享策略来分:共享锁、排他锁、意向共享锁、意向排他锁innodb的意向锁有什么作用?三、从加锁策略上分:乐观锁和悲观锁四、其他:自增锁自增锁(AUTO-INC锁)外键检测的加锁策略MyISAM和MEMORY采用表级锁(table-level locking)BDB采用页面锁(page-level locking)或表级锁,默认为页面锁InnoDB支持行级锁(row-level locking)和表级锁转载 2022-09-05 06:58:08 · 93 阅读 · 0 评论 -
MySQL锁详解
一、全局锁 全局锁就是对整个数据库实例加锁。MySQL提供了一个加全局读锁的方法,命令是。当需要让整个库处于只读状态的时候,可以使用这个命令,之后其他线程的以下语句会被阻塞:数据更新语句(数据的增删改)、数据定义语句(包括建表、修改表结构等)和更新类事务的提交语句全局锁的典型使用场景是,做全库逻辑备份。也就是把整库每个表都select出来存成文本但是让整个库都只读,可能出现以下问题:在可重复读隔离级别下开启一个事务能够拿到一致性视图官方自带的逻辑备份工具是mysqldump。当mysqldump使用参数–转载 2022-09-05 06:55:48 · 111 阅读 · 0 评论 -
什么是幻读?以及如何解决幻读问题?
但同时你也可以看到,id=1这一行,在数据库里面的结果是(1,5,5),而根据binlog的执行结果是(1,5,100),也就是说幻读的问题还是没有解决。比较好理解的是,这个语句会命中d=5的这一行,对应的主键id=5,因此在select 语句执行完成后,id=5这一行会加一个写锁,而且由于两阶段锁协议,这个写锁会在执行commit语句的时候释放。这个语句序列,不论是拿到备库去执行,还是以后用binlog来克隆一个库,这三行的结果,都变成了 (0,5,100)、(1,5,100)和(5,5,100)。转载 2024-01-26 16:16:44 · 285 阅读 · 0 评论 -
Redis缓存和MySQL数据一致性的后端高并发架构解决方案
1.如果删除了缓存Redis,还没有来得及写库MySQL,另一个线程就来读取,发现缓存为空,则到数据库中读取数据,写入缓存,此时缓存中为脏数据。暂存并发读请求:在更新数据库时,先在 Redis 缓存客户端暂存并发读请求,等数据库更新完、缓存值删除后,再读取数据,从而保证数据一致性。结合双删策略+缓存超时设置,这样最差的情况,就是在超时时间内,数据存在不一致,而且又增加了写请求的耗时。2.如果先写了库,在删除缓存前,写库的线程宕机了,没有删除掉缓存,则也会出现数据不一致情况。转载 2022-09-05 06:39:55 · 214 阅读 · 0 评论 -
mySQL-mysql索引详解
性能低、执行时间太长、等待时间太长、连接查询、索引失效。(1)用户表(2)部门表(3)未触发索引(4)触发索引(5)结果分析explain中第一行出现的表是驱动表。指定了联接条件时,满足查询条件的记录行数少的表为[驱动表]未指定联接条件时,行数少的表为[驱动表]对驱动表直接进行排序就会触发索引,对非驱动表进行排序不会触发索引。(1)id:SELECT识别符。这是SELECT的查询序列号。SIMPLE: 简单SELECT(不使用UNION或子查询)PRIMARY: 最外面的SELECT。转载 2022-09-05 06:36:52 · 158 阅读 · 0 评论 -
golang操作mysql(go-sql-driver 包使用)
3、幻读:系统管理员A将数据库中所有学生的成绩从具体分数改为ABCDE等级,但是系统管理员B就在这个时候插入了一条具体分数的记录,当系统管理员A改结束后发现还有一条记录没有改过来,就好像发生了幻觉一样,这就叫幻读。2、不可重复读:事务 A 多次读取同一数据,事务 B 在事务A多次读取的过程中,对数据作了更新并提交,导致事务A多次读取同一数据时,结果 不一致。// db是线程安全的,并且在内部维护了数据池。1、脏读:事务A读取了事务B更新的数据,然后B回滚操作,那么A读取到的数据是脏数据。转载 2022-09-04 07:16:05 · 681 阅读 · 0 评论 -
MySQL索引常见面试题(2022版
目录为什么要建立索引?哪些情况适合建立索引?哪些情况下不适合建索引?为什么索引是使用B+树?(重点)索引分为那几类?什么是聚簇索引?(重点)使用聚簇索引的优缺点?(知道)为什么推荐使用自增主键作为索引?(知道)什么叫回表?(重点)什么叫索引覆盖?(重点)什么是最左前缀原则?(重点)MySQL索引失效的几种情况(重点)常见的索引优化手段有哪些?谈一下你对MySQL索引的理解?为什么要建立索引? 当在非常大的表中进行查询,如果数据库进行全表遍历的话那么速度是会非常慢的,转载 2022-08-31 17:43:33 · 65 阅读 · 0 评论 -
MySQL添加索引的五种方法
如果稍微分析一下会发现,每种查找算法都只能应用于特定的数据结构之上,例如二分查找要求被检索数据有序,而二叉树查找只能应用于二叉查找树上,但是数据本身的组织结构不可能完全满足各种数据结构(例如,理论上不可能同时将两列都按顺序进行组织),所以,在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。注意:如果删除的列是索引的组成部分,那么在删除该列时,也会将该列从索引中删除;一个表只有一个主键,主键也是一个索引。...转载 2022-08-31 17:41:55 · 3137 阅读 · 0 评论 -
mysql 创建索引的三种方式
版权声明:本文为CSDN博主「忠忠」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/qiannz/article/details/125271012。3、建表的时候创建索引。转载 2022-08-31 17:40:47 · 1019 阅读 · 0 评论 -
Redis缓存和MySQL数据一致性的后端高并发架构解决方案
Redisson 分布式锁:利用 Redis 的 hash 结构作为储存单元,将业务指定的名称作为 key,将随机 UUID 和线程 ID 作为 fleld,最后将加锁的次数作为 value 来储存,线程安全。1.如果删除了缓存Redis,还没有来得及写库MySQL,另一个线程就来读取,发现缓存为空,则到数据库中读取数据,写入缓存,此时缓存中为脏数据。暂存并发读请求:在更新数据库时,先在 Redis 缓存客户端暂存并发读请求,等数据库更新完、缓存值删除后,再读取数据,从而保证数据一致性。...转载 2022-08-31 17:17:29 · 260 阅读 · 0 评论 -
MySQL事务隔离级别和实现原理(看这一篇文章就够了!
而在事务A提交之前,事务B也想 update 这行数据,于是申请行锁,但是由于已经被事务A占有,事务B是申请不到的,此时,事务B就会一直处于等待状态,直到事务A提交,事务B才能继续执行,如果事务A的时间太长,那么事务B很有可能出现超时异常。假设事务A对某些行的内容作了更改,但是还未提交,此时事务B插入了与事务A更改前的记录相同的记录行,并且在事务A提交之前先提交了,而这时,在事务A中查询,会发现好像刚刚的更改对于某些数据未起作用,但其实是事务B刚插入进来的,让用户感觉很魔幻,感觉出现了幻觉,这就叫幻读。..转载 2024-01-26 16:18:13 · 593 阅读 · 0 评论 -
ERROR 1071 (42000): Specified key was too long; max key length is 1000 bytes
创建索引时报错,将mysql存储引擎改为innodb就可以了,原创 2022-08-30 12:42:52 · 593 阅读 · 0 评论 -
mysql添加索引语句_mysql 添加索引语句
原文链接:https://blog.csdn.net/weixin_35789559/article/details/113336810。版权声明:本文为CSDN博主「航知道」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。1.PRIMARY KEY(主键索引)4.FULLTEXT(全文索引)2.UNIQUE(唯一索引)3.INDEX(普通索引)...转载 2024-01-25 22:17:02 · 280 阅读 · 0 评论 -
ERROR 1071 (42000): Specified key was too long; max key length is 1000 bytes
存储引擎改为InnoDB就可以了。转载 2022-08-26 21:03:25 · 498 阅读 · 0 评论 -
深入剖析mysql原理
数据库索引,是数据库管理系统dbms中一个排序的数据结构,以协助快速查询、更新数据库表中数据。5、从任意节点出发,到其每个叶子节点的路径中包含相同数量的黑色节点。4、红色节点的两个子节点都是黑色(不允许两个相邻的红色节点)平衡二叉树:左右子树深度差绝对值不能超过1。3、叶子节点都是黑色的null节点。1、节点分为红色或者黑色。1、扫库、扫表能力更强。2、根结点必须是黑色的。2、磁盘读写能力更强。......原创 2022-08-26 14:02:53 · 53 阅读 · 0 评论 -
Mysql索引设计原则
此时你在where条件里搜索的时候,如果是根据name字段来搜索,那么此时就会先到索引树里根据 name 字段的前20个字符去搜索,定位到之后前20个字符的前缀匹配的部分数据之后,再回到聚簇索引提取出来 完整的name字段值进行比对。尽量建联合索引,减少单值索引,因为索引是占存储空间的。对于这种varchar(255)的大字段可能会比较占用磁盘空间,可以稍微优化下,比如针对这个字段的前20个字符建立索引,就是说,对这个字段里的每个值的前20个字符放在索引树里,类似于 KEY。转载 2022-08-24 13:39:46 · 103 阅读 · 0 评论 -
mysql登录报错:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)
首先解析此英文:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES);在MySQL登录时出现Access denied for user 'root'@'localhost' (using password: YES) 拒绝访问。解析的地方有两处:1.Access denied(拒绝访问);错误1045(28000):用户'root'@'localhost'(使用密码:YES)拒绝访问。转载 2022-08-23 18:37:11 · 166684 阅读 · 9 评论 -
Mac配置mysql提示zsh: command not found: mysql
安装完mysql,使用网上各种配置教程尝试后,输入mysql -u root -p,仍会出现:zsh: command not found: mysql的提示。1、在终端进入目录:/usr/local/bin。3、输入mysql -u root -p。2、在终端设置mysql命令路径。29 人赞同了该文章。转载 2022-08-23 18:33:29 · 625 阅读 · 0 评论 -
MySQL创建用户(3种方式)
MySQL 在安装时,会默认创建一个名为 root 的用户,该用户拥有超级权限,可以控制整个 MySQL 服务器。在对 MySQL 的日常管理和操作中,为了避免有人恶意使用 root 用户控制数据库,我们通常创建一些具有适当权限的用户,尽可能地不用或少用 root 用户登录系统,以此来确保数据的安全访问。MySQL 提供了以下 3 种方法创建用户。下面根据实例详细讲解这 3 种方法。转载 2022-08-23 18:30:59 · 4978 阅读 · 0 评论 -
Mysql索引设计原则
此时你在where条件里搜索的时候,如果是根据name字段来搜索,那么此时就会先到索引树里根据 name 字段的前20个字符去搜索,定位到之后前20个字符的前缀匹配的部分数据之后,再回到聚簇索引提取出来 完整的name字段值进行比对。尽量建联合索引,减少单值索引,因为索引是占存储空间的。对于这种varchar(255)的大字段可能会比较占用磁盘空间,可以稍微优化下,比如针对这个字段的前20个字符建立索引,就是说,对这个字段里的每个值的前20个字符放在索引树里,类似于 KEY。转载 2022-08-23 18:12:17 · 81 阅读 · 0 评论