• 欢迎访问 winrains 的个人网站!
  • 本网站主要从互联网整理和收集了与Java、网络安全、Linux等技术相关的文章,供学习和研究使用。如有侵权,请留言告知,谢谢!

MySQL 主从配置和读写分离

MySQL 主从配置和读写分离
背景说明 假设各位都已经安装好了 MySQL 数据库,本次操作采用的 MySQL 版本是 5.7.16。正好还有一台 Mac闲着,所以干脆就用两台物理机直接操作了,没有空闲机器的可以在虚拟机操作是一样的。 以最简单的一主一从配置。 主服务器:192.168.0.101 从服务器:192.168.0.108 数据库层的几种模式 在系统架构中,数据库层主要……继续阅读 »

winrains 3个月前 (07-29) 64浏览 0个赞

MySQL 你可能忽视的选择问题

MySQL 你可能忽视的选择问题
我们在 MySQL 入门篇主要介绍了基本的 SQL 命令、数据类型和函数,在局部以上知识后,你就可以进行 MySQL 的开发工作了,但是如果要成为一个合格的开发人员,你还要具备一些更高级的技能,下面我们就来探讨一下 MySQL 都需要哪些高级的技能 MySQL 存储引擎 存储引擎概述 数据库最核心的一点就是用来存储数据,数据存储就避免不了和磁盘打交道。那么数……继续阅读 »

winrains 3个月前 (07-27) 54浏览 0个赞

洞悉 MySQL 底层架构:游走在缓冲与磁盘之间

洞悉 MySQL 底层架构:游走在缓冲与磁盘之间
提起MySQL,其实网上已经有一大把教程了,为什么我还要写这篇文章呢,大概是因为网上很多网站都是比较零散,而且描述不够直观,不能系统对MySQL相关知识有一个系统的学习,导致不能形成知识体系。为此我撰写了这篇文章,试图让这些底层架构相关知识更加直观易懂: 尽量以图文的方式描述技术原理; 涉及到关键的技术,附加官网或者技术书籍来源,方便大家进一步扩展学……继续阅读 »

winrains 3个月前 (07-27) 38浏览 0个赞

SQL运行内幕:从执行原理看调优的本质

SQL运行内幕:从执行原理看调优的本质
相信大家看过无数的MySQL调优经验贴了,会告诉你各种调优手段,如: 避免 select *; join字段走索引; 慎用in和not in,用exists取代in; 避免在where子句中对字段进行函数操作; 尽量避免更新聚集索引; group by如果不需要排序,手动加上 order by null; join选择小表作为驱动表; order by……继续阅读 »

winrains 3个月前 (07-27) 60浏览 0个赞

用 explain 命令分析 MySQL 的 SQL 执行

用 explain 命令分析 MySQL 的 SQL 执行
在上一篇文章《MySQL常见加锁场景分析》中,我们聊到行锁是加在索引上的,但是复杂的 SQL 往往包含多个条件,涉及多个索引,找出 SQL 执行时使用了哪些索引对分析加锁场景至关重要。 比如下面这样的 SQL: mysql> delete from t1 where id = 1 or val = 1 其中 id 和 val 都是索引,那么执行时使……继续阅读 »

winrains 4个月前 (06-28) 79浏览 1个赞

MySQL 死锁系列:常见加锁场景分析

MySQL 死锁系列:常见加锁场景分析
在上一篇文章《锁的类型以及加锁原理》主要总结了 MySQL 锁的类型和模式以及基本的加锁原理,今天我们就从原理走向实战,分析常见 SQL 语句的加锁场景。了解了这几种场景,相信小伙伴们也能举一反三,灵活地分析真实开发过程中遇到的加锁问题。 如下图所示,数据库的隔离等级,SQL 语句和当前数据库数据会共同影响该条 SQL 执行时数据库生成的锁模式,锁类型和……继续阅读 »

winrains 5个月前 (06-05) 80浏览 2个赞

MySQL 技巧:如何实现乐观锁

MySQL 技巧:如何实现乐观锁
使用 MySQL 5.7 做测试,数据库引擎为 InnoDB,数据库隔离级别为可重复读(REPEATABLE-READ),读读共享,读写互斥。在这个隔离级别下,在多事务并发的情况下,还是会出现数据更新的冲突问题。 先分析一下更新冲突的问题是如何产生的。 假设我们有一张销量表 goods_sale ,表结构如下: 字段 数据类型 说明 goo……继续阅读 »

winrains 5个月前 (06-05) 57浏览 3个赞

MySQL 如何对LRU算法进行优化

MySQL 如何对LRU算法进行优化
1. 开篇 MySQL 在查询数据时,对于 InnoDB 存储引擎而言,会先将磁盘上的数据以页为单位,先将数据页加载进内存,然后以缓存页的形式存放在「Buffer Pool」中。Buffer Pool 是 InnoDB 的一块内存缓冲区,在 MySQL 启动时,会按照配置的缓存页的大小,将 Buffer Pool 缓存区初始化为许多个缓存页,默认情况下,……继续阅读 »

winrains 5个月前 (05-19) 101浏览 1个赞

MySQL中order by语句的实现原理以及优化手段

MySQL中order by语句的实现原理以及优化手段
相信很多人在面试过程中,总被问到有没有 SQL 调优经验,对于工作经验年限较少的求职者,通常都是在面试之前从网上百度一些答案,提前背熟,然后面试的时候直接将提前背好的答案说出来。笔者作为一名菜鸟,在刚满一年工作经验的时候,出去面试,就是这么干的。记得去某家公司面试的时候,被面试官问到 order by 在排序的时候执行较慢,这个时候该如何优化?我当初想都……继续阅读 »

winrains 5个月前 (05-19) 78浏览 1个赞