返回顶部
首页 > 资讯 > 数据库 >MySQL数据库优化的六种方式总结
  • 668
分享到

MySQL数据库优化的六种方式总结

2024-04-02 19:04:59 668人浏览 安东尼
摘要

目录方法一方法二方法五方法六附:Mysql优化的常用方法总结方法一 使用连接来代替子查询(Sub-Queries)。可以使用SELECT语句来创建一个单列的查询结果,然后把这

方法一

使用连接来代替子查询(Sub-Queries)。可以使用SELECT语句来创建一个单列的查询结果,然后把这个结果作为过滤条件用在另一个查询中。

DELETE  FROM  customerinfo
WHERE  CustomerID  NOT  in  (SELECT customerid  FROM  salesinfo)

方法二

事务。不是所有的数据库操作都可以只用一条或少数几条sql语句就可以完成的。更多的时候是需要用到一系列的语句来完成某种工作。可以保持数据库中数据的完整性和一致性

BEGIN;
  INSERT   INTO   salesinfo   SET   customerid=14;
  UPDATE   inventory   SET   quantity =11   WHERE   item='book';
COMMIT;

方法三

定表。由于在事务执行的过程中,数据库将会被锁定,因此其他的用户请求只能暂时等待直到该事务结束。有些情况下我们可以通过锁定表的放大来获得更好的性能。

LOCK TABLE inventory WRITE SELECT quantity  FROM   inventory   WHERE Item='book';
...
UPDATE   inventory   SET   Quantity=11   WHERE  Item='book';UNLOCKTABLES

方法四

使用外键。锁定表的方法可以保护数据的完整性,但是却不能保证数据的关联性。

CREATE  TABLE   customerinfo( customerid   int primary key) engine = innodb;
CREATE  TABLE   salesinfo( salesid int not null,customerid  int not null, primary key(customerid,salesid),foreign key(customerid)  references  customerinfo(customerid) on delete cascade)engine = innodb;

方法五

使用索引

索引是提高数据库性能的常用方法,它可以令数据库服务器以比没有索引快得多的速度检索特定的行,尤其是在查询语句当中包含有MAX(),MIN()和ORDERBY这些命令的时候,性能提高更为明显。

那该对哪些字段建立索引呢?

一般说来,索引应建立在那些将用于JOIN,WHERE判断和ORDERBY排序的字段上。尽量不要对数据库中某个含有大量重复的值的字段建立索引。对于一个ENUM类型的字段来说,出现大量重复值是很有可能的情况

例如customerinfo中的“province”…字段,在这样的字段上建立索引将不会有什么帮助;相反,还有可能降低数据库的性能。我们在创建表的时候可以同时创建合适的索引,也可以使用ALTERTABLE或CREATEINDEX在以后创建索引。此外,mysql从版本3.23.23开始支持全文索引和搜索。全文索引在MySQL中是一个FULLTEXT类型索引,但仅能用于MyISAM类型的表。对于一个大的数据库,将数据装载到一个没有FULLTEXT索引的表中,然后再使用ALTERTABLE或CREATEINDEX创建索引,将是非常快的。但如果将数据装载到一个已经有FULLTEXT索引的表中,执行过程将会非常慢。

方法六

选取最适用的字段属性。MySQL可以支持大数据量的存取,但是数据库中的表越小,在上面执行的查询就越快。所以可以将表中的字段宽度设置的尽可能小

附:mysql优化的常用方法

1.索引的优化

  • 只要列中含有NULL值,就最好不要在此例设置索引,复合索引如果有NULL值,此列在使用时也不会使用索引
  • 尽量使用短索引,如果可以,应该制定一个前缀长度
  • 对于经常在where子句使用的列,最好设置索引,这样会加快查找速度
  • 对于有多个列where或者order by子句的,应该建立复合索引
  • 对于like语句,以%或者‘-’开头的不会使用索引,以%结尾会使用索引
  • 尽量不要在列上进行运算(函数操作和表达式操作)
  • 尽量不要使用not in和<>操作

2.sql语句的优化

  • 查询时,能不要*就不用*,尽量写全字段名
  • 大部分情况连接效率远大于子查询
  • 多使用explain和profile分析查询语句
  • 查看慢查询日志,找出执行时间长的sql语句优化
  • 多表连接时,尽量小表驱动大表,即小表 join 大表
  • 在千万级分页时使用limit
  • 对于经常使用的查询,可以开启缓存

3.表的优化

  • 表的字段尽可能用NOT NULL
  • 字段长度固定的表查询会更快
  • 把数据库的大表按时间或一些标志分成小表
  • 将表分区

总结

到此这篇关于MySQL数据库优化的六种方式的文章就介绍到这了,更多相关MySQL数据库优化内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL数据库优化的六种方式总结

本文链接: https://lsjlt.com/news/163645.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MySQL数据库优化的六种方式总结
    目录方法一方法二方法五方法六附:mysql优化的常用方法总结方法一 使用连接来代替子查询(Sub-Queries)。可以使用SELECT语句来创建一个单列的查询结果,然后把这...
    99+
    2024-04-02
  • mysql数据库优化方式汇总
    这篇文章主要讲解了“mysql数据库优化方式汇总”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql数据库优化方式汇总”吧!数据库优化sql语句优化索引...
    99+
    2024-04-02
  • node连接MySQL数据库的3种方式总结
    目录1.使用mysql包的提供的接口进行连接2.建立数据库连接池总结以下我们将说明node连接数据库的三种方式,并进行利弊说明,以挑选出最适合项目的连接方式。 1.使用mysql包的...
    99+
    2022-11-13
    node连接mysql nodejs mysql nodejs连接数据库
  • mysql数据库中getshell的方式总结
    目录outfile和dumpfile写shell利用条件基于union联合查询:非联合查询outfile和dumpfile的区别secure_file_prive日志ge...
    99+
    2022-07-11
    mysql getshell getshell方法
  • mysql中数据库覆盖导入的几种方式总结
    目录部分覆盖业务场景应用方案完全覆盖业务场景应用方案总结众所周知,数据库中INSERT INTO语法是append方式的插入,而最近在处理一些客户数据导入场景时,经常遇到需要覆盖式导...
    99+
    2024-04-02
  • JS中的六种继承方式以及优缺点总结
    目录前言原型链继承 构造函数继承 组合继承(原型链继承和构造函数继承组合) 寄生式继承 组合寄生式继承 extends继承 总结前言 继承是JS世界中必不可少的一个环节,号称JS的三...
    99+
    2024-04-02
  • 数据库SQL调优的几种方式汇总
    目录char  vs varchar开启慢查询日志来定位查询慢的语句合理使用关键字优化查询缓存适当使用索引  分割数据表非规范化的方式总结 最近在复习SQL调优,总结了下主要有以下几种方式:...
    99+
    2024-04-02
  • webpack的优化方式总结
    本篇内容介绍了“webpack的优化方式总结”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、准备工作:测...
    99+
    2024-04-02
  • 数据库SQL语句优化总结
    这篇文章主要介绍“数据库SQL语句优化总结”,在日常操作中,相信很多人在数据库SQL语句优化总结问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”数据库SQL语句优化总结”的疑惑...
    99+
    2024-04-02
  • MySQL 数据库范式化设计理论总结
    目录一、设计范式1.第一范式(1NF)2.第二范式(2NF)3.第三范式 (3NF)二、范式化设计三、反规范化设计四、设计总结一、设计范式 问题: 什么是范式化设计,为什么需要反规范...
    99+
    2024-04-02
  • MySQL总结(六)数据库备份与还原-详解
    数据库库备份和还原 1. 备份的应用场景 在服务器进行数据传输、数据存储和数据交换,就有可能产生数据故障。比如发生意外停机或存储介质损坏。这时,如果没有采取数据备份和数据恢复手段与措施,就会导致数据的丢失,造成的损失是无法弥补与估量的。...
    99+
    2015-02-09
    MySQL总结(六)数据库备份与还原-详解
  • MySQL数据库知识汇总(六)
    ...
    99+
    2024-04-02
  • 数据库性能优化参数总结(一)
    1.AWR报告快照间隔时间1小时改为半小时,保留天数修改 --不用重启库 2.闪回时间15分钟改为1小时--不用重启库 3.修改数据库允许的最大连接数  进程数150改为500 ,会话数改为555...
    99+
    2024-04-02
  • Mysql常见的慢查询优化方式总结
    目录前言(1)数据库中设置SQL慢查询(2)分析慢查询日志         (3)常见的慢查询优化总结前言 这篇文章主要是就在公司实习的时候,对SQL优化工作作出的一些整...
    99+
    2023-05-05
    mysql如何优化查询 慢查询sql语句优化 MySQL查询优化
  • JavaScript中六种面试常考继承方式总结
    目录原型链继承盗用构造函数组合继承原型式继承寄生式继承寄生式组合继承js的几种继承方式在我们面试的时候经常会被问到,所以深入理解js几种继承方式以及它们的优缺点是非常有必要的。 原型...
    99+
    2023-02-13
    JavaScript继承方式 JavaScript继承
  • mysql数据优化方式
    1、选取最适用的字段属性MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。...
    99+
    2024-04-02
  • Django项目优化数据库操作总结
    目录合理的创建索引设置数据库持久连接 减少SQL的执行次数仅获取需要的字段数据使用批量创建、更新和删除,不随意对结果排序参考网址:Django官方数据库优化 使用 QuerySet...
    99+
    2024-04-02
  • 9种 MySQL数据库优化的技巧
    目录1、选择最合适的字段属性2、尽量把字段设置为NOT NULL3、使用连接(JOIN)来代替子查询(Sub-Queries)4、使用联合(UNION)来代替手动创建的临时表...
    99+
    2024-04-02
  • 总结Python函数参数的六种类型
    目录一、函数的单参数传递二、多参数传递三、关键字参数四、缺省参数五、不定长参数 - 元组六、不定长参数 - 字典前言: Python函数之所以很好用,还有一点就的能传递参数实现不同场...
    99+
    2024-04-02
  • MySQL数据库性能优化的六大技巧分享
    本篇内容主要讲解“MySQL数据库性能优化的六大技巧分享”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL数据库性能优化的六大技巧分享”吧!1.存储引擎的...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作