mysql
文章平均质量分 69
it's okey
这个作者很懒,什么都没留下…
展开
-
mysql-三大核心日志-两阶段提交协议
为什么会有两阶段提交协议?redo log一般比binlog先刷新到缓冲区当中,而且redolog有个后台持久化线程,每秒执行一次;当binlog持久化失败, 但是redolog持久化成功时,会出现两个日志文件不一致的情况。两阶段协议将redo log设置为prepare和submit这两种状态来解决问题两阶段协议的具体描述1. 会将redolog中正在运行的事物标记为prepare状态、2. 在事务submit后会将相关事物的状态有prepare修改为submit状态在数据恢复的原创 2021-09-29 08:28:47 · 171 阅读 · 0 评论 -
mysql优化- 慢查询日志和explain
慢查询日志结构4个配置变量slow_query_log = ON/OFF:是否打开慢查询日志。slow_query_log_file = /opt/soft/mysql/log/slow.log:慢查询日志的存储文件路径。long_query_time = 5:慢查询日志文件的时间阈值。long_query_not_using_indexes = on/off:是否记录没有使用索引的查询注意点慢查询日志的意义将未按照达到自己定义标准的查询记录下来,以便于单独进行分析和优化expl原创 2021-09-08 11:05:20 · 156 阅读 · 0 评论 -
mysql数据库的基础知识
数据系统的构成 (由DB,DBMS,DBA共同组成)数据库(DB)数据库是数据的集合,它被数据库管理系统来进行管理。数据库表(对应关系数据库中的关系,一个数据库表对应一个关系实体)元祖:对应数据库表中的行,数据库的每行对应一个元祖。属性:对应数据库的列,每列对应一个属性,例如主键对应主属性。码:代表所有属性中能唯一标识元祖的属性候选码:当属性中的某一个属性或几个属性联合能唯一标识一个元组,并且其任何子集都不能标识(就是单个的属性都不呢标识,联合起来可以唯一标识的情况),则称该属性集合为候原创 2021-09-03 12:45:49 · 245 阅读 · 0 评论 -
mysql查询优化-单表查询优化的小总结
可以使用explain关键字可以让我们知道,性能瓶颈是查询语句还是表结构写sql要明确需要的字段,要多少就写多少字段,避免滥用select *使用join来避免使用子查询尽可能使返回结果更精确:有什么限制条件尽量都用上 ,比如,limt,where等,这样可以让我们查询少做不需要的动作。开启查询缓存(当收益大于成本的时候)怎么判断是不是需要开启查询缓存:通过缓存命中率(Qcache_hits / Com_select,这个结果只能看看,有天生的缺陷,代表不了查询的实际收益);缓存的写入率(Qca原创 2021-08-29 09:27:16 · 297 阅读 · 0 评论 -
mysql查询优化-增删改的优化
INSERT语句(插入语句)在大量插入插入数据的时候,我们应该避免单条插入,因为每一个sql语句都需要提交到关系引擎哪里去解析,优化,一旦数量过多,就会造成大量消耗优化的方向是:批量提交,一次10条左右是最高效的,类似下图:采用顺序主键策略、DELETE语句(删除语句),与truncate table作比较truncate table [表名] :删除速度更快,但是删除后不进入mysql的日志文件,不可以恢复。(谨慎)如果没有外键关联,innnodb先drop table,再创建一个新原创 2021-08-28 10:49:27 · 350 阅读 · 0 评论 -
mysql查询优化-查询缓存
mysql如何判断缓存是否命中缓存使用的是一个引用表,通过一个哈希值的引用,这个哈希值包括了,当前要查询的数据库,客户端协议,查询本身等当判断缓存是否命中时,mysql是不会解析,优化的,使用的是sql语句和客户端发送过来的原始信息。所以任何字符上的不同,例如空格,注释等都会导致缓存不会命中(所以这就导致缓存命中的条件比较苛刻,不同的编码习惯,命中率的影响很大)查询缓存如何使用内存查询缓存是完全在内存当中,基本的管理维护数据结构大概需要40kb左右的内存资源mysql用于查询缓存的内存被分原创 2021-08-27 11:13:55 · 276 阅读 · 0 评论