![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Mysql
文章平均质量分 93
yan_pengfei
这个作者很懒,什么都没留下…
展开
-
MySQL索引
索引首先数据是以文件的形式存放在磁盘上面的,每一行数据都有它的磁盘地址。有了索引之后,只需要在索引里面去检索这条数据就行了,因为它是一种特殊 的专门用来快速检索的数据结构,我们找到数据存放的磁盘地址以后,就可以拿到数据了。在 InnoDB 里面,索引类型有三种,普通索引、唯一索引(主键索引是特殊的唯一 索引)、全文索引索引数据结构推理数据结构二叉查找树既能够实现快速查找,又能够实现快速插入。但是二叉查找树有一个问题: 就是它的查找耗时是和这棵树的深度相关的,如果我们插入的数据刚原创 2021-05-27 15:39:42 · 153 阅读 · 0 评论 -
MySQL架构与执行SQL流程
MySQL体系结构连接通信协议MySQL 是支持多种通信协议的TCP/IP 协议,Unix Socket等。可以使用同步/异步的方式,支持长连接/短连接。监听默认的 3306 端口。一般来说我们连接数据库都是同步连接MySQL 既支持短连接,也支持长连接。短连接就是操作完毕以后,马上 close 掉。 长连接可以保持打开,减少服务端创建和释放连接的消耗,后面的程序访问的时候还可 以使用这个连接。一般我们会在连接池中使用长连接。保持长连接会消耗内存。长时间不活动的连接,MySQL .原创 2021-05-27 09:21:11 · 244 阅读 · 4 评论 -
mysql学习之分库分表和监控
分库分表把一个实例中的多个数据库拆分到不同的实例 把一个库中的表分离到不同的数据库中分片的准备分片键的选择分区键要能尽量避免跨分区片查询的发生 分区键要能尽量是各个分片中的数据平均如何在节点上部署分片每个分片使用单一数据库,并且数据库名也相同 将多个分片表存储在一个数据库中,并在表名上加入分片号后缀 在一个节点中部署多个数据库,每个数据库包含一个分片如何分配分片中的数据按分区键的hash值取模来分配 按分区键的范围来分配 利用分区键和分片的映射表来分配如何生成全局唯一原创 2020-06-23 10:42:42 · 177 阅读 · 0 评论 -
mysql学习之sql优化
慢查询日志分析问题sqlslow_query_log 启动或者停止慢查询日志slow_query_log_file 指定慢查询日志的存储路径和文件long_query_time 指定记录慢查询日志的阈值通常改为0.001秒也就是1毫秒long_queries_not_using_indexs 是否记录未使用索引的sql常用的慢查询日志分析工具mysqldumpslowpt-query-digest实时获取问题sqlselect id,user,host,D...原创 2020-06-23 09:46:07 · 143 阅读 · 0 评论 -
mysql学习之索引
mysql的索引是在存储引擎层实现的与服务层无关。这也就决定了不同的存储引擎是有不同的实现的。mysql支持的索引类型b-tree索引以b+tree的结果存储数据 能够加快数据的查询速度,通常索引大小远小于数据本身 更适合范围查找使用场景:全值匹配的查询:order_sn = '2342342346763' 匹配最左前缀的查询 匹配列前缀的查询:order_sn like'234234%' 匹配范围的查询:order_sn > '2342342346763' andor..原创 2020-06-22 17:30:20 · 116 阅读 · 0 评论 -
mysql学习之高可用架构
MMM(multi-master replication manager)作用:监控和管理mysql的主主复制拓扑,并在当前的主服务器失效时,进行主和主备服务器之间的主从切换和故障转移工作。https://www.cnblogs.com/gomysql/p/3671896.html这个写的已经很好了。MHA(Master High Availability)https://www.cnblogs.com/keerya/p/7883766.htmlhttps://www.cnblo...原创 2020-06-22 12:31:34 · 117 阅读 · 0 评论 -
mysql学习之复制功能
复制:利用二进制日志增量进行。实现在不同服务器上的数据分布 实现读取数据的负载均衡 增强了数据的安全性 实现数据库高可用和故障切换mysql日志mysql二进制日志:记录了所有对数据库的修改事件包括增删改查事件和对表结构的修改事件。二进制日志记录的都是成功执行的。二进制日志的格式基于段的格式 binlog_format = STATMENT.日志记录量相对较小,节约磁盘io. 可能造成主备服务器数据不一致基于行的格式 binlog_format = ROW 复制更加安全..原创 2020-06-19 18:03:41 · 101 阅读 · 0 评论 -
mysql的学习(三)之数据库优化
数据库结构设计数据存储 数据处理 数据的安全性和完整性数据库设计三范式第一范式数据库表中所有字段都只有单一属性 单一属性的列是由基本的数据类型所构成 设计出来的表都是简单的二维表第二范式数据库表中只有一个业务主键 不能存在非主键列队对于部分主键列的依赖 通俗理解是任意一个字段都只依赖表中的同一个字段第三范式每一个非主属性既不部分依赖于也不传递依赖于业务主键数据库物理设计选择字段合适的数据类型优先考虑数字类型,其次是日期和二进制类型。最好是字符型。对于相同级.原创 2020-06-19 16:42:36 · 156 阅读 · 0 评论 -
mysql的学习(一)之基准测试
基准测试的目的建立miysql服务器性能的基准线 模拟比当前更高的负载,以找出系统的扩展瓶颈增加数据库并发 测试不同的硬件,软件和操作系统配置常见指标:单位时间内处理的事务数量TPS 单位时间内处理的查询数量QPS 响应时间测试工具之mysqlslapmysql自带的。 可以模拟服务器负载,并输出相关统计信息 可以指定也可以自动生成查询语句测试工具之sysbench...原创 2020-06-19 14:14:23 · 138 阅读 · 0 评论 -
mysql的学习(一)之mysql性能的影响因素
硬件配置cpu,可使用内存myIsam会把索引缓存到内存中,数据交给操作系统,而innodb会在内存中存储索引和数据 硬盘固态存储和PCIe卡 网络存储SAN和NASmysql体系结构特点:插件式存储引擎,可针对每个表配置myISAM 存储引擎5.5版本之前的默认。MyISAM存储引擎表由MYD(存储数据)和MYI(存储索引)组成。特性:使用表级别锁 表的检查与修复,check table tablename /repair table tablename 支持数据压缩原创 2020-06-19 13:36:37 · 182 阅读 · 0 评论