加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 如何提高MySQL数据库的性能

发布时间:2020-12-13 22:22:53 所属栏目:PHP教程 来源:网络整理
导读:如何提高 mysql数据库的性能,因为我的网站托管在共享服务器中,并且由于“查询太多”而暂停了我的帐户 问题是“索引”或“缓存”或修剪我的数据库 我不知道“索引”和缓存是什么意思以及如何在php上执行此操作 谢谢 解决方法 索引是什么: 将数据库表视为库
如何提高 mysql数据库的性能,因为我的网站托管在共享服务器中,并且由于“查询太多”而暂停了我的帐户
问题是“索引”或“缓存”或修剪我的数据库
我不知道“索引”和缓存是什么意思以及如何在php上执行此操作
谢谢

解决方法

索引是什么:

将数据库表视为库 – 您拥有大量书籍(记录),每个书籍都包含相关数据(作者姓名,出版商,出版日期,ISBN,内容).还假设这是一个非常天真的图书馆,所有书籍都按ISBN(主键)顺序搁置.正如书籍只能有一个物理排序一样,数据库表只能有一个主键索引.

现在想象有人来到图书管理员(数据库程序)并说,“我想知道图书馆里有多少Nora Roberts书籍”.要回答这个问题,图书管理员必须走过走道,看看图书馆里的每本书,这本书很慢.如果图书管理员收到这样的许多请求,那么按照作者姓名(姓名索引)设置卡片目录是值得的 – 然后他可以通过参考目录而不是走货架来更快地回答这些问题.从本质上讲,索引建立了书籍的“替代排序” – 它将它们视为按作者的字母顺序排序.

请注意1)设置目录需要时间,2)目录占用了库中的额外空间,3)它使向图书馆添加书籍的过程变得复杂 – 而不仅仅是将书籍放在书架上此外,图书管理员还必须填写索引卡并将其添加到目录中.以同样的方式,在数据库字段上添加索引可以加快查询速度,但索引本身会占用存储空间并减慢插入速度.因此,您应该只根据需要创建索引 – 索引很少搜索的字段没有意义.

缓存是什么:

如果图书管理员有很多人进来并一遍又一遍地问同样的问题,那么在前台写下答案可能是值得的.他可以简单地说,“这是我给最后一个问这个问题的人的答案”,而不是检查堆栈或目录.

在您的脚本中,这可能以不同的方式应用.您可以存储数据库查询或计算的结果或呈现的网页的一部分;您可以将它存储到辅助数据库表或文件或会话变量或memcached等内存服务.您可以存储预先解析的数据库查询,随时可以运行.像Smarty这样的库会自动为您存储部分或全部页面.通过存储结果并重复使用,您可以避免多次执行相同的工作.

在每种情况下,您都必须担心答案保持有效的时间.如果图书馆有新书怎么办?使用可能五分钟过时的答案是否可以?过时的一天怎么样?

缓存是特定于应用程序的;您将不得不考虑数据的含义,更改的频率,计算的成本,结果的频率.如果数据变化缓慢,最好每次更改时重新计算并存储结果;如果它经常变化但并不重要,仅当缓存值超过特定年龄时更新可能就足够了.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读