MySQL
文章平均质量分 88
Onlooker129
这个作者很懒,什么都没留下…
展开
-
MySQL-读写分离
读写分离,简单地说是把对数据库的读和写操作分开,以对应不同的数据库服务器,主数据库提供写操作,从数据库通过读操作,这样能有效地减轻单台数据库的压力通过MyCat可轻易实现上述功能,不仅可以支持MySQL,也可以支持Oracle和SQL Server。原创 2024-08-04 21:16:03 · 607 阅读 · 0 评论 -
MySQL-分库分表
分库分表的中心思想是将数据分散存储,使得单一数据库/表的数据量变小来缓解单一数据库的性能问题,从而达到提升数据库性能的目的原创 2024-08-04 20:25:18 · 1061 阅读 · 3 评论 -
MySQL-主从复制
主从复制是指将主数据库的DDL和DML操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步MySQL支持一台主库同时向多台从库进行复制,从库同时也可以作为其他从服务器的主库,实现链状复制。原创 2024-08-03 15:59:05 · 418 阅读 · 0 评论 -
MySQL-日志
二进制日志(BINLOG)记录了所有的DDL(数据定义语言)和DML(数据操纵语言)语句,但不包括数据查询(SELECT、SHOW)语句灾难时的数据恢复MySQL的主从复制log_bin_basename:当前数据库服务器的binlog日志的基础名称(前缀),具体的binlog文件名需要在该basename的基础上加上编号(编号从000001开始)log_bin_index:binlog的索引文件,里面记录了当前服务器关联的binlog文件有哪些。原创 2024-08-03 14:32:07 · 766 阅读 · 0 评论 -
MySQL-InnoDB引擎
表空间是InnoDB存储引擎逻辑结构的最高层,如果用户启用了参数innodb_file_per_table(在8.0版本中默认开启),则每张表都会有一个表空间(xxx.ibd),一个mysql实例可以对应多个表空间,用于存储记录、索引等数据段分为数据段(Leaf node segment)、索引段(Non-leaf node segment)、回滚段(Rollback segment),InnoDB是索引组织表,数据段就是B+树的叶子节点,索引段即为B+树的非叶子节点,段用来管理多个区。原创 2024-08-02 19:49:39 · 504 阅读 · 0 评论 -
MySQL-锁
锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(CPU、 RAM、I/O)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。分类:MySQL中的锁,按照锁的粒度分,分为以下三类:全局锁就是对整个数据库实例加锁,加锁后整个实例就处于只读状态,后续的DML的写语句、DDL语句、已经更新操作的事务提交语句都将被阻塞原创 2024-08-02 11:54:12 · 752 阅读 · 0 评论 -
MySQL-触发器
触发器是与表有关的数据库对象,指在insert/update/delete之前或之后,触发并执行触发器中定义的SQL语句集合,触发器的这种特性可以协助应用在数据库端确保数据的完整性、日志记录、数据校验等操作使用别名OLD和NEW来引用触发器中发生变化的记录内容,这与其他的数据库是相似的。现在数据库还只支持行级触发,不支持语句级触发。原创 2024-08-01 18:01:07 · 234 阅读 · 0 评论 -
MySQL-存储过程
存储过程是事先经过编译并存储在数据库中的一段SQL语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的存储过程思想上很简单,就是数据库SQL语言层面的代码封装与重用。原创 2024-08-01 17:45:03 · 768 阅读 · 0 评论 -
MySQL-视图
视图(View)是一种虚拟存在的表,视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的视图只保存了查询的SQL逻辑,不保存查询结果,所以在创建视图时,主要工作就是创建这条SQL查询语句上。原创 2024-08-01 10:56:26 · 406 阅读 · 0 评论 -
MySQL-SQL优化
2.此时插入id为50的记录,不会再次开启一个页,写入新的页,按照顺序应该存储在47之后,但47所在的1#页已经写满,此时会开辟一个新的页3#,但不会直接将50存入3#页,而是会将1#页后一半的数据移动到3#页,然后在3#页插入50。在InnoDB引擎中,数据行是记录在逻辑结构page页中的,而每一个页的大小是固定的,默认16K,则一个页中所存储的行也是有限的,如果插入的数据行row在该页存储不小,将会存储到下一个页中,页与页之间会通过指针连接。原创 2024-07-31 21:06:26 · 1017 阅读 · 0 评论 -
MySQL-索引
MySQL的索引是在存储引擎层实现的,不同的存储引擎有不同的结构,主要包含以下几种:不同的存储引擎对索引结构的支持情况:注意:平常所说的索引,如果没有特别指明,都是指B+树索引。原创 2024-07-31 16:49:00 · 1136 阅读 · 0 评论 -
MySQL-存储引擎
如果应用对事务的完整性有比较高的要求,在并发条件下要求数据的一致性,数据操作除了插入和查询之外,还包含很多的更新、删除操作,那么InnoDB存储引擎是比较合适的选择。xxx.ibd:xxx代表的是表名,InnoDB引擎的每张表都会对应这样一个表空间文件,存储该表的表结 构(frm-早期的 、sdi-新版的)、数据和索引。行 : InnoDB 存储引擎是面向行的,也就是说数据是按行进行存放的,在每一行中除了定义表时所指定的字段以外,还包含两个隐藏字段。主要是将数据存储在文件系统之上,并完成与存储引擎的交互。原创 2024-07-30 20:39:45 · 558 阅读 · 0 评论