在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
MySQL数据库优化可以从哪些方面入手?具体怎么做?一般我们主要从优化SQL语句、优化数据库结构、优化Mysql服务器等几方面入手,而优化SQL语句又可以分为优化查询语句和其他执行语句;数据库结构也可以从字段类型、字符编码、适当拆分、增加冗余和数据库表来做优化;至于优化Mysql服务器就更简单了,需要遵循一定的优化原则即可。现在我们来看看具体的优化方案吧!
一、优化SQL语句
1、优化查询语句
(1)通过Explain和Describe关键字分析select查询语句,从而使开发人员知道查询效率低的原因。语法如下:explain select * from bookmanager where Name='admin' \G;
(2)通过添加索引进行优化
说起数据库的性能,索引可能使最物美价廉的东西了。使用索引可以快速的定位表中的某条记录,不用添加内存、不用修改程序,也不用调用sql语句,只需执行一个创建正确的索引,查询速度就可能提高千倍万倍。索引并不一定是主键或者唯一的字段,如果表中的某个字段总是被搜索,就可以为其创建索引。创建索引的语句如下:create index index_name on table_name(manName); 使用索引应注意的事项:使用多列索引时,查询条件必须使用索引的第一个字符。符;like关键字配置的字符串不能以符号“%”开头;or关键字连接的所有条件都必须使用索引。如果or前后有一个条件的列不是索引,那么查询中讲不使用索引。
(3)优化Order by
有两种方式如下:索引优化:对by后的列添加索引,从而大达到优化的目的;where+order by 的组合优化:通过where进行限制后在进行order by。
(4)优化group by(同3中通过加索引和where进行优化)
(5)优化limit
(6)优化子查询:在mysql中通过使用连接查询来代替子查询,从而达到优化目的。原因:子查询在执行的时候 数据库需要位内层查询语句的查询结果建立一个临时表,然后外层语句查询临时表,所以子查询的效率比较低,而连接查询就不存在这个问题。
2、优化其他执行语句
(1)优化insert语句:禁用索引,禁用唯一性检查,使用一条insert插入多条语句。
(2)优化update语句:使用一个update语句同时做多个更新。
(3)优化delete语句:删除一条记录的时间与索引的数量成正比。删除一个表的所有行,使用truncate table Tbname 而不要使用delete from table。
二、优化数据库结构
1、优化字段类型
数据库最耗时的就是IO处理,所以尽可能减少IO读写量。数字类型:尽量不要使用double类型,不仅是长度问题,还有精度问题。对于整数,数据量大时区分TinyInt、Int、BigInt,如果确定不实用负数,添加unsigned定义;字符类型:尽量不要使用text类型,性能低于char和varchar,定长使用char,不定长使用varchar;时间类型:尽量不使用Timestamp,只精确到某一天的话,可用Date类型; Enum和Set:状态字段用enum,如果存放可预先定义的属性数据可以尝试用set。
2、优化字符编码
3、适当进行拆分
4、适当增加冗余
5、优化数据库表
三、优化Mysql服务器
优化Mysql服务器要遵循以下的优化原则:内存中的数据要比磁盘上的数据访问的快;让数据尽可能长时间的留在内存里能减少磁盘读写活动的工作量;让索引信息留在内存里要比让数据记录的内容留在内存里更为重要。
看完MySQL数据库优化的三大方面,相信大家对怎么做优化都有了大致的了解。主要要求大家从全局出发考虑优化问题,而不仅仅只是片面的调整。大家对MySQL数据库优化的相关内容感兴趣的话,可以继续关注该栏目,资讯将不定时更新MySQL数据库优化的内容。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
JavaWeb四大作用域,你都了解吗?
今天,小编要给大家详细解析JavaWeb四大作用域。四大作用域从小到大为:PageContext(jsp页面),ServletRequest(一次请求),HttpSession(一次会话),ServletContext(整个web应用)。相信大家对四大作用域并不陌生,不过大家真的都了解吗?
6895
2019-07-23 15:15:08
什么是微服务?微服务优缺点分析
微服务是近些年流行起来的热门概念,与传统的的IT架构相比,它有许多的优势。那么到底什么是微服务呢?本文将对微服务优缺点进行分析,让大家全面的了解微服务。
7693
2019-08-13 09:59:51
MYSQL好学吗?一般要学多久?
Mysql好学吗?一般要学多久?对于有一定计算机语言基础的同学来说,Mysql算是非常好学的数据库了。学多久要看自身基础,没有基础的同学也不用担心,Mysql绝对可以作为大家入门数据库的第一步。如果报名线上培训班有老师的指导的话,最快8天就可以掌握Mysql数据库的知识了。那么该如何学习Mysql呢?
16082
2019-08-16 16:38:27
如何理解学习Java面向对象
在编程开发中有面向过程和面向对象两种编程思维,很多朋友在学习面向对象的时候,总是很难理解。那到底什么是面向对象。面向对象有什么特点,应该如何理解面向对象呢?
5459
2019-10-28 18:47:14
学习MySql需要掌握哪些基础知识?
学习MySql基础知识,需要掌握需求分析、关系型数据库用来描述实体与实体之间的关系、MySql数据库服务器、MySql得安装和卸载、MySql的sql语句及操作相关的知识。
5938
2020-03-04 17:06:07