搜索
首页数据库mysql教程8个MySQL性能优化技巧_MySQL

8个MySQL性能优化技巧_MySQL

Jun 01, 2016 pm 01:36 PM
应用程序技巧服务器网站网络

bitsCN.com

8个MySQL性能优化技巧

 

你完成了你的品牌新的应用程序,一切工作就像一个魅力。用户来使用你的网络。每个人是幸福的。

然后,突然间,一个大爆发的用户杀死你的MySQL服务器,您的网站已关闭。出了什么问题?你怎么能阻止它吗?

 

以下是MySQL性能优化的一些技巧,将帮助你,帮助你的数据库。

大处着眼

 

在早期的发展阶段,你应该知道预期到您的应用程序的用户数。如果你希望很多用户来说,你应该想想大,从一开始,计划进行复制,可扩展性和性能。

 

但是,如果你优化你的SQL代码,架构和索引策略,也许你不会需要大环境。你必须总是三思而后行的性能和可扩展性是不一样的。    

 

请务必使用EXPLAIN

 

EXPLAIN语句可以被用来作为获取信息的方式MySQL如何执行SELECT语句的代名词DESCRIBE。

 

当你前面一个关键字EXPLAIN SELECT语句,MySQL的显示信息的查询执行计划的优化。也就是说,MySQL的说明它将如何处理SELECT,包括信息表加入的顺序。可以使用EXPLAIN扩展的提供额外的信息。

选择正确的数据类型

 

通常存储在磁盘上(除了一些数据库,内存数据库一样,它是存储在内存中)。这意味着,为了获取信息,为您的数据库,它必须从磁盘读取该信息,并把它变成一个结果集,您可以使用。磁盘I / O是极其缓慢的,尤其是在比较其他形式的数据存储。

 

当你的数据库的增长要大,开始读取时间要长。设计拙劣的数据库处理这个问题比他们实际需要的磁盘上分配更多的空间。这意味着该数据库占用空间的磁盘的使用效率低下。

 

选择正确的数据类型,可以帮助确保我们存储的数据,使数据库尽可能的小。为此,我们只选择我们所需要的数据类型。

 

使用持久连接

 

使用永久连接的原因是减少数量的连接是相当昂贵的,即使他们更快的与MySQL与大多数其他数据库。

 

有一些争论这个话题,在网络上mysqli扩展已禁用持久性连接功能,所以我会写更多关于这个主题。持久连接的唯一的缺点是,如果你有多个并发连接,可以达到max_connections设置。这是很容易改变Apache的设置,所以我不认为这是原因为什么你不应该使用持久连接。

 

持久连接是特别有用的,如果你有另一台计算机上的数据库服务器。由于上述缺点,明智地使用它们。

 

了解查询缓存

 

查询缓存存储的SELECT语句的文本,连同相应的结果发送到客户端。如果相同的语句被接收后,服务器从查询缓存中,而不是分析和再次执行该语句检索结果。查询缓存是共享的会话之间,这样的结果集所产生的一个客户端可以发送另一个客户端发出的相同的查询。

 

查询缓存的环境中,可能是有用的,你有表不经常改变,服务器接收到许多相同的查询。对于许多Web服务器产生许多动态页面的基于数据库的内容,这是一个典型的情况。

 

查询缓存不返回过时的数据。在查询缓存表被修改时,任何相关的条目将被刷新。

 

你怎么找到我的MySQL查询缓存是工作或没有?

MySQL提供的统计资料,只需键入下面的命令在mysql>提示符下:

mysql> show variables like 'query%';  

 

不要使用索引列的功能

 

列上的索引可以是伟大的性能增益,但如果你使用该列中的函数,指数是从来没有使用过。

 

总是尝试重写查询不使用索引列的功能。

WHERE TO_DAYS(CURRENT_DATE) - TO_DAYS(event_date)

 

可能是

WHERE event_date >= '2011/03/15' - INTERVAL 7 DAYS  

 

今天的日期是从PHP生成。这样一来,指数列EVENT_DATE的查询缓存内可存储和查询。

 

了解禅宗的SQL编码

 

SQL代码是优化数据库性能的基础。主SQL编码技术,如重写子查询的SQL语句使用连接,消除了连接和类似的游标。

 

通过编写巨大SQL代码数据库的性能将是巨大的。

 

使用ON DUPLICATE KEY UPDATE

 

如果你指定ON DUPLICATE KEY UPDATE,将某行插入,会导致在一个UNIQUE索引或PRIMARY KEY重复的值,更新旧行。

INSERT INTO wordcount (word, count) VALUES ('a_word',1) ON DUPLICATE KEY UPDATE count=count+1;  

 

您保存访问服务器(然后选择更新),清理你的代码删除所有,如果record_exists插入其他更新。

 

如果按照此提示,数据库将不胜感激给你。

bitsCN.com
声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
MySQL字符串类型:存储,性能和最佳实践MySQL字符串类型:存储,性能和最佳实践May 10, 2025 am 12:02 AM

mySqlStringTypesimpactStorageAndPerformanCeaseAsfollows:1)长度,始终使用theSamestoragespace,whatcanbefasterbutlessspace-felfficity.2)varCharisvariable varcharisvariable length,morespace-morespace-morespace-effficitybuteftife buteftife butfority butfority textifforlyslower.3)

了解MySQL字符串类型:VARCHAR,文本,char等了解MySQL字符串类型:VARCHAR,文本,char等May 10, 2025 am 12:02 AM

mySqlStringTypesIncludeVarChar,文本,char,enum和set.1)varCharisVersAtileForvariable-lengthStringStringSuptOptoPeptoPepecifientlimit.2)textisidealforlargetStortStorStoverStorextorewiteWithoutAdefinedLengthl.3)charlisfixed-Length

MySQL中的字符串数据类型是什么?MySQL中的字符串数据类型是什么?May 10, 2025 am 12:01 AM

MySQLoffersvariousstringdatatypes:1)CHARforfixed-lengthstrings,2)VARCHARforvariable-lengthtext,3)BINARYandVARBINARYforbinarydata,4)BLOBandTEXTforlargedata,and5)ENUMandSETforcontrolledinput.Eachtypehasspecificusesandperformancecharacteristics,sochoose

如何向新的MySQL用户授予权限如何向新的MySQL用户授予权限May 09, 2025 am 12:16 AM

TograntpermissionstonewMySQLusers,followthesesteps:1)AccessMySQLasauserwithsufficientprivileges,2)CreateanewuserwiththeCREATEUSERcommand,3)UsetheGRANTcommandtospecifypermissionslikeSELECT,INSERT,UPDATE,orALLPRIVILEGESonspecificdatabasesortables,and4)

如何在MySQL中添加用户:逐步指南如何在MySQL中添加用户:逐步指南May 09, 2025 am 12:14 AM

toadduserInmysqleffectection andsecrely,theTheSepsps:1)USEtheCreateuserStattoDaneWuser,指定thehostandastrongpassword.2)GrantNectalRevileSaryPrivilegesSustate,usiveleanttatement,AdheringTotheTeprinciplelastPrevilegege.3)

mysql:添加具有复杂权限的新用户mysql:添加具有复杂权限的新用户May 09, 2025 am 12:09 AM

toaddanewuserwithcomplexpermissionsinmysql,loldtheSesteps:1)创建eTheEserWithCreateuser'newuser'newuser'@''localhost'Indedify'pa ssword';。2)GrantreadAccesstoalltablesin'mydatabase'withGrantSelectOnMyDatabase.to'newuser'@'localhost';。3)GrantWriteAccessto'

mysql:字符串数据类型和coltrationsmysql:字符串数据类型和coltrationsMay 09, 2025 am 12:08 AM

MySQL中的字符串数据类型包括CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT,排序规则(Collations)决定了字符串的比较和排序方式。1.CHAR适合固定长度字符串,VARCHAR适合可变长度字符串。2.BINARY和VARBINARY用于二进制数据,BLOB和TEXT用于大对象数据。3.排序规则如utf8mb4_unicode_ci忽略大小写,适合用户名;utf8mb4_bin区分大小写,适合需要精确比较的字段。

MySQL:我应该在Varchars上使用什么长度?MySQL:我应该在Varchars上使用什么长度?May 09, 2025 am 12:06 AM

最佳的MySQLVARCHAR列长度选择应基于数据分析、考虑未来增长、评估性能影响及字符集需求。1)分析数据以确定典型长度;2)预留未来扩展空间;3)注意大长度对性能的影响;4)考虑字符集对存储的影响。通过这些步骤,可以优化数据库的效率和扩展性。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。