摘要: (1)一主多从 在主库读取请求压力非常大的场景下, 可以通过配置一主多从复制架构实现读写分离, 把大量对实时性要求不是特别高的读请求通过负载均衡分布到多个从库上, 降低主库的读取压力,在主库出现异常宕机的情况下, 可以把一个从库切换为主库继续提供服务 。 (2)多级复制 一主多从的架构能够解决大部分 阅读全文
posted @ 2024-12-14 23:59 似梦亦非梦 阅读(20) 评论(0) 推荐(0)
摘要: (1)InnoDB支持事务, MyISAM不支持. (2)InnoDB支持行级锁, MyISAM支持表级锁. (3)InnoDB支持多版本并发控制(MVVC), MyISAM不支持. (4)InnoDB支持外键, MyISAM不支持. (5)MyISAM支持全文索引, InnoDB不支持(但可以使用 阅读全文
posted @ 2024-12-14 23:58 似梦亦非梦 阅读(30) 评论(0) 推荐(0)
摘要: 使用 explain 查看 SQL 是如何执行查询语句的,从而分析你的索引是否满足需求。 explain 语法: explain select * from table where type=1。 阅读全文
posted @ 2024-12-14 23:58 似梦亦非梦 阅读(17) 评论(0) 推荐(0)
摘要: 考察点:数据库 MySQL主从复制是其最重要的功能之一。主从复制是指一台服务器充当主数据库服务器,另一台或多台服务器充当从数据库服务器,主服务器中的数据自动复制到从服务器之中。 对于多级复制,数据库服务器即可充当主机,也可充当从机。 MySQL主从复制的基础是主服务器对数据库修改记录二进制日志,从服 阅读全文
posted @ 2024-12-14 23:58 似梦亦非梦 阅读(29) 评论(0) 推荐(0)
摘要: MVCC是一种多版本并发控制机制,是MySQL的InnoDB存储引擎实现隔离级别的一种具体方式,用于实现提交读和可重复读这两种隔离级别。MVCC是通过保存数据在某个时间点的快照来实现该机制,其在每行记录后面保存两个隐藏的列,分别保存这个行的创建版本号和删除版本号,然后Innodb的MVCC使用到的快 阅读全文
posted @ 2024-12-14 23:58 似梦亦非梦 阅读(55) 评论(0) 推荐(0)
摘要: (1)Server (2)连接器: 管理连接, 权限验证. (3)分析器: 词法分析, 语法分析. (4)优化器: 执行计划生成, 索引的选择. (5)执行器: 操作存储引擎, 返回执行结果. (6)存储引擎: 存储数据, 提供读写接口. 阅读全文
posted @ 2024-12-14 23:57 似梦亦非梦 阅读(20) 评论(0) 推荐(0)
摘要: 使用 show processlist 命令查看当前所有连接信息。 使用 explain 命令查询 SQL 语句执行计划。 开启慢查询日志, 查看慢查询的 SQL。 阅读全文
posted @ 2024-12-14 23:57 似梦亦非梦 阅读(27) 评论(0) 推荐(0)
摘要: 为搜索字段创建索引。 避免使用 select *,列出需要查询的字段。 垂直分割分表。 选择正确的存储引擎。 读写分离 阅读全文
posted @ 2024-12-14 23:57 似梦亦非梦 阅读(17) 评论(0) 推荐(0)
摘要: (1)设计良好的数据库结构,允许部分数据冗余,尽量避免join查询,提高效率。 (2)选择合适的表字段数据类型和存储引擎,适当的添加索引。 (3)做mysql主从复制读写分离。 (4)对数据表进行分表,减少单表中的数据量提高查询速度。 (5)添加缓存机制,比如redis,memcached等。 (6 阅读全文
posted @ 2024-12-14 23:57 似梦亦非梦 阅读(48) 评论(0) 推荐(0)
摘要: 表类型如果是 MyISAM ,那 id 就是 8。 表类型如果是 InnoDB,那 id 就是 6。 InnoDB 表只会把自增主键的最大 id 记录在内存中,所以重启之后会导致最大 id 丢失。 阅读全文
posted @ 2024-12-14 23:56 似梦亦非梦 阅读(17) 评论(0) 推荐(0)
摘要: 内连接关键字:inner join; 左连接:left join; 右连接:right join。 内连接是把匹配的关联数据显示出来; 左连接是左边的表全部显示出来, 右边的表显示出符合条件的数据; 右连接正好相反。 阅读全文
posted @ 2024-12-14 23:56 似梦亦非梦 阅读(50) 评论(0) 推荐(0)
摘要: 通过整库备份+binlog进行恢复. 前提是要有定期整库备份且保存了binlog日志. 阅读全文
posted @ 2024-12-14 23:55 似梦亦非梦 阅读(19) 评论(0) 推荐(0)
摘要: MyISAM、InnoDB、HEAP、BOB,ARCHIVE,CSV等。 MyISAM:成熟、稳定、易于管理,快速读取。一些功能不支持(事务等),表级锁。 InnoDB:支持事务、外键等特性、数据行锁定。空间占用大,不支持全文索引等。 阅读全文
posted @ 2024-12-14 23:55 似梦亦非梦 阅读(18) 评论(0) 推荐(0)
摘要: 读未提交(RU): 一个事务还没提交时, 它做的变更就能被别的事务看到. 读提交(RC): 一个事务提交之后, 它做的变更才会被其他事务看到. 可重复读(RR): 一个事务执行过程中看到的数据, 总是跟这个事务在启动时看到的数据是一致的. 当然在可重复读隔离级别下, 未提交变更对其他事务也是不可见的 阅读全文
posted @ 2024-12-14 23:55 似梦亦非梦 阅读(17) 评论(0) 推荐(0)
摘要: MyISAM 只支持表锁,InnoDB 支持表锁和行锁,默认为行锁。 表级锁:开销小,加锁快,不会出现死锁。锁定粒度大,发生锁冲突的概率最高,并发量最低。 行级锁:开销大,加锁慢,会出现死锁。锁力度小,发生锁冲突的概率小,并发度最高。 阅读全文
posted @ 2024-12-14 23:55 似梦亦非梦 阅读(31) 评论(0) 推荐(0)
摘要: mysql> delete from test; 阅读全文
posted @ 2024-12-14 23:54 似梦亦非梦 阅读(17) 评论(0) 推荐(0)
摘要: mysql> system mysqldump -uroot -p123456 -B -x -F --events oldboy >/opt/bak.sql 阅读全文
posted @ 2024-12-14 23:54 似梦亦非梦 阅读(16) 评论(0) 推荐(0)
摘要: mysql> alter table test add age tinyint(2) after id; 阅读全文
posted @ 2024-12-14 23:54 似梦亦非梦 阅读(15) 评论(0) 推荐(0)
摘要: mysql> update test set name='oldgirl' where id=1; 阅读全文
posted @ 2024-12-14 23:54 似梦亦非梦 阅读(12) 评论(0) 推荐(0)
摘要: mysql> select * from test where name='oldboy'; 阅读全文
posted @ 2024-12-14 23:53 似梦亦非梦 阅读(12) 评论(0) 推荐(0)