MySQL 常用操作

一、MySQL 数据库存储过程调用

delimiter //;
create procedure testP ()
begin
declare i int;
set i=0;
while i<5000 do
insert into person values (null, i+10);
set i=i+1;
commit;
end while;
end//
delimiter ;//
# 如下调用
call testP
  • 因为存储过程中每个语句是用;分开的,所以使用delimiter // 暂时将SQL分隔符便为//
  • 注意testP后面要有空格再加上括号

二、sync_binlog 的性能影响

993440-20170723094913762-488868620.png

1、默认sync_binlog=0 用MySQL自行决定何时同步binlog日志到磁盘中

993440-20170723094948668-685996645.png

2、设置sync_binlog=1表示每一次binlog更新都同步到磁盘中

993440-20170723095019715-733172181.png

3、设置sync_binlog=100 表示每100次binlog日志再同步到磁盘中 根据 MySQL 官网文档 ,并没有这个设置; 谢谢@Jesper2357 指出

总结:

  1. sync_binlog的设置若设置比较大,则可能在服务器崩溃后,启动时,会出现数据不一致问题,binlog日志未更新到磁盘,
  2. 如上可以看到,在频繁的进行dml时,若sync_binlog设置过小则会严重影响MySQL的性能

三、跨数据库导入

需求如下

SELECT seewo_sys_users.resourceid AS c_user_uid, 
    '' AS c_app_code,
    case when ISNULL(seewo_sys_users.unitId) then 0 else seewo_sys_users.unitId end AS c_unit_id, 
    case when ISNULL(seewo_teacher_subject_rel.stageId) then '' else seewo_teacher_subject_rel.stageId end AS c_stage_id, 
    case when ISNULL(seewo_teacher_subject_rel.subjectId) then '' else seewo_teacher_subject_rel.subjectId end AS c_subject_id,
    case when ISNULL(seewo_sys_users.realName) then 0 else seewo_sys_users.gender end AS c_realname, 
    case when ISNULL(seewo_sys_users.provinceId) then '' else seewo_sys_users.provinceId end AS c_province_id, 
    case when ISNULL(seewo_sys_users.cityId) then '' else seewo_sys_users.cityId end AS c_city_id, 
    case when ISNULL(seewo_sys_users.gender) then 0 else seewo_sys_users.gender end AS c_gender, 
    case when ISNULL(seewo_sys_users.phone) then '' else seewo_sys_users.phone end AS c_phone, 
    case when ISNULL(seewo_sys_users.cnname) then '' else seewo_sys_users.cnname end AS c_nickname, 
    seewo_sys_users.address AS c_address, 
    seewo_sys_users.photoURL AS c_photo_url, 
    seewo_sys_users.idNumber AS c_id_number, 
    case when ISNULL(seewo_sys_users.isDeleted) then 0 else seewo_sys_users.isDeleted end AS c_is_deleted, 
    NOW() as c_create_time,
    NOW() as c_update_time
FROM seewo_sys_users Left JOIN seewo_teacher_subject_rel ON seewo_sys_users.resourceid = seewo_teacher_subject_rel.teacherId

将执行结果导出后导入到encloud.t_seewo_user_info_sync 新增的表

方法一
  1. 使用HeidiSQL 将查询结果导出为SQL语句(insert 语句)
  2. 在服务端直接使用source *.sql 导入数据
方法二
  1. 使用navicat 将查询结果导出到excel表中(带列名导出)
  2. 使用navicat导入到指定的数据库表中

四、Binlog日志分析

mysqlbinlog  --start-datetime='2017-07-19 16:30:00' --stop-datetime='2017-07-19 17:25:00' --database=seewo_school -vv --base64-output=decode-rows bin-log-mysqld.000010 > seewo_school.sql

993440-20170723095049606-1290756159.png

转载于:https://www.cnblogs.com/jwindy/p/mysqlCmd.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值