zoukankan      html  css  js  c++  java
  • MySQL备份还原、存储过程、事务及周边

    数据库备份与还原
    一. 命令行
    * 备份: mysqldump -u用户名 -p密码 数据库名称 > 保存的路径
    * 还原:
      1. 登录数据库
      2. 创建数据库: create database 数据库名;
      3. 使用数据库: use 数据库名;
      4. 执行文件: source 文件路径
    二. 图形化工具

    存储过程

    --建立存储过程名字叫 insert_data
    CREATE 
    PROCEDURE insert_data()
    	BEGIN 
    		DECLARE i INT;
    		SET i=0;
    		WHILE  i>=0 && i<= 10000 DO 循环插入10000条数据。
    			INSERT INTO big_data(name,age,email)values(concat(‘dada’,i),rand()*50,concat('dada',i,'@qq.com'));
    			写入sql,concat是将多个str连在一起。
    			SET i=i + 1; 
    		END WHILE;  结束循环
    	END$$ 存储过程结束
    
    如果这个名字已存在,删除存储过程
    DROP PROCEDURE if exists insert_data;
    
    调用存储过程
    call insert_data();

    在进行存储过程的时候需要先将MySQL数据改为 MyISAM,存储过程完成后再更改为 InnoDB

    show ENGINES; --查询数据库殷勤
    InnoDB:
    MySQL5.7中的默认存储引擎。InnoDB行级锁定。
    InnoDB是一种适用于MySQL的事务安全(ACID兼容)存储引擎,具有提交,回滚和崩溃恢复功能,可保护用户数据。
    InnoDB将用户数据存储在聚簇索引中,以减少基于主键的常见查询的I / O.为了保持数据完整性,InnoDB还支持FOREIGN KEY参照完整性约束。

    MyISAM:
    表级锁定 限制了读/写工作负载的性能,因此它通常用于Web和数据仓库配置中的只读或大部分读取工作负载。这些表占用空间小。

    事务

    引用菜鸟中的事务截图:

    周边

    1、查询SQL执行信息参数

    explain + SQL语句

    主要看两个字段:type、rows

     尽量避免使用全表扫描的方式,如上就是显示的是全表扫描的方式。涉及到的行数的8行,如果表内容很多几十万上百万数据,查询的速度会逐渐降低。

  • 相关阅读:
    vue初级 总结
    defineProperty和defineProperties介绍
    vue的生命周期
    将组件拼装使用
    Android和Html的简单交互
    Android接口回调的理解
    Android设计模式—— 观察者模式(以及EventBus的简单使用)
    Android Span的简单使用
    Android7.0打开sdacrd图片问题
    打开图片无缩略图错误
  • 原文地址:https://www.cnblogs.com/hanxiaobei/p/13246610.html
Copyright © 2011-2022 走看看