高性能MySQL
文章平均质量分 82
本专栏是对高性能MySQL前一部分的总结与提炼。
Lidisam
一路有TA同行
展开
-
Mybatis执行流程
1 mapper接口和映射文件如何绑定解析mapper配置信息,比如package配置、全限定名xml映射等方式,解析xml并将其与对应的mapper接口映射起来,用一个hashmap(knownMappers)映射起来。然后遍历Mapper接口中所有方法,将每个方法的全限定名作为key存在mapperStatements中。注意点:同一个value会存储2次,一个全限定名作为key,另一个就是只用方法名(sql语句的id)来作为key。 所以如果全局只存在一个方法名,就可以直接...原创 2021-02-12 13:38:45 · 240 阅读 · 0 评论 -
SQL执行计划简述
SQL执行计划分析索引的执行计划主要可以根据EXPLAIN SELECT * FROM xxxx 来看1 type下面以 const>ref>range>index>all,其中级别能达到const、ref都很好,range看筛选出来情况,如果筛出10w条数据那就坑了(另外主键/唯一索引 用 IS NULL,type=ref,二级索引是type=ref_or_null)-- MySQL版本:5.7.22-- 等值查询EXPLAIN SELECT.原创 2021-02-10 09:28:47 · 224 阅读 · 1 评论 -
数据库死锁产生原因及场景
什么是数据库死锁?两个或以上事务同时对一批资源占用锁,并形成循环,就会造成事务死锁,一般报错如下:com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Deadlock found when trying to get lock; try restarting transaction1 插入场景:(user_id和pool_id是联合唯一索引)场景:有一个job,定时会查出一批数据,然后分页,每页一千条数据.原创 2021-02-10 00:25:31 · 1501 阅读 · 0 评论 -
《高性能mysql》之备份与恢复(第十五章)
①为什么要备份: 1) 灾难恢复(如硬件故障,失手删库等) 2) 人们想法改变,想恢复回原来的 3) 审计,需要知道某个时间点这部分数据是否有bug 4) 测试,删了测,测了删②定义恢复需求: 注:复制不是备份,只有备份才能满足备份要求。③设计MySQL备份方案: -- 在线备份还是离线备原创 2017-03-17 10:13:57 · 477 阅读 · 0 评论 -
《高性能mysql》之复制(第十章)
①复制概述: -- 概念:让一台服务器的数据与其他服务器保持同步。 复制通常不会增加主库的开销,主要是启用二进制日志带来的开销,每个备库也会对主库增加一些负载(例如网络I/O开销) 一主库多备库,造成一些浪费,含大量不必要重复 -- 复制解决的问题:数据分布、负载均衡(通过mysql复制可将读操作分布到多个服务器上)、备份原创 2017-03-16 20:56:38 · 437 阅读 · 0 评论 -
《高性能mysql》之MySQL高级特性(第七章)
①分区表: -- 分区表限制: 一把表最多1024个分区 分区表中无法使用外键约束 -- 分区表注意点: 按行写入大量数据时分区过多会出现问题,所以对大多数系统,100左右个分区是没有问题的 注:键分区和哈希分区没有此问题 -- 查询优化:对于访问分区来说,在where中带分区列是很重要的(能过滤部原创 2017-03-15 21:20:54 · 5125 阅读 · 1 评论 -
《高性能mysql》之查询性能优化(第六章)
①请求了多余数据: -- 查出全部结果集:若数据库有1000行数据,但仅需10行,决解办法LIMIT 10 -- 取出所有列:取数据时取出不必要列 SELECT * FROM test; X SELECT id,name FROM test; 对,假设仅需执行获取id和name原创 2017-03-15 11:57:40 · 698 阅读 · 1 评论 -
《高性能mysql》之高性能索引创建(第五章)
①索引的类型: -- B-Tree索引: B-Tree索引加快访问数据的速度,因为存储引擎不再需要全表扫描而是从索引根节点开始搜索 使用范围: 全值匹配、最左前缀、列前缀、范围值、精确匹配某一列并范围匹配另一列、只访问索引查询 注:索引列的顺序很重要!!!比如:先用索引过滤然后and一个li原创 2017-03-14 11:00:43 · 674 阅读 · 0 评论 -
《高性能mysql》之Schema与数据类型优化(第四章)
①简单原则 更小通常更好、简单就好、尽量避免NULL②数据类型选择 -- 整型:尽量使用unsigned(不允许负值),且选择合适大小的整型数据,表如下:数据类型大小M(默认值)范围(有符号)范围(无符号)用途tinyint [(M)] [UNSIGNED] [ZEROFILL]原创 2017-03-13 21:08:04 · 767 阅读 · 0 评论 -
《高性能mysql》之性能分析(第三章)
额外:吞吐量是性能优化的副产品作用:性能分析确定哪些子任务是优化目标,测量出响应时间花在哪分析MySQL查询: 慢查询日志: ① 安装使用教程参考:http://blog.csdn.net/wenbingcai/article/details/40340867 ② 生成日志报告如下(位于:/data/mysql/原创 2017-03-13 20:02:58 · 613 阅读 · 0 评论 -
《高性能mysql》之基准测试(第二章)
基准测试:针对系统设计的压力测试测试的指标: 吞吐量:单位时间内的事务处理数 响应时间或者延迟 并发性:任意时间内多少同时发生的请求基准测试工具: 测试应用:ab 测试mysql:Sysbench ab测试方法: ab -c 5原创 2017-03-13 20:00:02 · 725 阅读 · 0 评论