在线客服
扫描二维码
下载博学谷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数据库优化的内容。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
MySQL和Oracle的区别?
当你面试的时候突然被问到:MySQL和Oracle的区别?你会怎么回答?其实面试官提问的时候主要是想考察你对数据库的理解以及熟练程度,什么情况下使用 mysql,什么情况下使用 Oracle,各有什么优缺点!下面小编带大家一起分析这个问题的解答方式!
15285
2019-06-28 18:29:20
如何提升MySQL数据库性能优化能力
数据库是按照数据结构来组织、存储和管理数据的仓库,在大数据和精细化运营时代,企业越来越注重用户的数据的收集。然而虽然数据库可以存放大量,甚至上亿的数据,但是这些数据并非无序的堆放在数据库的。为了提高数据库的性能,提高数据的可用性,作为开发者必须对数据库的性能进行优化。本文就为大家介绍如何提升MySQL数据库性能优化能力。
6122
2019-11-13 18:30:42
如何才能达到Java架构师技术要求标准?
Java架构师需要熟练掌握复杂的数据结构和算法、熟练使用linux操作系统,Linux线上排除故障、熟悉tcp协议、系统集群、负载均衡、反向代理、动静分离,网站静态化、数据库设计能力、队列中间件等知识。
5379
2020-02-14 18:33:54
初级Java后端开发工程师需要学什么?
近几年,可以说是互联网飞速发展的几年。在IT技术人才日益紧缺的同时,程序员似乎遍地都是,好像只要会打几行代码,能做几个页面就是标准的开发工程师了。但其实一个技术开发工作者的要求远远没有那么低,下面我们来一起看看,初级Java后端开发工程师需要学什么?
10510
2020-07-17 15:40:26
我做了10年程序员 最后Java架构师弯道超车
我想继续在IT行业里工作,而为了让职业生涯更长一些,站在行业技术的制高点去竞争,那就需要换一个赛道上升一个维度,这样我的胜率会提升很多!
3082
2022-05-27 11:48:29
