精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
MySQL是著名的开源数据库,MySQL有效填补了Access数据库和SQLSever数据库之间的差距,用Access太小了性能跟不上,用SQLSever又贵也不合适,MySQL性能尚可,且小规模使用不收费,自然受到了欢迎,当时LAMP也为了一个时尚,Oracel公司也无可奈何,阿里巴巴也受MySQL的启发,当然阿里巴巴也看到了facebook在MySQL上的分布式优化效果,启动了阿里云的研发。
瑞典一家名为MySQL AB的公司最初于1994年开发MySQL。然后,美国科技公司Sun Microsystems于2008年收购MySQL AB时获得了全部所有权。美国科技巨头Oracle在2010年收购了Sun Microsystems本身,而MySQL自此以来实际上已由Oracle拥有。 一般来说,MySQL是具有客户端-服务器模型的开源关系数据库管理系统(RDBMS)。 RDBMS是用于基于关系模型创建和管理数据库的软件或服务。
Access我用过10万条运行速度慢情况,但MySQL还没遇到过,MySQL毕竟是网络性数据库,在数据库文件管理上相对独立,可以理解为MySQL是一个数据库平台,并不是简单的一个软件。
这里推出锐英源的国外内容翻译文章、MySQL使用技巧和MySQL代码理解文档,欢迎同行交流。
MySQL开发分2个方面,结合代码开发和库内存储过程函数等开发,如果做DBA要掌握存储过程函数等开发,如果是普通程序员软件开发工程师要掌握结合代码的开发,一般是指安装好MySQL连接安装包,向操作系统里添加上连接用的DLL,连接DLL有C语言版本的,有C#.NET版本的,看你用不同的语言使用不同的安装包和DLL。有了连接环境,就可以通过连接字符串来进行连接,执行SQL的CRUD语句,建立数据集,显示结果。不过这里的CRUD语句和在数据库客户端软件里执行CRUD语句是有区别的,要注意细节。
MySQL存储过程和函数等开发,需要掌握MySQL内部的开发语言,在一个小环境里写代码语句。存储过程会返回一个数据集,在提交数据集结果前,可以执行一些复杂的过程,这些过程在存储过程里执行比在代码客户端执行能节省通信传输数据的时间和压力,在MySQL服务器端执行也会进行一定的优化,所以复杂的多步操作一般是放到MySQL存储过程或函数里,特别是事务方面。
MySQL开发DBA方向还涉及到触发器开发,触发器是指在特定操作时执行后可以进行回调操作的机制,这针对某些数据的处理的后续处理非常方便。
MySQL优化涉及到参数优化、存储过程优化、表空间优化和大表和索引优化。
参数优化,最典型的是MySQL的微、小、中和大执行模式,大执行模式对机器性能要求高,中小模式适合常用场合,但小模块在测试时可以商用时会有问题,所以不管是开发人员和DBA,首先要注意这一点。
存储过程优化是指用存储过程的优点,让整体平台运行更流畅,存储过程在服务器端执行快,在客户端执行多步有劣势。
MySQL表空间优化最典型的是varchar字段,比固定长度的char字段更好。
大表和索引优化面向千万级数据量场景,数据占用的空间太大,不进行有效的优化,整个平台都会卡。