delete、truncate、drop的区别
delete、truncate、drop的区别
delete、truncate、drop的区别
redo log、bin log、undo log、slow query log、relay log
存在几个线程:主库一个线程,从库两个线程。主库生成一个log dump线程,和从库IO线程交互。
垂直分库针对的时一个系统中的不同业务进行拆分,数据库的连接资源比较宝贵且单机处理能力也有限;没拆分之前全部都是落到单一的库上的,单库处理能力成为瓶颈,还有磁盘空间、内存、tps等限制;
也就是“大表拆小表”,基于列字段进行的。拆分原则一般是表中的字段较多,将不常用的或者数据较大,长度较长的拆分到扩展表,如text类型字段。
mysql基本语句或命令
主键索引:是一种特殊的唯一索引,一个表只能有一个主键,不允许有空值。普通索引:最基本的索引,它没有任何限制,仅加速查询,值可以为空。
Mysql执行计划Explain中的Type
解决数据库本身瓶颈,解决系统本身IO、CPU瓶颈,数据库分表可以解决单表海量数据的查询性能问题。数据库分库可以解决单台数据库的并发访问压力问题。
跨节点数据库join关联查询和多维度查询、分库操作带来的分布式事务问题、执行的SQL排序、翻页、函数计算问题
数据库全局主键重复问题、容量规划分库分表后二次扩容问题、分库分表技术选型问题
mysql的操作语句分类
实际生产环境为了数据库安全,需要对数据库做定期全量备份,短期做增量备份。Percona公司开发的用于MySQL数据库物理热备的工具Xtrabackup支持MySQL、Percona server和MariaDB,开源免费,是实现增量备份而出现的一款主流工具。
Percona-toolkit是MySQL的高级运维工具集合,更高效执行各种通过手工非常复杂和麻烦的mysql任务,包括开发、性能分析、监控、数据备份复制、系统管理等。
ACL:以前盛行的一种权限设计,它的核心在于用户直接和权限挂钩。RBAC:基于角色的访问控制系统,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。
单库下一般使用Mysql自增ID,但是分库分表后,会造成不同分片上的数据表主键会重复。
Mycat:java语言编写的MySQL数据库网络协议的开源中间件; Apache ShardingSphere 是一套开源的分布式数据库中间件解决方案组成的生态圈。
常见的数据库优化手段
自增id,根据id范围进行分表(左闭右开),hash取模(Hash分库分表是最普遍的方案)
把同个表的数据按照一定规则分到不同的数据库中,数据库在不同的服务器上。
把一个表的数据分到一个数据库的多张表中,每个表只有这个表的部分数据。 减少锁表时间