MySQL
文章平均质量分 92
mysql 是一门关系型数据库, 不同于mongoDB 来说. mysql 需要给不同的表之间建立相互联系,以便确定完整性约束。
https://zhuanlan.zhihu.com/p/22893582
七海健人
打工战士,闲暇之余把自己的学习和总结记录下,也希望写的东西能帮助到你
展开
-
《MySQL实战45讲》——学习笔记31 “误删数据的解决方案(删行/删表/删库/删实例)“
本篇介绍MySQL误删数据的几种情况以及误删后的处理方法,包括:1. 使用delete语句误删数据行;2. 使用drop table或者truncate table语句误删数据表;3. 使用drop database语句误删数据库;4. 使用rm命令误删整个MySQL实例;原创 2023-04-23 11:45:00 · 518 阅读 · 0 评论 -
MySQL——distinct与group by去重 / 松散索引扫描&紧凑索引扫描
本篇介绍MySQL中的 distinct 和 group by的区别,包括用法、效率,涉及松散索引扫描和紧凑索引扫描的概念;原创 2023-03-28 19:40:38 · 4765 阅读 · 2 评论 -
编码踩坑——MySQL order by&limit顺序不一致 / 堆排序 / 排序稳定性
本篇介绍一个MySQL下SQL查询语句同时包含order by和limit出现的一个问题及原因,其中涉及的知识点包括 :MySQL对limit的优化、MySQL的order排序、优先级队列和堆排序、堆排序的不稳定性;原创 2023-03-12 23:21:39 · 3375 阅读 · 0 评论 -
MySQL——插入加锁/唯一索引插入死锁/批量插入效率
本篇主要介绍MySQL跟加锁相关的一些概念、MySQL执行插入Insert时的加锁过程、唯一索引下批量插入可能导致的死锁情况,以及分别从业务角度和MySQL配置角度介绍提升批量插入的效率的方法;原创 2023-03-08 20:14:46 · 8191 阅读 · 0 评论 -
《MySQL实战45讲》——学习笔记28 “读写分离/主从延迟的解决方案/GTID“
读写分离架构下,发生主从延迟时,可能出现主库已落表而从库因为主从延迟还查不到最新数据的问题;这种"在从库上读到过期数据"的现象,在本文里暂且称之为"过期读";本篇主要介绍从业务角度和MySQL架构角度处理主从延迟问题的一些方案,包括:读写分离架构、强制路由主库方案、延迟请求从库方案、设计库表时采用分库分表方案、判断是否存在主从延迟方案、GTID的概念,以及判断指定的事务是否已经在从库完成执行的方案(等主库位点/GTID方案);原创 2023-02-08 16:32:49 · 978 阅读 · 0 评论 -
MySQL——关于删除/purge/删除加锁/删除大量数据/truncate&delete
本篇介绍MySQL执行删除命令时的一些机制,包括:解释为什么删除数据后表文件大小不变?MySQL如何删除一行数据?为什么建议删除数据的语句条件上加索引?如何删除大量数据?truncate与delete/drop的区别?原创 2023-02-06 20:00:30 · 4323 阅读 · 0 评论 -
《MySQL实战45讲》——学习笔记22 “大量短连接/慢查询/QPS突增的临时处理方案“
22 | MySQL有哪些“饮鸩止渴”提高性能的方法?原创 2022-12-08 17:50:52 · 1115 阅读 · 0 评论 -
《MySQL实战45讲》——学习笔记19 “SQL查一行执行慢的排查、锁等待/一致性读“【建议收藏】
19 | 为什么我只查一行的语句,也执行这么慢?原创 2022-12-04 23:00:54 · 671 阅读 · 0 评论 -
《MySQL实战45讲》——学习笔记18 “索引失效、函数/隐式转换“【建议收藏】
18 | 为什么这些SQL语句逻辑相同,性能却差异巨大?原创 2022-11-18 11:20:11 · 589 阅读 · 0 评论 -
《MySQL实战45讲》——学习笔记15 “redo log与bin log答疑“总结【建议收藏】
15 | 答疑文章(一):日志和索引相关问题原创 2022-11-09 20:09:48 · 1263 阅读 · 2 评论 -
《MySQL实战45讲》——学习笔记06-07 “全局锁、表锁、行锁“
06 | 全局锁和表锁 :给表加个字段怎么有这么多阻碍?07 | 行锁功过:怎么减少行锁对性能的影响?原创 2022-09-26 23:27:04 · 544 阅读 · 0 评论 -
学习笔记——异地多活
站在业务开发的角度,平时写代码时,代码的可靠性是需要我们考虑的东西,例如对于一个简单的业务场景,我们或许会使用幂等的Retry操作来尽量保证在一些些突发情况如MySQL抖动时能尽量处理成功当前业务;对于存储层来说,我们或许会使用本地缓存、Redis、MySQL三层存储结构保证系统读性能的可靠性,或是配置MySQL的读写分离来保证MySQL的读写性能;站在架构设计的角度,本篇从宏观的角度来介绍保证系统可用性的架构方案——异地多活,内容包括:异地多活到底是什么?它到底解决了什么问题?究竟是怎么解决的?原创 2022-08-24 17:56:58 · 959 阅读 · 1 评论 -
《MySQL实战45讲》——学习笔记01-03 “MySQL基本架构、日志系统、事务隔离“
《MySQL实战45讲》学习笔记01-03:01 | 基础架构:一条SQL查询语句是如何执行的?02 | 日志系统:一条SQL更新语句是如何执行的?03 | 事务隔离:为什么你改了我还看不见?原创 2022-08-30 10:34:55 · 639 阅读 · 0 评论 -
代码技巧——数据迁移方案【建议收藏】
开发工作中,可能会遇到如"大表拆分"、"跨库数据迁移"等场景,本文介绍互联网常见架构下的数据迁移方案及实现,包括:有损迁移、平滑迁移、增量迁移;原创 2022-08-11 16:05:21 · 6346 阅读 · 1 评论 -
MYSQL——关于分库分表的建议
一、何谓分库分表?把原本存储于一个库的数据分块存储到多个库(主机)上,把原本存储于一个表的数据分块存储到多个表上。二、为什么要分库分表?数据库中的数据量不一定是可控的,在未进行分库分表的情况下,随着时间和业务的发展,库中的表会越来越多,表中的数据量也会越来越大,相应地,数据操作,增删改查的开销也会越来越大。另外,由于无法进行分布式式部署,而一台服务器的资源(CPU、磁盘、内存、IO等)是有限的,最终数据库所能承载的数据量、数据处理能力都将遭遇瓶颈。三、分库分表的实施策略分库分表有垂直原创 2022-03-24 12:42:40 · 394 阅读 · 0 评论 -
MYSQL——语句优化建议
1. 避免使用 select *SELECT*增加很多不必要的消耗(CPU、IO、内存、网络带宽);增加了使用覆盖索引的可能性;当表结构发生改变时,前断也需要更新。所以要求直接在select后面接上字段名;2. 当你只需要查询出一条数据的时候,要使用 limit 1比如你要查询数据中是否有男生,只要查询一条含有男生的记录就行了,后面不需要再查了,使用Limit 1 可以在找到一条数据后停止搜索;3. 建立高性能的索引索引是提高数据库性能的常用方法,它可以令数据库服务器以比没有索引快得多的原创 2022-03-23 20:49:17 · 128 阅读 · 0 评论