![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
xiaochen1999
这个作者很懒,什么都没留下…
展开
-
数据库30条军规解读
一、基础规范(1)必须使用InnoDB存储引擎解读:支持事务、行级锁、并发性能更好、CPU及内存缓存页优化使得资源利用率更高 (2)必须使用UTF8字符集解读:万国码,无需转码,无乱码风险,节省空间 (3)数据表、数据字段必须加入中文注释解读:N年后谁tm知道这个r1,r2,r3字段是干嘛的 (4)禁止使用存储过程、视图、触发器、Event解读:高并发大数据的互联网业务,架构设计思路是“解放数据库...转载 2018-05-17 15:16:58 · 137 阅读 · 0 评论 -
数据库架构--mysql基准测试
基准测试是针对系统设置的一种压力测试基准测试:直接、简单、易于比较,用于评估服务器的处理能力压力测试:对真实的业务数据进行测试,获得真实系统所能承受的压力目的:1、建立mysql服务器的性能基准线,确定当前mysql服务器运行情况2、模拟比当前系统更高的负载,以找出系统的扩展瓶颈,增加数据库并发,观察QPS,TPS变化,确定并发量与性能最优的关系3、测试不同的硬件、软件和操...原创 2019-01-16 23:52:49 · 179 阅读 · 0 评论 -
数据库架构--影响数据库性能
1、硬件:Mysql不支持多CPU对同一SQL并发处理web类应用:核心数量比频率重要2、操作系统3、数据库存储引擎的选择MyISAM:不支持事务,表级锁InnoDB:事务级存储引擎,完美支付行级锁,事务ACID特性4、数据库参数配置5、数据库结构设计和SQL语句...原创 2019-01-16 23:52:09 · 211 阅读 · 0 评论 -
数据库架构
1、最好不要在主库上数据库备份、大型活动前取消这类计划2、影响数据库的因素:SQL查询速度,服务器硬件、网卡流量、磁盘IOQPS:每秒钟处理的查询量TPS:大量的并发:数据库链接数被占满(max_connections默认是100)超高的CPU使用率:因CPU资源耗尽而出现宕机磁盘IO:性能下降,使用SSD等更快的设备网卡IO:被占满如何避免无法连接数据库的情况:...原创 2019-01-16 23:51:10 · 514 阅读 · 0 评论 -
数据库架构--高可用
通过缩短因日常维护操作和突发的系统崩溃所导致的停机时间,以提高和应用的可用性1、严重的主从延迟2、主从复制中断3、锁引起的大量阻塞 4、软硬件故障造成的服务器宕机等如何实现高可用1、避免导致系统不可用的因素,减少系统不可用的时间影响因素1、服务器磁盘空间耗尽2、性能糟糕的SQL3、表结构和索引没有优化4、主从数据不一致5、人为的操作失误等解决方案1、建立完善的监控及报警系统2、对备份数据进行恢复...原创 2018-07-07 23:02:43 · 1135 阅读 · 0 评论 -
数据库架构--数据库监控
一、对数据库服务可用性进行监控1、数据库进程或者端口存在并不意味着数据库就是可用的2、通过网络连接到数据库并且确定数据库是可以对外提供服务的3、使用mysqladmin -umonitor_user -p -h ping4、telnet ip db_port5、使用程序通过网络建立数据库连接(最好的方式)6、确认数据库是否可读:检查数据库的read_only参数是否为off定期对主从服务器中的主数...原创 2018-07-06 23:12:19 · 1551 阅读 · 1 评论 -
数据库架构--分库分表
一、分库分表的几种方式1、把一个实例中的多个数据库拆分到不同的实例2、把一个库中的表分离到不同的数据库中二、数据库分片前的准备ps:数据库分区表是在同一个节点进行的1、对一个库中相关表进行水平拆分到不同实例的数据库中2、如何选择分区键2.1、分区键要尽量避免跨分片查询到发生2.2、分区键要尽量使用各个分片中的数据平均3、如何存储无需分片的表3.1、每个分片中存储一份相同的数据3.2、使用额外的节点...原创 2018-07-04 23:30:12 · 182 阅读 · 0 评论 -
数据库架构--SQL查询优化
查询优化,索引优化,库表结构优化需要齐头并进一、如何获取有性能问题的SQL1、通过用户反馈获取存在性能问题的SQL2、通过慢查日志获取存在性能问题的SQL2.1、磁盘IO和存储日志所需要的磁盘空间2.2、存储日志所需要的大量的磁盘空间 slow_query_log 启动停止记录慢查日志set gloal slow_query_log=onslow_query_log_file 指定慢查日志的存储路...原创 2018-07-04 00:02:22 · 250 阅读 · 0 评论 -
数据库架构--索引
类型:B-tree索引,常见的索引(顺序存储)B-tree过引以B+树的结构存储数据B-tree索引能够加快数据的查询速度B-tree索引更适合进行范围查找使用场景:1、全值匹配的查询 order_sn= ‘1234432424242'2、匹配最左前缀的查询3、匹配列前缀查询 order_sn like ‘809090'4、匹配范围值的查询 order_sn > ‘22222223’ ...原创 2018-07-02 23:42:48 · 153 阅读 · 0 评论 -
数据库架构--mysql复制
MySQL复制功能提供分担读负载功能为高可用,灾难恢复,备份提供更多的选择通过二进制日志,将数据库复制到备库中(异步)可以实现不同服务器上的数据分布利用二进制日志增量进行不需要太多的带宽但是使用基于行的复制再进行大批量的更改时,会给带宽带来一定的压力特别是跨IDC环境下进行复制应该分批进行实现数据读取的负载均衡需要其它组件配合完成利用DNS轮询的方式把程序的读连接到不同的备份数据库使用LVS,ha...原创 2018-07-01 22:18:28 · 191 阅读 · 0 评论 -
数据库架构--物理设计
物理设计1、定义数据库、表及字段的命名规范1.1、数据库、表及字段的命名要遵守:可读性原则1.2、数据库、表及字段的命名要遵守:表意性原则 1.3、数据库、表及字段的命名要遵守:长名原则(适度)2、选择合适的存储引擎存储引擎 事务 锁粒度 主要应用 忌用MyISAM 不支持 支持并发插入的表级锁 SELECT,INSERT ...原创 2018-07-01 15:42:28 · 2347 阅读 · 0 评论 -
数据库架构--结构优化
三、数据库结构优化的目的1、减少数据的冗余2、尽量避免数据维护中出现更新,插入和删除异常插入异常:如果表中的某个实体随着另一个实体而存在更新异常:如果更改表中的某个实体的单独属性时,需要对多行进行更新 删除异常:如果删除表中的某一实例则会导致其他实体的消失节约数据存储空间数据库结构设计的步骤 需求分析:1、全面了解产品设计的存储需求2、数据处理需求3、数据的安全性和完整性...原创 2018-07-01 15:40:00 · 453 阅读 · 0 评论 -
高性能可扩展mysql学习笔记
数据库命名规范所有数据库对象名称必须使用小写字母并用下划线分割所有数据库对象名称禁止使用mysql保留关键字数据库对象的命名要做到见名识义,并且最好不要超过32个字符临时库表必须以tmp为前缀以日期为后缀备份库表以bak为前缀并以日期为后缀 所有存储相同数据的列和列类型必须一致 ,否则会导致列的索引失效数据库基本设计规范所有的表必须使用Innodb存储引擎(支持事务,行级锁,更好的恢复性,高并发下...原创 2018-06-01 22:45:57 · 279 阅读 · 0 评论 -
乐观锁和悲观锁
悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过...转载 2018-05-31 17:03:09 · 113 阅读 · 0 评论 -
MySQL军规升级版
一、基础规范表存储引擎必须使用InnoDB 表字符集默认使用utf8,必要时候使用utf8mb4解读:(1)通用,无乱码风险,汉字3字节,英文1字节(2)utf8mb4是utf8的超集,有存储4字节例如表情符号时,使用它 禁止使用存储过程,视图,触发器,Event解读:(1)对数据库性能影响较大,互联网业务,能让站点层和服务层干的事情,不要交到数据库层(2)调试,排错,迁移都比较困难,扩展性较差 ...转载 2018-05-19 11:45:00 · 183 阅读 · 0 评论 -
或许你不知道的10条SQL技巧
一、一些常见的SQL实践(1)负向条件查询不能使用索引select * from order where status!=0 and stauts!=1not in/not exists都不是好习惯可以优化为in查询:select * from order where status in(2,3) (2)前导模糊查询不能使用索引select * from order where desc like...转载 2018-06-01 18:05:16 · 117 阅读 · 0 评论 -
MySQL双主一致性架构优化
一、双主保证高可用MySQL数据库集群常使用一主多从,主从同步,读写分离的方式来扩充数据库的读性能,保证读库的高可用,但此时写库仍然是单点。 在一个MySQL数据库集群中可以设置两个主库,并设置双向同步,以冗余写库的方式来保证写库的高可用。 二、并发引发不一致数据冗余会引发数据的一致性问题,因为数据的同步有一个时间差,并发的写入可能导致数据同步失败,引起数据丢失:如上图所述,假设主库使用了auto...转载 2018-05-17 17:02:23 · 354 阅读 · 0 评论 -
MyCAT配置文件详解
一、server.xml文件用途1、配置系统相关参数2、配置用户访问权限3、配置SQL防火墙及SQL拦截功能4、dml表示:insert,update,select,delete,0不可以,1可以mycat密码加密java -cp Mycat-server-1.6.5-release.jar io.mycat.util.DecryptUtil 0:root:123456...原创 2019-02-16 11:52:54 · 913 阅读 · 0 评论