数据库的语句应该如何优化

技术数据库的语句应该如何优化这篇文章主要介绍了数据库的语句应该如何优化,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。  在MySQL数据库怎么加快查询速度

本文主要介绍如何优化数据库的语句,具有一定的参考价值。有兴趣的朋友可以参考一下。希望大家看完这篇文章后收获多多。让边肖带你去了解一下。

MySQL数据库中如何加快查询速度,优化查询效率的主要原则是尽量避免扫描整个表,考虑对where和orderby中涉及的列建立索引。

建立索引不是建的越多越好,原则是:

第一:表里的索引不是越多越好

表中的索引越多越好,没有具体的数字。根据以往的经验,一个表中索引的最大数量不能超过6个,因为索引越多,更新和插入操作的性能也会受到影响,涉及到索引的新建和重建操作。

第二:建立索引的方法论为:

大多数查询经常使用的列;

很少修改的列;

索引需要建立在数据差异较大的列上。

在上述基础上,我们讨论如何优化sql。

00-1010首先读一个这样的语句:select * from musers where reaea=’ Beijing ‘ and age=22;

如果我们分别在区域和年龄上创建索引,mysql查询一次只能使用一个索引,所以虽然这比没有索引的全表扫描提高了很多效率,但是如果我们在区域和年龄列上创建复合索引,会带来更高的效率。

当使用索引字段作为条件时,如果索引是复合索引,则必须使用索引中的第一个字段作为条件,以确保系统使用该索引;否则将不使用索引,字段顺序应尽可能与索引顺序一致。

例如,如果我们创建这样一个索引(面积、年龄、工资),就相当于创建了三个索引(面积、年龄、工资)、(面积、年龄)和(面积),称为最佳左前缀特征。

复合索引(形如(x,y,uid)索引的索引)

a.ORDERBY+LIMIT组合的索引优化

如果SQL语句的形式为:选择[列1],[列2],从[表]按[排序]限制[偏移量],[限制]排序;

这个SQL语句优化起来相对简单,可以在字段[sort]上创建索引。

b.WHERE+ORDERBY+LIMIT组合的索引优化

如果一条SQL语句看起来像:选择[列1],[列2],from [table],其中[columnx]=[value]按[排序]限制[偏移量],[限制]排序;

在此语句中,如果仍然使用第一个示例中的索引方法,虽然可以使用索引,但效率不高。更有效的方法是创建一个联合索引(columnX,sort)。

c.WHERE+ORDERBY多个栏位+LIMIT

如果一条SQL语句看起来像:从[table]中选择*其中uid=1orderx,ylimit,10;

对于这个语句,您可以添加这样一个索引:(x,y,uid)。其实效果更好的是(uid,x,y)。这是MySQL的排序机制造成的。

感谢您仔细阅读本文。希望边肖分享的文章《如何优化数据库中的句子》对大家有所帮助。同时也希望大家对行业信息渠道给予更多的支持和关注,更多的相关知识等着大家去学习!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/50260.html

(0)

相关推荐

  • STM32单片机I/O的工作模式有哪些

    技术STM32单片机I/O的工作模式有哪些这篇文章主要讲解了“STM32单片机I/O的工作模式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“STM32单片机I/O的

    攻略 2021年11月5日
  • 【python】使用Django搭建一个简易的web服务器

    技术【python】使用Django搭建一个简易的web服务器 【python】使用Django搭建一个简易的web服务器前言
    【玛卡巴卡】需要搭建一个接受文件的服务器,现在尝试用Django一步一步实

    礼包 2021年11月26日
  • SequoiaDB 分布式事务实现原理是什么

    技术SequoiaDB 分布式事务实现原理是什么这篇文章将为大家详细讲解有关SequoiaDB 分布式事务实现原理是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1分

    攻略 2021年11月23日
  • java环形队列如何控制循环时间(java并发如何判断阻塞队列已满)

    技术Java阻塞队列BlockingQueue怎么实现这篇文章主要讲解了“Java阻塞队列BlockingQueue怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“

    攻略 2021年12月21日
  • 深入理解C++11-附录B

    技术深入理解C++11-附录B 深入理解C++11-附录B深入理解C++11
    附录B
    弃用的特征
    1.auto:
    可在任何需要声明变量类型的上文中使用,但不能声明函数参数(因为重载的原因,不能这么使用)

    礼包 2021年11月23日
  • MYSQL如何配置远程连接

    技术MYSQL如何配置远程连接这篇文章主要介绍MYSQL如何配置远程连接,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!开启 MySQL 的远程登陆帐号有两大步:1、确定服务器上的防火墙没有阻止 3

    攻略 2021年11月1日