MySQL总结02

sql优化

  • Insert使用批量
  • 查询不要使用*, MySQ需要先查出表里的所有字段,再进行匹配
  • 字符串的查询条件要带引号,否则可能不走索引

备份及恢复

  • 备份

    mysqldump -uroot -ppasswd -B dbname > filename.sql

    note: -B备份指定库,使用-B备份文件中多了两行代码(create database dbname; use dbname;)

    -A是备份所有的库

  • 指定字符集备份

    mysqldump -uroot -ppasswd -B -default-character-set=utf8 dbname > mysql.bak.sql

  • 使用压缩命令备份

    mysqldump -uroot -ppasswd --default-character-set=utf8 dbname|gzip > mysql.bak.sql.zip

  • 备份多个库

    mysqldump -uroot -ppasswd -B dbname1 dbname2..|gzip > mysql.bak.sql.zip

  • 备份多个表

    mysqldump -uroot -ppasswd dbname tablename1 tablename2.. > mysql.bak.sql

  • 恢复

    mysqldump -uroot -ppasswd dbname < filename.sql

  • mysqldump关键参数
    • -B 指定多个库,增加建库语句和use语句
    • --compact去掉注释,适合调试输出,生产不用
    • -A备份所有库
    • -F刷新binlog日志
    • --master-data 增加binlog日志文件及对应的位置点
    • -x, --lock-all-tables
    • -d 只备份表结构
    • -t 只备份数据

mysqlbinlog

  • 开启binlog

    修改mysqld文件中的log-bin=日志文件名,binlog日志会根据自己的规则自动轮询

    binlog只记录增删改的操作日志,不记录查询的操作日志,此日志通常用来恢复数据用

  • 使用binlog日志恢复数据
    • 首先将binlog日志到处为sql文件

      mysqlbinlog -d dbname binlogname > bin.sql

      note: binlog文件只能用mysqlbinlog命令打开查看

      -d: 只导出数据内容

    • 将sql文件导入数据库

      mysql -uroot -ppasswd dbname < bin.sql

  • 刷新切割日志

    mysqladmin -uroot -ppasswd flush-log

命令使用范围

  • 在mysql内部操作外部命令

    system + 外部命令

  • 在mysql外部执行mysql内部命令

    mysql -uroot -ppasswd -e "sql命令"

字符集乱码问题

mysql字符集乱码问题主要是因为系统字符集、客户端字符集、mysql字符集不统一造成的

  • 客户端字符集修改

    临时改变显示字符集:set names utf-8

    永久:更改my.cng客户端模块的参数

  • 服务端字符集修改

    更改my.cnf参数

[mysql]
default-character-set=utf8   适合5.1及之前版本
default-set-server=utf8        适合5.5版本
  • linux系统字符集修改

    修改linux的字符集:vi /etc/sysconfig/i18n

    是修改的文件生效: source /etc/sysconfig/i18n 或者. /etc/sysconfig/i18n

  • 查看字符集

    mysql -uroot -ppasswd -e "show variables like ‘character_set%‘

    显示内容为:

  • 修改已经中文乱码的数据库表
    • 建库及建表语句到处,修改为utf8
    • 到处所有的mysql数据
    • 修改mysql服务端和客户端编码为utf8
    • 删除原有的库表及数据
    • 导入新的建库及建表语句
    • 导入mysql所有数据

MySQL主从同步

  • 文件同步

    • NFS网络文件共享同步存储数据
    • samba共享数据
    • 定时任务或守护进程结合rsync, scp
    • inotify(scrsync) + rsync触发式实时数据同步
    • ftp数据同步
    • ssh key + scp/rsync
  • mysql主从同步四种方案
    • 主从方式,通过同步binlog最大限度保持数据一致,但也有风险
    • 双写, 写的压力大
    • 谷歌半同步插件,异步改为半同步

原文地址:https://www.cnblogs.com/nwu-edu/p/9385503.html

时间: 2024-11-02 03:27:17

MySQL总结02的相关文章

MYSQL基础02(查询)

查询是很大的一块,所以这里我只会写mysql的特点,就我目前使用的情况,MYSQL对标准SQL是比较支持,如果是新手的话,建议去w3school 学习标准SQL. 1.DUAL DUAL是一个虚拟表,即该表是不存在的,用于直接select 标量时,使语句看起来符合sql规范 -- MSSQL select 1,'A' -- Oracle中dual 不可缺少 select 1,'A' from DUAL -- mysql 以下2种格式都支持 select 1,'A'; select 1,'A' f

mysql数据类型(02)

MYSQL数据库名称是否区别大小写,取决于文件系统,windows不区分,linux区分.  mysql数据库类型 整数类型:TINYINT SMALLINT MEDIUMINT INT BIGINT 字节数:   1       2        3       4     8 修饰符UNSIGNED(无符号)  NOT NULL(不为空) 浮点数类型:单精度(FLOAT) 双精度(double) 字节数:   4               8 定点数类型:DECIMAL(M,D) 字节数:

[mysql系列02]mysql常用语法

本文结合具体的实例讲解mysql基础常用语法 CREATE DATABASE CREATE DATABASE db_name CREATE DATABASE用给定的名字创建一个数据库,创建数据库mysqllearn. create database mysqllearn; CREATE TABLE CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definition,...)] [table_options] [select_

MySQL案例02:ERROR 1221 (HY000): Incorrect usage of DB GRANT and GLOBAL PRIVILEGES

MySQL在授权用户时出现报错信息,具体信息如下: 一.错误信息 执行命令: GRANT SELECT,INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION

mysql数据库02 基础教程

查询数据 SELECT column_1, column_2, ... FROM table_1 [INNER | LEFT |RIGHT JOIN table_2 ON conditions] WHERE conditions GROUP BY column_1 HAVING group_conditions ORDER BY column_1 LIMIT offset, length; SELECT语句由以下列表中所述的几个子句组成: SELECT 之后是逗号分隔列或星号(*)的列表,表示要

mysql练习02

职工系统: 设有关系职工表(职工号empno,职工名ename,部门号deptno,工资sal)和部门表(部门号deptno,部门名dname,主任manager),用SQL语句完成下列要求: create table emp ( empno int(10) primary key, ename varchar(20), deptno int(10), sal decimal(10,2) ); create table department ( deptno int(10) primary ke

mysql学习02

清空数据库的内容 drop table tb1; #直接删除表 delete from tb1; #清空表的内容 truncate table tb1;清空标的内容,速度快 自增数字会从零开始重新计数 259 原文地址:https://www.cnblogs.com/Mengchangxin/p/9658133.html

SUSE Linux源码编译安装MySQL 5.6

这篇文章主要介绍了SUSE Linux下源码编译方式安装MySQL 5.6过程分享,本文使用SUSE Linux Enterprise Server 10 SP3 (x86_64)系统,需要的朋友可以参考下.MySQL为开源数据库,因此可以基于源码实现安装.基于源码安装有更多的灵活性.也就是说我们可以针对自己的硬件平台选用合适的编译器来优化编译后的二进制代码,根据不同的软件平台环境调整相关的编译参数,选择自身需要选择不同的安装组件,设定需要的字符集等等一些可以根据特定应用场景所作的各种调整.本文

MySQL阶段七——MySQL优化

mysql优化 -一.硬件优化(优化的主要点) 01.CPU----最好是64位的,例:8-16颗CPU 02.内存----例:96G-128G,3-4个实例 03.disk----数量越多越好,性能:ssd(适合高并发业务)>sas(普通上线业务)>sata(适合线下) RAID----部署合适的RAID 04.网卡----多块网卡bond,以及buffer,tcp优化 -二.软件优化 01.操作系统----x86_64 02.软件:mysql,编译优化 -三.my.cnf里面参数优化 (一