
MySQL
文章平均质量分 89
数据搜集者
这个作者很懒,什么都没留下…
展开
-
MySQL 在并发场景下的问题及解决思路
对于数据库系统来说在多用户并发条件下提高并发性的同时又要保证数据的一致性一直是数据库系统追求的目标,既要满足大量并发访问的需求又必须保证在此条件下数据的安全,为了满足这一目标大多数数据库通过锁和事务机制来实现,MySQL 数据库也不例外。尽管如此我们仍然会在业务开发过程中遇到各种各样的疑难问题,本文将以案例的方式演示常见的并发问题并分析解决思路。转载 2023-10-06 17:23:08 · 673 阅读 · 0 评论 -
Mysql 高性能优化规范建议
原因:索引 NULL 列需要额外的空间来保存,所以要占用更多的空间进行比较和计算时要对 NULL 值做特别的处理。转载 2023-10-06 17:08:38 · 102 阅读 · 0 评论 -
浅析 MySQL 8 忘记密码处理方式
对 MySQL 有研究的读者,可能会发现 MySQL 更新很快,在安装方式上,MySQL 提供了两种经典安装方式:解压式和一键式,虽然是两种安装方式,但我更提倡选择解压式安装,不仅快,还干净。在操作系统上,MySQL 也支持多类型操作系统,如 linux,windows 等,如下为 MySQL 几个重大变化的操作系统。mysqld --init-file=c:\mysql\ResetPWD.txt --console,执行完毕后,关闭 dos 窗口。内容三:忘记密码重置密码解决方案二。转载 2023-10-06 16:53:48 · 1757 阅读 · 0 评论 -
Docker 搭建 MySQL 服务
要搭建服务就要启动服务容器,要创建容易就要有镜像,Docker 提供了一个类似 Github 的开源平台,提供开源镜像,放心可靠。前面我们已经安装好了 Docker,也简单了解了 Docker。这里我使用 navicat 远程连接,连接 MySQL 前需要防火墙开放端口或者关闭防火墙。上图可以看到容器的简写 ID,容器的源镜像,创建时间,状态,端口映射信息,容器名字等。注意,若提示拉取失败就重复几次,总有一次会成功的。连接成功,也可以进行相关数据库操作,因此 MySQL 服务搭建成功!转载 2023-10-06 16:48:26 · 74 阅读 · 0 评论 -
(MariaDB)MySQL 数据类型详解和存储机制
因为整数值存储时是直接通过 bit 计算数值的,0-255 之间的任意整数都只占一个字节,256-65535 之间的任意整数都占 2 个字节,而占用 4 个字节时便可以代表几十亿个整数之间的任意一个,这显然比字符型存储时每个字符占用一个字节节省空间的多。时,由于第一个和最后一个都会截断为空数据,所以它们的 index 为 0,插入的 NULL 的 index 为 NULL,插入的'b','a','c'的 index 值分别为 2,1,3。当然,这是一个很粗犷的概念,更具体的存储方式见下面的描述。转载 2023-10-06 16:44:13 · 414 阅读 · 0 评论 -
查询性能优化 深入理解 MySql 如何执行查询
本篇深入了解查询优化和服务器的内部机制,了解 MySql 如何执行特定查询,从中也可以知道如何更改查询执行计划,当我们深入理解 MySql 如何真正地执行查询,明白高效和低效的真正含义,在实际应用中就能扬长避短。声明:本人使用的数据库版本为 MySql 5.1。转载 2023-10-05 20:37:57 · 116 阅读 · 0 评论 -
mysql 共享锁与排他锁
排他锁又称为写锁,简称 X 锁,顾名思义,排他锁就是不能与其他所并存,如一个事务获取了一个数据行的排他锁,其他事务就不能再获取该行的其他锁,包括共享锁和排他锁,但是获取排他锁的事务是可以对数据就行读取和修改。然后我们提交数据,释放排他锁看下修改后的数据,此时可用排他查,共享查和普通查询, 因为事务提交后该行数据释放排他锁,下面就只显示普通查询,其他的同学们自己去验证。此时共享查询处于阻塞,等待排它锁的释放,但是用普通查询能查到数据,因为没用上锁机制不与排他锁互斥,但查到的数据是修改数据之前的老数据。转载 2023-10-05 20:24:43 · 310 阅读 · 0 评论 -
mysql的查询、子查询及连接查询
左连接时,mingoods表(左表)不动,category表(右表)根据条件去一条条匹配,虽说category表也是读取一行行记录,然后判断cat_id是否跟mingoods表的相同,但是,左连接使用了索引,cat_id建立了索引的话,查询速度非常快,所以整体效率相比于全相乘要快得多,全相乘没有使用索引。5、连接查询时,虽说也是读取一行行记录,然后判断是否满足条件,但是,连接查询使用了索引,条件列建立了索引的话,查询速度非常快,所以整体效率相比于全相乘要快得多,全相乘是没有使用索引的。转载 2023-10-05 20:18:25 · 1047 阅读 · 0 评论 -
MySQL · 引擎特性 · InnoDB Buffer Pool
用户对数据库的最基本要求就是能高效的读取和存储数据,但是读写数据都涉及到与低速的设备交互,为了弥补两者之间的速度差异,所有数据库都有缓存池,用来管理相应的数据页,提高数据库的效率,当然也因为引入了这一中间层,数据库对内存的管理变得相对比较复杂。本文主要分析 MySQL Buffer Pool 的相关技术以及实现原理,源码基于阿里云 RDS MySQL 5.6 分支,其中部分特性已经开源到 AliSQL。原创 2023-10-05 18:59:36 · 115 阅读 · 0 评论 -
Mysql 索引查询失效的情况
索引是不索引空值的,所以这样的操作不能使用索引,可以用其他的办法处理,例如:数字类型,判断大于 0,字符串类型设置一个默认值,判断是否等于默认值即可。可以使用 explain 命令加在要分析的 sql 语句前面,在执行结果中查看 key 这一列的值,如果为 NULL,说明没有使用索引。当 or 左右查询字段只有一个是索引,该索引失效,只有当 or 左右查询字段均为索引时,才会生效。8、当全表扫描速度比索引速度快时,mysql 会使用全表扫描,此时索引失效。3、组合索引,不是使用第一列索引,索引失效。原创 2023-10-05 14:49:47 · 314 阅读 · 0 评论 -
MySQL 索引
为何要有索引? 一般的应用系统,读写比例在 10:1 左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,因此对查询语句的优化显然是重中之重。说起加速查询,就不得不提到索引了。什么是索引? 索引在 MySQL 中也叫做 “键” 或者 "key"(primary key,unique key,还有一个 index key),是存储引擎用于快速找到记录的一种数据结构。转载 2023-10-05 14:10:49 · 64 阅读 · 0 评论 -
学习 MySQL 优化原理,这一篇就够了
理解查询是如何执行以及时间都消耗在哪些地方,再加上一些优化过程的知识,可以帮助大家更好的理解 MySQL,理解常见优化技巧背后的原理。希望本文中的原理、示例能够帮助大家更好的将理论和实践联系起来,更多的将理论知识运用到实践中。其他也没啥说的了,给大家留两个思考题吧,可以在脑袋里想想答案,这也是大家经常挂在嘴边的,但很少有人会思考为什么?有非常多的程序员在分享时都会抛出这样一个观点:尽可能不要使用存储过程,存储过程非常不容易维护,也会增加使用成本,应该把业务逻辑放到客户端。转载 2023-10-05 13:46:23 · 69 阅读 · 0 评论 -
mysql 中 utf8 和 utf8mb4 区别
当使用 utf8 字符集时,需要保留的长度就是 utf8 最长字符长度乘以字符串长度,所以这里理所当然的限制了 utf8 最大长度为 3,比如 CHAR(100) Mysql 会保留 300 字节长度。至于后续的版本为什么不对 4 字节长度的 UTF-8 字符提供支持,我想一个是为了向后兼容性的考虑,还有就是基本多文种平面之外的字符确实很少用到。utf8 是 Mysql 中的一种字符集,只支持最长三个字节的 UTF-8 字符,也就是 Unicode 中的基本多文本平面。原创 2023-10-05 13:29:01 · 350 阅读 · 0 评论 -
MySQL 函数
返回一个字符串,在这里对于在 “bits” 中设定每一位,你得到一个 “on” 字符串,并且对于每个复位 (reset) 的位,你得到一个 “off”字符串。CASE 表示函数开始,END 表示函数结束。如果 e1 成立,则返回 v1, 如果 e2 成立,则返回 v2,当全部不成立则返回 vn,而当有一个成立之后,后面的就不执行了。如果 count 是负数,返回第 (count 的绝对值(从右边数)) 个字符右边的字符串。字符串函数是 MySQL 中最常用的一类函数,字符串函数主要用于处理表中的字符串。原创 2023-10-05 13:26:09 · 50 阅读 · 0 评论