作家
登录

MySQL开发实践8问,你能hold住几个?

作者: 来源: 2017-09-08 15:41:56 阅读 我要评论

  • +----+-------------+------------------------+------+---------------+------+---------+------+------+-------------+ 
  •  
  • | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | 
  •  
  • +----+-------------+------------------------+------+---------------+------+---------+------+------+-------------+ 
  •  
  • | 1 | SIMPLE | t_online_group_records | ALL | NULL | NULL | NULL | NULL | 47 | Using where | 
  •  
  • +----+-------------+------------------------+------+---------------+------+---------+------+------+-------------+ 
  •  
  • 1 row in set (0.00 sec)  
  • 应用集群(master-slave),读写分别

    增长营业的cache层

    应用连接池

    复制机制(Replication)

    master经由过程复制机制,将master的写操作经由过程binlog传到slave生成中继日记(relaylog),slave再将中继日记redo,使得主库和大年夜库的数据保持同步

    复制相干的3个MySQL线程

    1. slave上的I/O线程:向master请求数据
    2. master上的Binlog Dump线程:攫取binlog事宜并把数据发送给slave的I/O线程
    3. slave上的SQL线程:攫取中继日记并履行,更新数据库

    属于slave主动请求拉取的模式

    实际应用可能碰到的问题

    数据非强一致:CDB默认为异步复制,master和slave的数据会有必定延迟(称为主大年夜同步距离,一般 主大年夜同步距离变大年夜:可能是DB写入压力大年夜,也可能是slave机械负载高,收集波动等原因,具体问题具体分析

    相干监控敕令

    show processlist:查看MySQL过程信息,包含3个同步线程的当缁ご态

    show master status :查看master设备及当前复制信息

    show slave status:查看slave设备及当前复制信息

    6.若何防止DB误操作和做好容灾?

    重要DB数据的手工修改操作,操作前需做到2点:1 先在测试情况操作 2 备份数据

    根据营业重要性做准时备份,推敲体系可遭受的恢复时光

    进行容灾练习训练,感到很须要

    MySQL备份和恢复操作

    1.备份:应用MySQLdump导出数据

    MySQLdump -uxxx -p xxx mytable > mytable.20140921.bak.sql

    2.恢复:导入备份数据

    MySQL -uxxx -p xxxx

    3.恢复:导入备份数据之后发送的写操作。先应用MySQLbinlog导出这部分写操作SQL(基于时光点或地位)

    插件式存储引擎是MySQL的重要特点,MySQL支撑多种存储引擎以知足用户的多种应用处景

    如导出2014-09-21 09:59:59之后的binlog:

    1. MySQLbinlog --database="test" --start-date="2014-09-21 09:59:59" /var/lib/MySQL/mybinlog.000001 > binlog.data.sql 

    前提:连接数100,每次insert单笔记录

    如导出肇端id为123456之后的binlog:

    1. MySQLbinlog --database="test" --start-position="123456" /var/lib/MySQL/mybinlog.000001 > binlog.data.sql 

    最后把要恢复的binlog导入db

    1. MySQL -uxxxx -p xxxx 

    7.钙揭捉?择MySQL哪种存储引擎,Innodb具有什么特点?

    存储引擎简介

    存储引擎解决的问题:若何组织MySQL数据在介质中高效地攫取,需推敲存储机制、索引设计、并发读写的锁机制等

    MySQL5.0支撑的存储引擎有MyISAM、InnoDB、Memory、Merge等

    **MyISAM和InnoDB的差别(只说重点了)

    1.InnoDB

    2.MyISAM

      MySQL5.5之前默认引擎

    • 支撑表锁:插入+萌芽速度快,更新+删除速度慢
    • 不支撑事务

    8.MySQL内部构造有哪些层次?

    非专业DBA,这里只简单贴个构造图颂峦宦。MySQL是开源体系,其设计思路和源代码都出自负年夜牛之手,有空可以进修下。


      推荐阅读

      更好的指标、更好的云优先策略

    对于具有大年夜型复杂IT情况的CIO来说,云优先策略的风险和收益是一个难题。专家建议要应用明显的指标。TCE Strategy首席履行官、技巧和收集安然策略师Bryce Austin表示:“在这种情>>>详细阅读


    本文标题:MySQL开发实践8问,你能hold住几个?

    地址:http://www.17bianji.com/lsqh/37266.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)