-
数据异构的设计方案1
分库分表,数据异构的方向,常用方法如完整克隆,binlog方式,MQ方式
-
mysql的那些sql函数
聚合函数group_concat将同一分组的某列值进行拼接新的一列,find_in_set在集合中搜索该值,并返回该值的位置,使用场景按指id顺序排序
-
索引失效的10种场景
不满足最左匹配原则,使用了select *,索引列上有计算,索引列上用了函数,字段类型不同,like左包含%,列对比,使用了or关键字,not in和not exists,order by 的坑必须带有where或者limit关键字
-
sql优化的15个小技巧
避免使用select*,union all代替union,小表驱动大表in/exists,批量操作,多用limit,in值太多,增量查询,高效分页,用连接查询替代子查询,join时要注意大小表,控制表索引的数量,选择合理的字段类型,缩小数据范围提升groupby的效率,explain分析执行计划避免索引失效,show profile分析sql语句耗时,sql语句执行慢的3个原因
-
Mysql表数据量很大,SQL变慢,有什么优化方案
分页查询使用子查询优化、使用id限定优化、使用临时表优化,limit分页使用上一页的最大creat_time作为查询条件,字段类型匹配避免隐式转换,使用关联更新、删除,使用union all解决混合排序降低sql执行时间,inner join代替exists语句即用连接查询代替子查询,提前缩小范围,with语句缩小中间结果集,SQL判断否存在使用limit 1,
-
Kudu + Impala的介绍
Impala和Kudu做了深度集成,是Cloudera公司主推的新式大数据解决方案,PB级别大数据查询解决方案
-
建议尽量不做联表查询
单表查询利于后续维护,代码可复用性高,效率问题,减少冗余字段的查询
-
开源大数据分析引擎Impala实战1
工作中用到大数据分析的场景,学习Impala,记录下来
-
高并发场景下,Redis与Mysql的数据一致性如何保证
常用策略是先更新数据库再删除缓存,理论上还是会出现问题,解决办法是给缓存设置过期时间,允许系统中少量数据短时间不一致的场景出现,数据库和缓存数据保存强一致,可以吗?不可以,3种方案保证最终一致性,
-
在sql语句中使用Mysql变量
一条在力扣上的题目,编写一个 SQL 查询,查找所有至少连续出现三次的数字
-
Mybatis执行批量insert和update
mysql和oracle数据库结合mybatis常用的批量insert和update
-
MySQL使用自增ID,UUID,雪花ID
mysql做分库分表分布式设计,我是建议使用雪花ID的,但是单机就建议自增ID,mysql innodb引擎下,uuid是无序id作为主键会导致数据跟着索引进行重排浪费性能,不建议使用
-
Oracle的知识点
基本的sql优化策略,insert append原理解析,归档模式,快速插入大量数据的4种方法,DML操作与锁,行锁原理,5个阻塞场景分析
-
飞天班第56节:分布式事务
CAP原理的解析,ACID原理与BASE原理,XA实现两阶段协议的分布式事务,使用atomikos解决分布式事务的缺点,RocketMQ的事务消息方案,TCC事务补偿机制对业务的侵入强,Seata 2阶段解决分布式事务,MQ消息中间件最终一致性解决分布式事务
-
飞天班第53节:全局分布式id的设计
Mycat和Sharding jdbc如何通过UUID和雪花算法实现全局id
-
飞天班第53节:数据切分设计方案Sharding-jdbc
客户端代理模式数据源连接管理应用Sharingjdbc,引入使用,配置广播表,绑定表,读写分离,整合druid连接池的注意点,java类配置分库分表策略,整合dynamic多数据源依赖
-
飞天班第52节:数据切分设计方案Mycat-2
Mycat的分片规则取模、枚举、时间分片,全局表的概念,主表子表管理,Mycat的用户权限配置、黑白名单,Mycat进行集群配置(zookeeper)
-
飞天班第51节:数据切分设计方案Mycat-1
数据切分的实现方式-垂直切分,水平拆分,Mycat数据库中间件的安装使用,内部逻辑原理,核心配置文件,配置读写分离writeHost,readHost,双主写操作
-
飞天班第50节:数据库高级应用-3
高可用衡量标准,高可用的三种方式,主从实现的逻辑,配置mysql主从复制、延时复制、双主互备,show status检查主从复制是否正常
-
飞天班第49节:数据库高级应用-2
mysql如何正确建索引优化sql,数据库整体的架构设计规范,mysql分区表的应用(Hash分区、List分区、Range分区),如何做分区归档,优化现有mysql数据库,换数据库,
-
飞天班第48节:数据库高级应用-1
mysql5.7的安装,sql语句基础知识回顾,mysql数据引擎,mysql错误日志、慢查询日志、二进制日志binlog,开启binlog备份数据,binlog的statement、row模式的比较,全量备份、差异备份、增量备份,热备、温备、冷备,mysqldump导出数据备份,使用crontab定时备份数据库,模拟drop database 恢复数据。
-
insert into select语句把生产服务器炸了
大数据量下,insert into处理不好,占用大量数据库I/O,导致业务失败
-
mysql常用的操作
mysql启动关闭,用户的创建授权,忘记密码后如何重置,相关表操作,datetime与timestamp的区别,连接报错,分析锁情况的相关命令
-
一个事务必须满足ACID,事务的4种隔离级别
原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability),4种隔离级别-RU读未提交/RC读提交/RR可重复读/串行化,mysql的默认事务隔离级别是可重复读,通过间隙锁来解决幻读问题,也叫next-key锁,通过id来更新则不会产生间隙锁