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

MySQL数据库的十种主要优化技术

MySQL数据库的十种主要优化技术
1。优化MySQL查询缓存

高速查询缓存可以通过MySQL服务器上的查询来实现,后台数据库引擎是提高性能的最有效的方法之一,当同一个查询执行多次时,如果从缓存中提取结果,则速度非常快。

但是主要的问题是它很容易隐藏,以至于我们的大多数程序员都会忽略它,在一些处理任务中,我们实际上可以停止查询缓存工作。
复制代码代码如下所示:
缓存不工作
r = mysql_query(选择用户名从用户那里signup_date(CURDATE)> = );

缓存工程 /查询!
今天美元=日期(当前);
r = mysql_query(选择用户名从用户那里signup_date > = $今天);

缓存不工作
r = mysql_query(选择用户名从用户那里signup_date(CURDATE)> = );

缓存工程 /查询!
今天美元=日期(当前);
r = mysql_query(选择用户名从用户那里signup_date > = $今天);
2。使您的选择查询更清楚地解释

使用解释关键字是另一种MySQL优化技术。它可以让您知道MySQL正在做什么样的查询操作,这可以帮助您找到瓶颈,并显示查询或表结构的问题所在。

解释查询的结果可以告诉你这些索引是如何被引用的,表是如何被扫描和排序的,等等。

要实现SELECT查询(最好是一个更复杂的查询),请添加关键字来解释它。在这里我们可以使用phpMyAdmin,他将表中的结果告诉你。例如,如果我忘了要将列添加到索引时我正在执行的加入,能帮我找到问题的解释。
添加索引后group_id场
三.得到限制1的唯一行

有时,当你不得不寻找一张表时,你知道你只需要看到一行,你可以去一个非常独特的记录,或者只是检查任何存在的记录,它们都满足你的WHERE子句。

在这种情况下,添加一个限制1将使查询更有效,因此数据库引擎发现只有1会停止扫描,而不是扫描整个表或索引。
复制代码代码如下所示:
我有任何用户来自亚拉巴马州吗
不要这样做:
r = mysql_query(SELECT * FROM用户状态= 'alabama);
如果(mysql_num_rows(r)> 0){

}
好得多:
r = mysql_query(选择1从用户那里'alabama'limit状态= 1 );
如果(mysql_num_rows(r)> 0){

}
4中的检索字段。指数

索引不仅是主键或唯一键。如果要搜索表中的任何列,则应始终指向索引。
5。确保连接的索引是相同的类型。

如果应用程序中有多个连接查询,则需要确保链接的列在两侧表上索引,这将影响MySQL如何优化内部连接操作。

此外,所添加的列必须是相同的类型。例如,如果添加一个十进制列并在另一个表中添加int列,MySQL将不能使用至少一个指示符。甚至字符编码也必须是String类型。
复制代码代码如下所示:
对于我所在州的公司
r = mysql_query(选择company_name用户
左连接公司(users.state =公司。状态)
在users.id = $ user_id );

应将状态列编入索引
它们都应该是相同类型和字符编码。
或者MySQL可能会做全表扫描。
6。不要使用命令()

这是许多新手程序员会陷入的陷阱,你可能不知不觉地陷入了一种可怕的平静。

如果你真的需要给你的结果是随机的,有很多更好的方法。这是真的,这就需要编写更多的代码,但它避免了性能瓶颈。问题是,MySQL可能执行RAND()表中每一行的命令,这将消耗处理器的处理能力,然后返回你一行。
复制代码代码如下所示:
不要这样做:
r = mysql_query(选择由兰德用户订单用户名()限1);
好得多:
r = mysql_query(select count(*)从用户);
美元D = mysql_fetch_row(r);
兰德= mt_rand美元(0,$ { 0 } - 1);
r = mysql_query(选择用户限制为1兰特,用户名);
7。尽量避免选择*命令

您从表中读取的数据越多,查询就变慢了。他增加了磁盘需要操作的时间,或者是与数据库服务器和Web服务器分离的时间。您将经历非常长的网络延迟,仅仅因为数据不需要在服务器之间传输。

总是指定你需要的列,这是一个很好的习惯。
复制代码代码如下所示:
不喜欢
r = mysql_query(选择*从用户那里user_id = 1 );
美元D = mysql_fetch_assoc(r);
回声欢迎{ $ { 'username} };
/更好:
r = mysql_query(选择用户名从用户那里user_id = 1 );
美元D = mysql_fetch_assoc(r);
回声欢迎{ $ { 'username} };
较大的结果集之间的差异更为显著。
8。从过程分析中获得建议()

程序分析()可以从MySQL的列结构和表中的实际数据分析中给您一些建议。
9。准备好的语句

准备好的报表可以帮助您从性能优化和安全性两个方面帮助您。

编写的语句可以通过过滤已经绑定的默认变量来给应用程序提供有效的保护,防止SQL注入攻击。当然,您也可以手动过滤它,但因为大多数程序员都忘记了字符,所以很难达到这个效果。
复制代码代码如下所示:
一个准备好的语句
如果(美元支撑=美元mysqli ->准备(选择用户名,用户状态=)){
绑定参数
支撑美元-> bind_param(
执行
支撑美元->执行();
结果变量
支撑美元-> bind_result($用户名);
取/ /值
支撑美元->取();
printf(%s为%s
支撑美元->关闭();
}
10。将IP地址存储为无符号整数。

很多程序员没有意识到他们可以存储IP地址在一个整数的形式创建一个VARCHAR(15)时,当你有一个int型,你只占用4字节的空间,这是一个固定大小的区域。

您必须确保所操作的列是一个无符号int类型,因为IP地址将使用32位无符号整数。
复制代码代码如下所示:
r =更新用户设置IP = inet_aton({ } { } _server美元'remote_addr ' '),user_id = $ user_id ;

这里介绍了十种主要的MySQL优化技术。

相关文章

什么是Win8停止工作(在两种情况下的

什么是Win8停止工作(在两种情况下的

方法,两种,情况下,工作,电脑软件,点评:Win8的停止工作的解决方案基本上可分为两种情况:Windows 8启动和不启动,和朋友有类似的情况可以参考这篇文章。 该修复方法在Win8停止工作如下: 在下列情况下有两种情况: 1、如果Windows 8可以启动,选择Me…

什么过程jfCacheMgr.exe文件引入jf

什么过程jfCacheMgr.exe文件引入jf

文件,过程,电脑软件,exe,jfCacheMgr,点评:这个过程不是Windows系统的一部分,而是安装了皮肤、电影和电影播放器软件的一部分。 有一个在任务管理器jfCacheMgr.exe过程为什么它一直在运行,是病毒吗把一个问题知道什么是jfCacheMgr.exe! jfCach…

excel基本知识:用特殊符号补充数字

excel基本知识:用特殊符号补充数字

基本知识,数字,特殊符号,电脑软件,excel,除了重复输入,REPT另一个衍生的功能是创建一个包含纯文本直接在工作表中的直方图。它的原理很简单,就是利用特殊符号的智能重复,按照指定单元格计算结果表现出长短不一的影响。 例如,我们首先制定年度资…

在Excel2007中隐藏或显示行和列的

在Excel2007中隐藏或显示行和列的

显示,电脑软件,在Excel2007中,可以使用隐藏命令;;隐藏的行或列,高改为0行或列(零),也可以隐藏的行或列。使用取消隐藏命令可以显示;再次。 excel中的隐藏行或列方法: 1,选择要隐藏的行或列。 如何选择单元格、区域、行或列 选择 操作 一个细胞 单…

hkss.exe的功能是什么的香港学生会

hkss.exe的功能是什么的香港学生会

查询,香港,功能,学生会,电脑软件,点评:hkss.exe是康柏电脑键盘扩展键配置程序 进程文件:香港学生会或hkss.exe 过程名称:康柏多媒体 过程类别:安全风险的过程 英文描述: hkss.exe是一个应用程序从康柏的热键支持提供 中文参考: hkss.exe是康柏…

告诉我,当我想起你…要做什么

告诉我,当我想起你…要做什么

告诉我,当我,要做什么,电脑软件,告诉我,当我想起你…要做什么 谁在等待一个悲伤的河流为半个城市的烟雾和沙子 只要你能记得我,即使在恨的方式。我试着恨你,但我想你的微笑。 回头看看你的句子别忘了忘记我还在那里,你呢 我总是那么小心/怕…

你敢放弃这个世界,我在生死面前。

你敢放弃这个世界,我在生死面前。

我在,这个世界,你敢,生死,面前,虽然你的头还在跳动,但我忽略了我对你说的话。 曾经我不知道珍惜你,但是当我想珍惜它的时候,你不再需要我了。 对于那些不够好的人,他们最终会得到应有的惩罚。 没什么,只是想念,依然爱你, 我爱你和人之间,谁是交…

什么过程dvremind过程查询dvremind

什么过程dvremind过程查询dvremind

查询,过程,电脑软件,dvremind,exe,点评:dvremind.exe是Tobits InfoCenter提醒程序 进程文件:dvremind或dvremind.exe 进程名称:Tobit InfoCenter通知 过程类别:安全风险的过程 英文描述: dvremind.exe是位信息中心通知主程序。这就是这个,它也…

excel单元格自动调整单词个数

excel单元格自动调整单词个数

调整,单词,单元格,个数,电脑软件,在excel的过程中,我们经常根据表单的要求把表单放好,然后单元格的宽度固定,但有些字符的数目。例如,当输入一个家庭地址时,一些家庭地址相对较长,所以单元格中的内容不能完全显示在屏幕上。为了使单元格中的所有…

如何关闭Windows8.1应用程序自动更

如何关闭Windows8.1应用程序自动更

自动更新,应用程序,电脑软件,点评:Windows 8.1系统支持自动更新应用,但有些朋友可能不需要自动更新每个应用程序都是Windows 8.1自己做决定的。 Windows 8.1的应用系统支持自动更新,但有些朋友可能不需要自动更新每个应用程序是Windows 8.1做…

使用word文档时,用亮线怎么办

使用word文档时,用亮线怎么办

文档,电脑软件,word,用亮线,我用的是笔记本电脑,每次使用word,都会有亮线,怎么回事,是我笔记本上的问题吗 答:这是拼写检查。没关系.在您丢失之后,只需清除空格。检查是否将文本格式设置为较低的行(即,格式化工具栏的B的下一行上的按钮是亮的,如果是…

文字文本批替换作为操作方法

文字文本批替换作为操作方法

替换,文本,文字,操作方法,电脑软件,核心提示:当我们使用Word时,我们可能遇到了一个特殊的搜索和替换问题,也就是说,我们想在图片中替换一些文本,这样做是不可能的吗不,Word的搜索和替换功能非常强大,除了实体替换外,规则表也已就位。 当我们用词的…