前言
最近小编了解到很多项目在用的数据库软件都是Mysql,之前只知道Sql Server,问题来了,为什么会用Mysql,Mysql是什么样的数据库,我可以用它来干什么……别急,咱们一点一点来了解。
正文
MySQL是什么
MySQL是一种DBMS,一个关系型数据库管理系统,一种数据库软件,由瑞典MySQL AB公司开发,目前属于Oracle旗下产品。 MySQL是市场占有率最大的开源数据库。
优点
1. 开源
MySQL源代码免费下载
2. 简单
MySQL体积小,便于安装和使用
3. 性能优越
MySQL执行非常快,性能足够与商业数据库(Oracle)媲美
4. 功能强大,可信赖
MySQL提供的功能足够与商业数据库媲美,某些非常重要和声望很高的公司(Google、百度、facebook、腾讯等)、站点使用MySQL,这些公司和站点都使用MySQL来处理自己的重要数据。
特点
- 使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性;
- 支持AIX、HP-UX、Liuux、MacOS、windows等多种操作系统;
- 为多种编程语言提供了API,这些编程语言包括C、C++、Python、Java、perl等;
- 支持多线程,充分利用CPU资源;
- 优化SQL查询算法,有效地提高查询速度;
- 既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持;
- 提供TCP/IP、ODBC和JDBC等多种数据库连接途径
- 提供用于管理、检查、优化数据库操作的管理工具
- 可以处理拥有上千万条记录的大型数据库。
适用场景
- web网站系统(web站点,是mysql最大的客户群,也是mysql发展中的中流砥柱)
- 数据仓库系统
- 日志记录系统
- 嵌入式系统(嵌入式环境对软件系统最大的限制是硬件资源非常有限,而mysql在硬件资源的使用方面可伸缩性非常强,而且mysql有专门针对嵌入式环境的版本)
项目中的应用
1.主从复制
目的:
通过备份数据库的方法提高数据库的安全性,当主服务器/从服务器出现问题时, 可以切换到从服务器作为备份;
经过读写分离的设置,切分了主服务器和从服务器之间的负荷,实现了负载均衡;
过程:
在复制的过程中一个服务器充当主服务器,而一个或多个服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到从服务器的更新。当一个从服务器连接主服务器是,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,然后后封锁并等待主服务器通知新的更新。
(PS:二进制日志指记录修改数据或有可能引起数据改变的MySQL语句;中继日志指在复制环境中产生的日志信息)
详细配置过程可参见博客:点击打开链接
2. 索引
索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。简单来说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度,有这样一个形象的比喻,如果正确合理设计并且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。
……
小结
MySQL的一点入门小知识介绍到这儿,会在后面的学习中继续深入了解,请各位大神多多指教。