2019年8月20日成长题目

如何查看数据库是否全表扫描?

sql的执行计划。

执行计划是什么?

  执行计划,简单的来说,是SQL在数据库中执行时的表现情况,通常用于SQL性能分析,优化等场景。在MySQL中使用 explain 关键字来查看。

 

mysql的主从复制怎么配置的

Mysql 主从复制配置

主数据库:192.168.1.1
从数据库:192.168.1.2
注意事项
确保主数据库的mysql能够给外网访问,也就是使用Navicat等软件能够连接的上才行。如果使用宝塔就要到端口那里放行3306端口

主数据库配置:

1. 创建一个用户

   GRANT REPLICATION SLAVE,FILE ON *.* TO 'mstest'@'192.168.1.2' IDENTIFIED BY '123456';

192.168.1.2:是运行使用该用户的ip地址
mstest:是新创建的用户名
123456:是新创建的用户名的密码

2. 修改mysql的配置文件,my.cnf(window系统时my.ini)
server-id=1
binlog-do-db=czc #这个是需要同步的数据库 ,czc是一个数据库,自行先创建
完成后输入命令show master status查看一下是否成功

 
微信截图_20190111144432.png

 

从数据库配置:

如果mysql的版本大于5.5

打开mysql.in添加下面值

       server-id=2
    master-host=192.168.1.1  //主数据库的ip
    master-user=mstest        //第一步创建账号的用户名
    master-password=123456   //第一步创建账号的密码
    master-port=3306
    master-connect-retry=60
    replicate-do-db=czc        //要同步的mstest数据库,要同步多个数据库,就多加几个replicate-db-db=数据库名

mysql的版本小于5.5

打开mysql.ini添加一个server_id,随便写一个不重复的id

 
server_id

因为小于5.5的不能使用直接配置的方法,只能采用命令行的方式配置

 

CHANGE MASTER TO MASTER_HOST='118.25.2437.342',MASTER_PORT=3306,MASTER_USER='mstest',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000015',MASTER_LOG_POS=606;

这里的参数都是对照主数据库的信息填写的

slave start;
show slave status\G;
 
微信截图_20190111144826.png

看这几项是否出现,出现表示成功了。可自行在主数据库里面添加修改数据测试

 

分布式锁解决并发的三种实现方式

  • 在很多场景中,我们为了保证数据的最终一致性,需要很多的技术方案来支持,比如分布式事务、分布式锁等。有的时候,我们需要保证一个方法在同 一时间内只能被同一个线程执行。在单机环境中,Java中其实提供了很多并发处理相关的API,但是这些API在分布式场景中就无能为力了。也就是说单纯的Java Api并不能提供分布式锁的能力。所以针对分布式锁的实现目前有多种方案:

    分布式锁一般有三种实现方式:

    • 1、 数据库锁
    • 2、基于Redis的分布式锁
    • 3、基于ZooKeeper的分布式锁
posted @ 2019-08-20 15:35  上下平中  阅读(155)  评论(0编辑  收藏  举报