MySQL总结02

Posted nwu-edu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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最大限度保持数据一致,但也有风险
    • 双写, 写的压力大
    • 谷歌半同步插件,异步改为半同步























以上是关于MySQL总结02的主要内容,如果未能解决你的问题,请参考以下文章

BootStrap有用代码片段(持续总结)

如何在片段中填充列表视图?

BootStrap实用代码片段(持续总结)

回归 | js实用代码片段的封装与总结(持续更新中...)

#yyds干货盘点#愚公系列2023年02月 .NET/C#知识点-程序运行计时的总结

部分代码片段