当前位置:首页 > 日记 > 正文

MySQL数据库优化中应遵循的原则

MySQL数据库优化中应遵循的原则
这是一篇很好的mysql数据库优化文章,我在网上看到过,内容很充实!
1。使用索引遍历表更快。
默认创建的索引是非集群索引,但有时不是最好的。在非聚集索引中,数据物理存储在数据页上。合理的索引设计应基于对各种查询的分析和预测:
a有大量重复值,并且经常有范围查询(>,=,< =)和按顺序按组排列的列,可以考虑建立群集索引;
b.通常同时访问多个列,每个列都有一个重复值,可以考虑建立组合索引。
C.复合指数应尽量使关键查询索引覆盖,必须使用最频繁的列。索引有助于提高性能,但并不是越多越好的指标,只是相对指标可以导致系统是低效的。用户增加了一个指标,每个表,并该指数收集维修将作出相应的更新工作。
2,在海量查询中尽可能少地进行格式转换
3、顺序和组:使用顺序和组的短语,任何指标有助于提高选择效果。
4,列上的任何操作都会导致表扫描。它包括数据库函数、计算表达式等。当查询完成时,尽可能将操作移到等号的右侧。
5、内、或子句经常使用工作表使索引无效。如果不产生大量重复的值,则可以将子语句分开。
6、只要你能满足你的需求,你应该使用尽可能小的数据类型:例如,使用MEDIUMINT int
7,尝试将所有列设置为null,如果您想保存null,请手动设置它,而不是将其设置为默认值。
8。仅用varchar、文本、BLOB类型
9、如果你的数据只有你知道。最好使用枚举类型
10,正如graymice所说,建立一个索引。
下面是我做的一个实验,您可以发现索引可以大大提高查询的效率。
我有一个会员信息表,用户,其中有37365个用户记录。
未索引时查询:
sql语句a:
代码:
复制代码代码如下所示:
从用户名如徐%的用户中选择*;

MySQL前端的8个查询很长:总共有960条记录,总共有960条。
sql语句b:
代码:
复制代码代码如下所示:
从用户名如徐%的用户中选择*;

MySQL前端的8个查询很长:总共有836条记录,总共有836条。
语句C:
代码:
复制代码代码如下所示:
从用户名如A的用户中选择*;

MySQL前端的8个查询很长:总共有7条记录,总共有7条。
在用户名列中添加索引:
代码:
复制代码代码如下所示:
创建索引usernameindex用户(用户名(6));

再查询:
sql语句a:
代码:
复制代码代码如下所示:
从用户名如徐%的用户中选择*;

MySQL前端的8个查询很长:总共有960条记录,总共有960条。
sql语句b:
代码:
复制代码代码如下所示:
从用户名如徐%的用户中选择*;

MySQL前端的8个查询很长:总共有836条记录,总共有836条。
语句C:
代码:
复制代码代码如下所示:
从用户名如A的用户中选择*;

MySQL前端的8个查询很长:总共有7条记录,总共有7条。
在实验过程中,我没有发现任何程序,上面的数据在单表查询中,索引可以大大提高查询速度。
另一种说法是,如果指数成立,如%。徐类型的查询,速度是最明显的。因此,我们在编写SQL语句时也尝试这样做。
我们对多表查询的优化原则是:
尝试在左/右连接上建立左侧连接的索引…+条件,条件语句中涉及的字段。
多表查询反映了索引优于单表查询的优点。
11、建立指标的原则:
如果一个数据列的前缀是很少重复,我们最好指标这个前缀,MySQL支持这个指标。我使用的指数是指数的6个字符的用户名左边。短的指标,占用硬盘空间少,和更少的时间花费在检索过程。这种方法可以指数达255字的最左边的字符。
在许多情况下,我们可以对多列数据的建立进行索引。

索引应该建立在查询条件下比较的字段上,而不是在我们要查找和显示的字段上。
12,热情地提出问题:在,或从句中经常使用工作表,即失败的索引。如果你不产生大量重复的值,可以被认为是分开的句子。
请举例说明这句话是怎么理解的。
例子如下:
如果指数在fields1和专业同时成立,fields1是主要指标
下面的SQL使用索引
代码:
复制代码代码如下所示:
SELECT * FROM tablename1哪里fields1 = 'value1'and专业= 'value2

下面的SQL不使用索引
代码:
SELECT * FROM tablename1哪里fields1 = 'value1'or专业= 'value2
{代码}
13。索引带来更快的查询速度,但索引也占用额外的硬盘空间。(当然,硬盘空间现在不是问题)。当将新记录插入到表中时,它也需要更新。
有些表如果经常插入,而不是选择,则没有索引。否则,每次写入数据都必须重写以花费时间;这个索引取决于实际情况,通常需要索引。

14。当我怀疑查询的效率时,我通常使用mysql的解释来跟踪查询。
您比较MySQL前端的时间长度,我认为从查询中扫描字段的数量更准确。

相关文章

mysql4文件C:mysqlsharecharsetscon

mysql4文件C:mysqlsharecharsetscon

发现,文件,电脑软件,errcod,mysqlsharecharsetsconf,下面的提示是在PHP + MySQL 5.1 4.4.1环境介绍: 复制代码代码如下所示: 文件C: MySQL 分享字符集。conf'not发现(Errcode:22)字符集# 33不是一个,是的, 在查找之后,基本上可以确定PHP的较低版本…

oracle性能优化建议综述

oracle性能优化建议综述

综述,性能优化,建议,电脑软件,oracle,原则一:注意WHERE子句中的连接顺序: Oracle使用自底向上序列解析WHERE子句。根据这个原则,表之间的连接必须写在其他条件之前。可以筛选出最多记录数的条件必须写在WHERE子句的结尾处。 特别是主键id =这…

PHP计算二维数组中元素数的一种方

PHP计算二维数组中元素数的一种方

计算,方法,二维数组,中元,素数,解决 1。第一次读到的数据从数据库均场合并到一个字符串。 复制代码代码如下所示: 而($米萝= $连接器,fetch_array($结果)) { (=) $str =内容$米萝{}。'。; } arr_str美元= substr($str,0 - 1); > 字符串被截取,因为最…

解决问题在PHP源#

解决问题在PHP源#

解决问题,电脑软件,PHP,PHP最近写的查询里面的源# 4或源# 5经常遇到这样的问题,它是通过mysql_query($ SQL1)进行查询操作,返回的结果不是场源,去网上查一些信息,是资源问题,虽然原则上这种情况还不明白,但解决方案,这是解决问题的代码: 复制代码代码…

一种通过win7系统桌面快捷方式创建

一种通过win7系统桌面快捷方式创建

本地连接,系统,桌面快捷方式,方法,电脑软件,点评:当我们刚刚换了win7的系统,因为没有人教,我知道系统好,所以啊,为了面子,我不能找到一个长时间的连接的地方,我只能默默的寻找它,所以我想给你一个方法来创建桌面上的本地连接。 萧边只是改变了win7…

Linux的BG和FG命令简介

Linux的BG和FG命令简介

命令,简介,电脑软件,Linux,BG,评论:Linux提供了FG和BG命令,使我们能够轻松地调度正在运行的任务,并使程序在前台和后台之间切换。本文将详细介绍,需要的朋友可以参考。 我们都知道,在Windows上,我们要么让程序在后台运行,要么停止服务,而不是让程序…

升级后,电影已死,蓝屏快快。

升级后,电影已死,蓝屏快快。

蓝屏,升级,已死,电影,电脑软件,问题: 在我们3.5版开始的时候,再升级到5,看了几部电影,从第一部电影死机,电脑屏幕不动,只有关掉电源重启蓝屏开机,然后再打开电源,从现在开始关掉新电影,看或者卡死。 答案uff1a 建议您考虑重新加载系统,然后将安装的…

如何打开windows的路由功能

如何打开windows的路由功能

路由功能,电脑软件,windows,点评:如何打开windows的路由功能,步骤非常简单,需要的朋友可以看看。 打开windows的路由功能 1,Windows NT: 打开注册表:REGEDIT.EXE 命中:hkey_local_machine 系统 CurrentControlSet 服务 TCPIP 参数 增加: 价值的名…

对spoolsrv.exe-spoolsrv的作用是

对spoolsrv.exe-spoolsrv的作用是

作用,电脑软件,spoolsrv,exe,点评:spoolsrv.exe是木马程序。该木马允许攻击者访问你的计算机,窃取密码和个人数据 进程文件:spoolsrv或spoolsrv.exe 进程名称:spoolsrv.exe病毒 过程类别:安全风险的过程 英文描述: spoolsrv.exe进程是注册为木…

删除在Linux下大型数据文件中重复

删除在Linux下大型数据文件中重复

字段,数据文件,删除,方法,电脑软件,评论:如果你找Linux,你找不到合适的工具。SED /呆呆的等流处理工具只能处理一行或一列,你不能找到重复的行字段。它有自己的Python程序,突然想起了MySQL,所以宇宙的巨大转变 数据采集程序最近写生成线包含100…

对负载平衡的深入分析

对负载平衡的深入分析

负载,电脑软件,Oracle RAC提供了两种方式实现负载平衡,首先是纯粹的技术手段,即在用户连接,根据负载电流的系统决策请求节点处理用户;其次是面向企业的,人工分割成许多服务中的应用,通过服务连接请求的节点处理这是在两指具体看: 纯技术手段(面向…

如何设置win7笔记本移动WiFi共享网

如何设置win7笔记本移动WiFi共享网

网络,如何设置,电脑软件,WiFi,点评:Win7虚拟无线网卡的使用,没有一个路由器,容易为自己的智能网络创建自己的网络,是不是很漂亮吗 1、在Win + R V的第一步操作;酒吧;操作;cmd输入菜单栏;和一个命令提示符,输入命令netsh wlan设置hostednetwork模式=…