1、mysql简介
概述:开源的关系型数据库RDBMS,等。。
高级MYSQL:
mysql内核
sql优化工程师
mysql服务器的优化
各种参数常量设定
查询语句优化
主从复制
软硬件升级
容灾备份
sql备份
2、linux版安装
暂用mysql5.5,下载地址:
http://mirrors.sohu.com/mysql/MySQL-5.5/;
三种安装方法:二进制包安装,RPM包安装、源码安装;
检查是否安装了mysql组件:
rpm -qa | grep -i mysql
卸载mysql各种组件:
rpm -ev MySQL-devel-*
查询用户:cat /etc/passwd | grep mysql
查询用户组:cat /etc/group | grep mysql
查看版本:mysqladmin --version
开启服务:service mysql start | status | stop
设置密码:mysqladmin -u root password 123456
添加到开机自启动:
chkconfig mysql on
(ntsysv 查看开机启动列表)
mysql一些默认安装位置:
/var/lib/mysql
数据库数据文件的存放路径,
/usr/share/mysql 配置文件目录, mysql.server命令及配置文件
/usr/bin
相关命令目录, 如mysqladmin、mysqldump等
/etc/init.d/mysql 启停脚本, 如:/etc/init.d/mysql stop
copy独立的配置文件:cp /usr/share/mysql/my-huge.cnf /etc/my.cnf
修改查看字符集:show variables like "%character%"; 解决中文乱码(在字符集编码修改前建的库,字符集修改不能该改变原字符集);
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
|
character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
|
character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
注:额外的linux知识:
/var 所有服务的登录的文件或错误信息文件(LOG FILES)都在/var/log下,如/var/log/messages — 包括整体系统信息,其中也包含系统启动期间的日志。像mail,cron,daemon,kern和auth等内容也记录在var/log/messages日志中。此外,一些数据库如MySQL则在/var/lib下,用户未读的邮件的默认存放地点为/var/spool/mail;
3、mysql配置文件
主要配置文件:
二进制日志log-bin,用于主从复制
错误日志log-error,默认是关闭的,记录严重的警告和错误信息,每次启动关闭等信息;
查询日志log,默认关闭,记录查询的sql语句,开启会降低sql性能,因为记录日志要消耗系统资源;
数据文件,
linux中默认路径 /var/lib/mysql
.frm文件:存放表结构,
.myd文件:存的表数据,data
.myi文件:存的表索引,index
如何配置
4、逻辑架构介绍
分层管理,连接层、服务层、引擎层、存储层;connectors - connection pool - sql interface, parser, optimer, caches/buffer - storge engines - file system
架构可以在不同场景发挥良好作用,插件式的存储引擎,将查询处理和其他的系统任务以及数据的存储提取相分离。可根据业务选择存储引擎;
5、存储引擎
查看所有引擎命令:show engines;
查看当前引擎:show variables like "%storage_engine%";
default_storage_engine | InnoDB
storage_engine | InnoDB
Myisam和InnoDB对比:
对比项 主外键 事务 行表锁 缓存 表空间 关注点 默认安装
MyISAM N N 表锁 只缓存索引, 小 性能 Y
InnoDB Y Y 行锁 都缓存 大 事务 Y
表锁,即使操作一条记录也会多住整张表,不适合高并发操作;
行锁,只锁某一行,适合高并发;
MyISAM只缓存索引,不缓存真实数据;
InnoDB不仅缓存索引还有真实数据,对内存要求高,而且内存大小对性能有决定性作用;
阿里的存储引擎使用的是Percona Server,在之上做的修改;