MySQL性能优化的一些技巧有助于您的数据库
你已经完成了全新的应用程序,所有的工作都像是一个魅力。用户来使用你的网络。每个人都很高兴。然后,突然,大量的用户突然杀了你的MySQL服务器,你的网站被关闭了,有什么问题吗你怎么能阻止它
以下是MySQL性能优化的一些技巧,这些技术将帮助您并帮助您的数据库。
注意要点
在开发的早期阶段,你应该知道你的应用程序的用户数量。如果你想要很多用户,你应该从一开始就考虑大,计划复制,扩展性和性能。
但是,如果优化SQL代码、体系结构和索引策略,则可能不需要太大的环境。您必须始终三思而后行,性能和扩展性是不同的。
一定要用解释
解释语句可以作为一个代词描述MySQL如何执行SELECT语句作为获取信息的方式。
当您在关键字前面有一个解释SELECT语句时,MySQL的显示信息的查询执行计划进行了优化,也就是说,MySQL解释了它将如何处理选择,包括添加信息表的顺序。
选择正确的数据类型
通常存储在磁盘上(除了一些数据库,内存数据库,它是存储在内存中)。这意味着,为了得到信息,你的数据库,它必须从磁盘读取信息并将其转化为一个结果集,你可以使用它。磁盘I / O是极其缓慢的,尤其是在与其他形式的数据存储的比较。
当数据库的增长很大时,开始读取很长时间。设计不好的数据库处理的问题比实际需要的磁盘要多。这意味着占用数据库空间的磁盘效率很低。
选择正确的数据类型有助于确保我们存储数据并使数据库尽可能的小。
使用持久连接
使用永久连接的原因是减少连接的数量是非常昂贵的,尽管MySQL与大多数其他数据库相比速度更快。
还有,mysqli扩展已禁用的网络持续连接功能的一些话题的辩论,所以我会写更多关于这个话题的持久连接的唯一的缺点是,如果你有多个并发连接,可以达到max_connections设置。改变Apache的设置是很容易的,所以我不认为这就是为什么你不应该使用持久连接。
如果在另一台计算机上有数据库服务器,持久连接特别有用。
理解查询缓存
查询的SELECT语句缓存中存储的文本并把它与相应的结果给客户端。如果同一语句接收服务器代替分析和执行语句再次查询缓存中检索,查询缓存是一个共享的会话,和一个这样的结果集生成客户可以从另一个客户端发送相同的查询。
查询缓存环境可能是有用的,并且有一个不经常更改的表,服务器接收许多相同的查询,这是为许多Web服务器为许多动态页面生成许多基于数据库的内容的典型情况。
查询缓存不会返回过期数据。当查询缓存表被修改时,任何相关条目都将被刷新。
你觉得我的MySQL查询缓存工作与否
MySQL提供的统计数据只需要在MySQL提示符下键入以下命令:
复制代码代码如下所示:
MySQL >显示变量like'query %;
不要使用索引列的功能。
列上的索引可以是一个很好的性能增益,但是如果您使用列中的函数,索引就永远不会被使用。
总是尝试重写不使用索引列的查询的函数。
复制代码代码如下所示:
在to_days(current_date)- to_days(event_date)< = 7
也许这是
复制代码代码如下所示:
在event_date年/ 03 / 15'interval天> = 7
今天的日期是由PHP。这样,event_date索引列的查询缓存可以存储和查询。
理解禅宗的SQL代码
SQL代码是优化数据库性能的基础上,主要的SQL编码技术,如SQL语句重写查询,使用连接消除连接和类似游标。
编写一个庞大的SQL代码数据库的性能将是巨大的。
使用重复密钥更新
如果指定了重复密钥更新,则插入一行将导致一个唯一索引或主键的值重复,以更新旧行。
复制代码代码如下所示:
插入WordCount(字,计数)值('a_word ',1)重复密钥更新数=数+ 1;
你拯救的接入服务器(然后选择更新),清理你的代码并删除所有如果record_exists插入其他更新。
如果您遵循这个提示,数据库将感谢您。