MySQL
文章平均质量分 71
冲冲冲
陈岂几真幸运
冲冲冲
展开
-
Mysql 数据类型、运算符
数据类型的选择不是越大越好,因为我们业务层一般都是在内存上工作的,效率以及速度是比较快的,但是我们的数据库涉及磁盘的IO操作磁盘的IO操作相对来说是要慢很多的,所以我们在定义表结构的时候每一个字段的数据类型还是比较重要的。选择合适的类型,不仅会降低表占用磁盘空间,间接减少了磁盘IO的次数,提高了表的访问效率,而且索引的效率也和数据的类型息息相关。原创 2023-09-24 22:20:27 · 276 阅读 · 0 评论 -
MySQL 分库分表
仅仅是解决了单表数据过大的问题,但并没有把单表的数据分散到不同的物理机上,因此并不能减轻 MySQL 服务器的压力,仍然存在同一个物理机上的资源竞争和瓶颈,包括 CPU、内存、磁盘 IO、网络带宽等。单库太大:处理能力有限、所在服务器上的磁盘空间不足,遇到IO瓶颈,需要把库切分成更小的库。单表数据量过大,使用水平拆分,即把表的数据按照某种规则拆分成多张表。单表太大:CURD效率低,数据量太大导致查询超时,需要把单表拆分成多个数据集更小的表。当用户量级上升,写请求越来越多,怎么保证数据库的负载足够?原创 2023-06-18 10:21:21 · 50 阅读 · 0 评论 -
Mysql索引优化的方法
使用某个字段中字符串的前几个字符建立索引,为了减小索引字段大小,可以增加一个索引页中存储的索引值,有效提高索引的查询速度。在一些大字符串的字段作为索引时,使用前缀索引可以帮助我们减小索引项的大小。局限性:order by无法使用前缀索引;无法把前缀索引用作覆盖索引。原创 2023-06-17 13:07:38 · 167 阅读 · 0 评论 -
MySQL存储引擎
MEMORY 类型的表访问非常快,因为它的数据是放在内存中的,并且默认使 用 HASH 索引(不适合做范围查询),但是一旦服务关闭,表中的数据就会丢失掉。索引缓存和数据缓存:和MySQL Server的查询缓存相关,在没有对数据和索引做修改之前,重复查询 可以不用进行磁盘I/O(数据库的性能提升,目的是为了减少磁盘I/O操作来提升数据库访问效率),读取上一次内存中查询的缓存就可以了。事务:多个SQL语句,保证它们共同执行的原子操作,要么成功,要么失败,不能只成功一部分,失败 需要回滚事务。原创 2023-06-17 09:52:22 · 36 阅读 · 0 评论 -
结构化查询语句SQL
数据控制语句,用于控制不同的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户 的访问权限和安全级别。主要的语句关键字包括 grant、revoke 等。语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性,常用的语句关键字 主要包括 insert、delete、update 和select 等。语言,这些语句定义了不同的数据库、表、列、索引等数据库对象的定义。常用的语句关 键字主要包括 create、drop、alter等。sql是结构化查询语言,关系型数据库的通用语言。原创 2023-06-16 22:40:00 · 103 阅读 · 0 评论 -
2. MySQl范式设计
数据库范式不是越高越好,范式越高,意味着表越多,多表联合查询的几率越大,sql的效率就变低。表多歹来问题:1.查询时需要连接多个表,增加了sql查询的复杂度 2.查询时需要连接多个表降低数据库查询性能。原创 2023-05-18 21:45:17 · 39 阅读 · 0 评论 -
1.MySQl介绍
关系型数据库是一种基于的数据库,数据以的形式呈现,使用进行数据的管理和检索,每个表格包含若干行数据记录和若干列字段,每一列代表一种属性。不同表格之间通过,从而形成一个逻辑上的数据模型。原创 2023-05-12 14:50:45 · 364 阅读 · 0 评论 -
MySQL完整性约束
常用的完整性约束,可以用来指定一个整数列作为表的主键,并自动为每一行生成一个唯一的整数值。该约束只能用于整数类型的列,每次插入新行时,自增键的值会自动加1,确保每个值都是唯一的。定义表之间的引用关系,指定某个列是另一个表的主键或唯一索引,用来保证数据的一致性;指定某个列作为表的主键,用来唯一标识每一行数据,主键值必须唯一且不为空(一个表只有一个主键,不可以为空,为空报错)指定某个列的值必须是唯一的,不允许重复(一个表可以有多个唯一键,可以为空)指定某个列不允许为空值。原创 2023-05-10 10:52:12 · 728 阅读 · 0 评论 -
MySQL常用SQL
语言,这些语句定义了不同的数据库、表、列、索引等数据库对象的定义。常用的语句关 键字主要包括 create、drop、alter等。原创 2023-05-10 22:52:42 · 662 阅读 · 0 评论 -
MySQL读写分离
IP地址:保证master和slave之间的网络互通,并且保证3306端口是开放的。配置log_bin和全局唯一的server-id(不能和master 的server-id一样,每个MySQL的server-id必须是唯一的,配置完需要重启)通过show slave status命令查看主从复制状态。show processlist查看master和salve相关线程的运行 状态。原创 2023-05-09 22:35:30 · 733 阅读 · 0 评论 -
MySQL主从复制
实际生产环境中。如果对MySQL数据库的读写都在一台数据库服务器中操作,无论是再安全性、高可用性,还是高并发性等方面都不能满足实际需求,一般要通过主从复制的方式来同步数据,再通过读写分离来提升数据库的并发负载能力。1、数据备份 - 热备份&容灾&高可用2、读写分离,支持更大的并发。原创 2023-05-09 21:09:31 · 642 阅读 · 0 评论 -
一次SQL的完整处理流程
2.连接器验证MySQL权限信息是否正常,连接量是否正常,长时间没有连接服务器会自动断开等等;3. 然后到解析器,通过客户端发过来的sql进行语法解析,验证sql是否合法;执行器:调用存储引擎提供的API接口 进行数据读写操作, 执行SQL,返回结果。6.然后存储引擎花费磁盘IO进行数据读写,B+树索引构建、事务日志等;8.最后执行器,如果是查询操作,将结果在查询缓存中缓存一份返回给客户端。5.再到执行器调用存储引擎提供的API接口 进行数据读写操作;存储引擎:存储数据,提供读写接口。原创 2023-05-08 23:25:49 · 410 阅读 · 0 评论 -
MySQL优化
除了优化SQL和索引,很多时候,在实际生产环境中,由于数据库服务器本身的性能局限,就必须要对 上层的应用来进行一些优化,使得上层应用访问数据库的压力能够减到最小。原创 2023-05-07 22:23:31 · 565 阅读 · 0 评论 -
MySQL日志
当SQL执行的时间超过我们设定的时间,那么这些SQL就会被记录在慢查 询日志当中,然后我们通过查看日志,用explain分析这些SQL的执行计划,来判定为什么效率低下,是 没有使用到索引?不是直接修改磁盘上的数据,实际只是修改Buffer Pool上的数据。innodb_log_buffer_size默认是16M,就是redo log缓冲区的大小,随着事务的开始就开始记录redo log,如果事务比较大,为了避免事务执行过程中花费过多的磁盘IO可以设置更大的redo log缓存节省磁盘IO。原创 2023-05-08 11:39:57 · 494 阅读 · 0 评论 -
MySQL锁机制
事务要允许并发执行就会导致数据的安全性&一致性和并发效率问题,导致脏读、不可重复读、幻读。常用:已提交读(常见oracle)、可重复读(MySQL)结合了数据的安全性&一致性 + 并发的效率 MVCC多版本控制机制实现的可重复读。原创 2023-05-07 20:23:02 · 434 阅读 · 0 评论 -
MySQL事务
MySQL事务内容原创 2023-05-04 23:18:10 · 407 阅读 · 0 评论 -
MySQL索引
MySQL索引原创 2023-04-25 21:55:42 · 70 阅读 · 0 评论 -
如何在Linux上使用MySQL
如何在Linux上使用MySQL原创 2023-02-25 10:15:48 · 2354 阅读 · 0 评论