001、MySQL简介
MySQL四模块:
- MySQL的体系结构
- MySQL的备份恢复
- MySQL的主从架构
- MySQL优化
MySQL区别与其他数据库不同点:
- MySQL插件式存储引擎(innodb)
- MySQL开源协议(GPL协议)
- MySQL replication的应用(MySQL复制的功能,针对binlog)
- MySQL第三方工具很完善(比如被称为瑞士军刀的percona工具)
- MySQL社区活跃
- MySQL在互联网中广泛应用
MySQL的server层是由c++编写,存储引擎层是由c编写。
如何学好MySQL,如何做好一名dba
- 软素质:学好系统(Linux:内存,CPU,IO),数据库(安装,体系结构,备份恢复,优化,参数设置,故障排查),硬件层面(raid级别,bios,cache层面),设计层次(表结构,字段类型的选择,索引)
- 硬素质:抗压能力,反应快,会猜(出现问题要能够猜出大致哪里的问题),英语阅读能力,团队协作能力,表达能力与自信心,流程化,了解市场情况(技术网站)
软素质+应素质=好的dba
free -m:查看内存,当swap空间使用到的时候才能说明内存不够用了。
[root@localhost ~]# free -m
total used free shared buffers cached
Mem: 2011 584 1426 0 30 327
-/+ buffers/cache: 227 1784
Swap: 3999 0 3999
top:查看cpu,io等性能。
top - 22:22:54 up 5 min, 3 users, load average: 0.05, 0.33, 0.19
Tasks: 119 total, 2 running, 117 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.3%sy, 0.0%ni, 98.7%id, 0.0%wa, 0.3%hi, 0.7%si, 0.0%st
Mem: 2059580k total, 599556k used, 1460024k free, 31356k buffers
Swap: 4095992k total, 0k used, 4095992k free, 335028k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 15 0 10348 724 608 S 0.0 0.0 0:00.62 init
2 root RT -5 0 0 0 S 0.0 0.0 0:00.00 migration/0
3 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0
4 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/0
5 root 10 -5 0 0 0 S 0.0 0.0 0:00.37 events/0
6 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 khelper
23 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 kthread
27 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 kblockd/0
28 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 kacpid
65 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 cqueue/0
68 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 khubd
70 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 kseriod
138 root 15 0 0 0 0 S 0.0 0.0 0:00.00 khungtaskd
139 root 25 0 0 0 0 S 0.0 0.0 0:00.00 pdflush
140 root 15 0 0 0 0 S 0.0 0.0 0:00.07 pdflush
如何下载MySQL
进入官网:www.mysql.com

往下找到community版本的,即社区版本,基于开源协议(GPL)的。


MySQL数据库分类和版本
MySQL版本采用双授权政策,分为社区版和商业版,这两个版本又各自分四个版本依次发布。
分为:alpha版,beat版,rc版,GA版。
- alpha版本:刚研发出来,未经测试
- beat版本:经过简单的测试环境,并不是很完善。
- rc版本:经过很多的测试,但是仍然有bug存在,需要原厂打补丁。
- GA版本:经过大量测试,比较稳定的版本。
MySQL商业版,由MySQL公司发布,同时参考社区版的先进算法和功能,是MySQL公司的盈利产品,需要付费使用。
MySQL社区版,由MySQL的爱好者参与开发测试,完成软件的管理测试,社区设立bug汇报机制,收集bug。免费使用。
MySQL版本的选择:
- MySQL5.0~5.1,默认存储引擎是myisam
- MySQL5.4~5.7,MySQL5.5之后的默认存储引擎是innodb
- MySQL6.0~7.0,主要是MySQL cluster
建议选择MySQL版本:
- 建议选择开源的社区版GA版本
- 选择MySQL数据库GA版本发布后6个月以上的GA版本
- 选择前后几个月没有大的BUG修复的版本,而不是bug集中修复的版本
- 考虑开发人员开发程序使用的版本是否兼容你选的版本,作为内部开发测试数据库环境,测试3到6个月。
MySQL数据库和实例的区分
MySQL是一个单进程多线程的数据库。
数据库:
物理操作系统文件或者其他形式文件类型的集合,在MySQL中,数据库文件可以是frm,myd,ibd结尾的文件。
数据库实例:
由数据库后台进程(单进程)/线程(多线程)以及一个共享内存区组成,数据库实例是用来操作数据库文件的,MySQL是一个单进程多线程模型的数据库。
两者关系是一对一,一对多。即一个实例可以对应多个数据库文件。