Sharing of MySQL – Chukong MySQL 数据库培训 – 第二天
- Review:
MySQL 启动: mysql_safe –default-file=”” –base_dir=”” –data_dir=”” –user $USER
自启动脚本位置: /etc/rc.local
字符集的选用: UTF8 (分为 Server 端字符集, 客户端字符集, 连接字符集-创建连接时指定的字符集)
开启 bin-log 有机会恢复到某个时刻 – 思考与 Redis 的 aof 方法的区别
- 什么是 MySQL?
MySQL: 是一种数据库服务
mysql: 是连接数据库的客户端, mysql –user XX –host XX –port XX 连接, 使用 quit 退出
- 数据库的基本操作
创建数据库或数据表, 首先要注意字符集的问题.
Insert 多行写入: insert into XX value (), (), ()…
使用 loadfile 加载 sql 文件导入数据.
创建表尽量添加 id 主键为 auto_increment, 尽管可能为无关变量
- 查询优化: 尽量写简单 SQL 语句
排序空间 5M 左右, orderby 造成磁盘读写.
like, =, !=, in 尽量不要使用
运算操作: count(*), sum, average 均是全表扫描, min, max 是走索引
使用查询库 MyISAM, 可以节省 12%的 DB 空间, 索引节省 95%, 但是不支持事物, 如需要事物只能使用 InnoDB.
- MySQL 工具使用:
数据库启动: mysqld, mysqld_safe(守护进程监控 mysqld 进程), mysqld_multi(启动多个数据库)
分析工具:
mysql连接数据库.
mysqladmin.
mysqldump.
mysqlhotcopy(MyISAM only).
mysqlbinlog.
数据导入导出:
shell> mysql < sourceFile.php
mysql> source sourceFile
- 命令 Tips:
processlist
flush-logs
- 账号管理:
最初安装要删除空用户, 更新 root 密码
set password for ‘root’@localhost = PASSWORD(‘XXX’);
创建相应权限用户, Grant 数据表权限, flush privileges
- 日志管理:
error log: –log-error=file 默认是 datadir 目录下的 hostname.err
common log:–log=file 正式线上不开启
bin log:–log-bin=1/0
slow log:–log-show-queries=file 一般是 select 操作
数据库机器需求: 内存>磁盘>CPU
耗费 CPU 的数据: 磁盘载入数据到内存中进行联合查询