
mysql
文章平均质量分 91
Lidisam
一路有TA同行
展开
-
Transactional注解原理解析
什么是@Transactional? @Transactional是Spring这种用于处理事务的注解,基于拦截器进行commit或rollback使用例子下面举一个加了@Transactional注解的方法addUser(),并且调用了另一个隔离级别为NESTED的addUser2()方法@Servicepublic class UserService { // .. 省略其他 @Transactional public void addUser() {原创 2022-01-02 21:10:37 · 4200 阅读 · 1 评论 -
mybatis查询过程源码解析
本文只讲解mybatis的源码 ,不涉及过多的用法讲解,用法请百度。mybatis查询执行步骤(举SELECT分析)第一步:获取mapperProxy第二步:获取mapperMethod第三步:找到对应的执行类型(SELECT\UPDATE\INSERT\DELETE)第四步:查询前的缓存处理,判断是否需要从二级、一级缓存中取数据(先二级再一级)第五步:真正调用用jdbc调数据库,先预编译、再注入参数第六步:进行结果集解析填充...原创 2021-07-04 11:04:55 · 3849 阅读 · 0 评论 -
mysql常用报表处理及数据迁移写法SQL
熟悉一些常用的sql写法便于工作中快速导出数据,本文不涉及到业务,所以对表库做了名字的修改,仅提供一些用法的说明。以下直接举例子并讲解1 单表批量数据迁移场景:日志迁移具体实例:将test_log2日志表2的数据全部迁移到test_log1日志表1sql:INSERT INTO `xxx`.test_log1( `operate_account_id...原创 2019-09-28 08:34:54 · 634 阅读 · 2 评论 -
关于线上紧急数据与普通数据的处理方案
前言:线上数据如果出现问题,必须是优先处理,其优先级 > 待上线项目 > 测试bug > 开发中项目。所以假如出现线上问题,需要马上处理。线上问题场景1:假设有一个脚本跑用户转发介绍赠送礼品的数据,但是由于发版问题导致数据不一致,并且在几天后有用户投诉发现了这个问题。发现的情况是由于表库部分没建立,到时部分数据重复插入,用户不断获得礼品。针对这种线上问题...原创 2019-07-23 12:00:14 · 400 阅读 · 0 评论 -
MySQL索引背后的数据结构及算法原理
转自:http://blog.codinglabs.org/articles/theory-of-mysql-index.html摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTre...转载 2018-05-03 23:00:20 · 260 阅读 · 0 评论 -
《高性能mysql》之复制(第十章)
①复制概述: -- 概念:让一台服务器的数据与其他服务器保持同步。 复制通常不会增加主库的开销,主要是启用二进制日志带来的开销,每个备库也会对主库增加一些负载(例如网络I/O开销) 一主库多备库,造成一些浪费,含大量不必要重复 -- 复制解决的问题:数据分布、负载均衡(通过mysql复制可将读操作分布到多个服务器上)、备份原创 2017-03-16 20:56:38 · 454 阅读 · 0 评论 -
《高性能mysql》之备份与恢复(第十五章)
①为什么要备份: 1) 灾难恢复(如硬件故障,失手删库等) 2) 人们想法改变,想恢复回原来的 3) 审计,需要知道某个时间点这部分数据是否有bug 4) 测试,删了测,测了删②定义恢复需求: 注:复制不是备份,只有备份才能满足备份要求。③设计MySQL备份方案: -- 在线备份还是离线备原创 2017-03-17 10:13:57 · 503 阅读 · 0 评论 -
《高性能mysql》之MySQL高级特性(第七章)
①分区表: -- 分区表限制: 一把表最多1024个分区 分区表中无法使用外键约束 -- 分区表注意点: 按行写入大量数据时分区过多会出现问题,所以对大多数系统,100左右个分区是没有问题的 注:键分区和哈希分区没有此问题 -- 查询优化:对于访问分区来说,在where中带分区列是很重要的(能过滤部原创 2017-03-15 21:20:54 · 5155 阅读 · 1 评论 -
《高性能mysql》之查询性能优化(第六章)
①请求了多余数据: -- 查出全部结果集:若数据库有1000行数据,但仅需10行,决解办法LIMIT 10 -- 取出所有列:取数据时取出不必要列 SELECT * FROM test; X SELECT id,name FROM test; 对,假设仅需执行获取id和name原创 2017-03-15 11:57:40 · 719 阅读 · 1 评论 -
《高性能mysql》之高性能索引创建(第五章)
①索引的类型: -- B-Tree索引: B-Tree索引加快访问数据的速度,因为存储引擎不再需要全表扫描而是从索引根节点开始搜索 使用范围: 全值匹配、最左前缀、列前缀、范围值、精确匹配某一列并范围匹配另一列、只访问索引查询 注:索引列的顺序很重要!!!比如:先用索引过滤然后and一个li原创 2017-03-14 11:00:43 · 706 阅读 · 0 评论 -
《高性能mysql》之Schema与数据类型优化(第四章)
①简单原则 更小通常更好、简单就好、尽量避免NULL②数据类型选择 -- 整型:尽量使用unsigned(不允许负值),且选择合适大小的整型数据,表如下:数据类型大小M(默认值)范围(有符号)范围(无符号)用途tinyint [(M)] [UNSIGNED] [ZEROFILL]原创 2017-03-13 21:08:04 · 785 阅读 · 0 评论 -
《高性能mysql》之性能分析(第三章)
额外:吞吐量是性能优化的副产品作用:性能分析确定哪些子任务是优化目标,测量出响应时间花在哪分析MySQL查询: 慢查询日志: ① 安装使用教程参考:http://blog.youkuaiyun.com/wenbingcai/article/details/40340867 ② 生成日志报告如下(位于:/data/mysql/原创 2017-03-13 20:02:58 · 632 阅读 · 0 评论 -
《高性能mysql》之基准测试(第二章)
基准测试:针对系统设计的压力测试测试的指标: 吞吐量:单位时间内的事务处理数 响应时间或者延迟 并发性:任意时间内多少同时发生的请求基准测试工具: 测试应用:ab 测试mysql:Sysbench ab测试方法: ab -c 5原创 2017-03-13 20:00:02 · 743 阅读 · 0 评论