MySql初步了解
1、数据的保存:
(1)文件的安全性问题
(2)文件不利于查询和对数据的管理
(3)文件不利于存放海量数据
(4)文件在程序中控制不方便
随着时间的发展,产生了数据库的概念,可以解决上面存在的问题,社会中,新产品的诞生可以都是解决现有的技术中的缺陷,就如同《淘宝这十年》中阐述的那样,新技术的出现时总是解决当前存在的一系列问题而诞生。计算机的发展大体是这样的,但是放到哲学界可能不一定适应,世界上就没有绝对正确的东西,就如同我这句话一样,不知道怎样......
2、安装数据库服务器,只是在机器上装了一个数据库管理程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库
3、数据库的基本操作(数据库语句的具体写法下一次详细讨论)
CRUD
create
retrieve
update
delete
4、MySQL数据库的存储引擎
在企业中常用的两种方式是:InnoDB MyISam,这两种存储引擎在上面的表格中的优缺点已经写出来,希望大家能认真的看一下。
InnoDB:支持外键【sphinx】
MyISam:批量插入速度快,支持全文索引(需要声明)
MyISAM不支持事务、也不支持外键,但其访问速度快,对事务完整性没有要求
InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是比起MyISAM存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。
任何技术都有优点与缺点,在计算机行业很难做到所谓的完美,得到某些东西的同时肯定损失另一部分东西,这点在计算机界展现的淋漓尽致。
5、存储引擎的选择
(1)如果应用不需要事务,处理的只是基本的CRUD操作,MyISAM是不二选择
(2)如果需要事务支持,并且有较高的并发读写频率,InnoDB是不错的选择。
(3)Memory存储引擎就是将数据存储在内存中,由于没有磁盘I/O的等待,速度极快。但 由于是内存存储引擎,所做的任何修改在服务器重启后都将消失。(经典用法是用户的在线状态.)
6、数据库的优化方式
(1) 数据库设计
(2)sql语句优化
(3)数据库参数配置
(4)恰当的硬件资源和操作系统
按照上面的顺序,体现出了对数据 库性能影响的大小
数据库的表的设计是非常重要的,数据库三范式的使用,外键是否使用,需求的合理性达到一个合理的需求是关键的,一方面需要数据库建表的经验,另一方面需要对业务需求的理解程度,
下一篇文章我将要介绍在一个公司中产品经理与项目经理的管理重要性。
SQL语句的优化步骤:
(1)通过show status命令了解各种SQL的执行频率。
(2)定位执行效率较低的SQL语句-(重点select)
(3)通过explain分析低效率的SQL语句的执行情况
(4)确定问题并采取相应的优化措施
本人在的公司现存在此问题,sql语句中使用了外键,同时还有关联表查询存在问题,复杂的业务逻辑使得子查询的存在,这些问题都需要解决。很多问题没有遇到的时候,总是感觉不到事情的重要性,当遇到了才后悔当初不重视。其实这就是人类的普遍现象,书到用时方恨少,大家共同努力
对于执行效率比较低的语句:(1)复杂语句的拆分建立 (2)合适的索引
数据库参数配置:
(1)最重要的参数就是内存,针对INNODB引擎,下面两个参数调的很大
innodb_additional_mem_pool_size = 64M
innodb_buffer_pool_size =1G
(2)针对于MyISam,需要调整key_buffer_size,当然调整参数还是要看状态,用
show status语句可以看到当前状态,以决定改调整哪些参数
(3)在my.ini修改端口3306,默认存储引擎和最大连接数
合理的硬件资源和操作系统 :
如果你的机器内存超过4G,那么最好采用64位操作系统和64位mysql
读写分离
如果数据库压力很大,一台机器支撑不了,那么可以用mysql复制实现多台机器同步,将数据库的压力分散。
分表技术
水平分离
垂直分离
下一个篇章将要讨论具体的mysql的技术及项目经理、产品经理的重要性
世界上很多事情在自己的眼里总也感觉不到重要,因为您的经历太少而已.....
纸上得来终觉浅,绝知此事要躬行