在线客服
扫描二维码
下载博学谷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数据库优化的内容。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
Kotlin与Java相比的优缺点有哪些?
Kotlin语言被谷歌公开作为Android官方开发语言之后,就有传言,kotlin会取代Java。然而即使到了现在还是有很多人并不了解kotlin是什么。所以今天小编给大家科普一下关于kotlin的一些问题。
14431
2019-08-09 18:03:46
Java技术未来发展前景如何?
Java编程语言一直以来都是使用率最高的编程语言之一,由于Java具有安全性能高、可移植性、可拓展等特点,目前Java被国内外大型企业所推崇。对于Java技术未来发展前景,主要从从业者职业发展和发展领域、语言本身等几个方面来看。
5109
2019-11-19 18:25:05
如何才能达到Java架构师技术要求标准?
Java架构师需要熟练掌握复杂的数据结构和算法、熟练使用linux操作系统,Linux线上排除故障、熟悉tcp协议、系统集群、负载均衡、反向代理、动静分离,网站静态化、数据库设计能力、队列中间件等知识。
4802
2020-02-14 18:33:54
成为Java架构师需要学习哪些知识?
成为 Java 架构师需要学习哪些知识?相信 Java 架构师是很多程序员的终极目标,其实立志成为Java 架构师,最应该做好准备的是保持一颗持之以恒学习的心。学习专业技能知识固然重要,但是如果没有这个前提,许多人在通往梦想的路上就已经放弃了。因此,学习态度是一切的前提和决定成败的关键因素。
5940
2020-06-19 10:52:01
数据库备份和还原学习笔记
本文总结了数据库备份和还原的相关学习笔记,主要内容包括了备份的应用场景、备份与还原的语句以及图形化界面备份与还原等内容。下面一起来一探究竟吧!
4904
2020-07-07 17:45:13