您的位置:首页 > 数据库 > MySQL

MySQL数据库的优化技术

2014-11-27 08:18 387 查看
  这是一个在开发和面试的时候经常会遇到的一个问题。

对mysql的优化是一个综合性的技术,主要包括 :

a 表的设计合理化(符合3NF)

例如我们要开发一个网上订票系统,如果这个系统的表格都没有设置外键,数九冗余就会比较大,如果没有定时的清除一些无用的数据,也会造成特别大的数据冗余。解决方案:重新设计表格。

b: 添加适当的索引(index)

MySQL索引的种类有四种: 普通索引、主键索引、唯一索引unique、全文索引

什么是全文索引?百度搜索java,很快就会返回结果,  这个关键字是处于一篇文章中的,这种检索是针对文章的 

全文检索技术,就是以数据诸如文字,声音,图像等为主要内容,以检索文献资料的内容而不是外表特征的一种检索技术·

主键索引的效率是最高的,但是一张表只有一个  
还有一种是复合索引,两个或更多个列上的索引被称作复合索引。

c: 分表技术(水平分割、垂直分割)

d: 读写[写:update/delete/add]分离

e: 存储过程 [模块化编程,可以提高速度]

f: 对mysql配置的优化

在my.ini文件中配置最大并发数, 一般网站调整到1000左右,如果太大,内存有可能就撑不下去了,还可以调整缓存大小

g: mysql服务器硬件的升级

例如服务器的内存

h: 定时的去清除不需要的数据,定时进行碎片整理

特别是当存储引擎为MyISAM时

数据库的三层结构(存储过程能够优化性能的原因)

应用程序(客户端)访问数据库(文件),是通过数据库管理系统(DBMS),数据库管理系统接收客户端发来的指令(sql语句),先进行编译然后执行,编译后的这条指令一般会缓存在数据库服务器中,原因是sql语句的编译是非常耗费时间的。

编写存储过程(分页存储过程/触发器),存储过程是数据对象,编译好之后被存放数据库管理系统中,当需要调用的时候直接调用就好,不需要再次编译,提高了效率。另外存储过程增强了模块化编程,提高了编程的速度。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据库 优化 mysql