php - MySQL - 在数据库复杂性中查找表

标签 php mysql wordpress time-complexity

简单查询:

SELECT * FROM table

我想知道查找表格的复杂性。是 O(n) 吗?

我正在使用 Wordpress 多站点。它为每个博客创建额外的 8 个表。目前大约有 4 万个博客,因此单个数据库中已有超过 30 万个表

我问这个问题是因为我想了解此时如何表现,我想避免 future 的瓶颈。

谢谢!

最佳答案

通常拥有大量表(例如 100-200 个)不会影响数据库,但 300k 个表就太疯狂了。

将表格视为文件夹,将行视为文件。现在,您的操作系统已对不同文件夹中的所有文件建立了索引,这使得搜索文件变得更加容易。但是操作系统不能只索引系统上的每个文件,它有内存限制。

同样在MYSQL中每个表都有一个索引,所有这些索引都存储在RAM中。现在,如果您有太多索引,那么您的 RAM 将无法容纳所有数据。所以为了避免服务器崩溃,它将索引保存到硬盘上。但硬盘驱动器比 RAM 慢得多,并且查找索引需要更长的时间。

说实话,这种数据库无法通过普通的 VPS 服务器处理。为了充分利用您的系统,您必须租用一台具有非常高 RAM 的服务器。尝试使用单独的托管数据库系统(例如具有自动调用功能的 AWS RDS),这会将数据库的调整和自动扩展留给专家。如果无法使用 RDS,请尝试将 my.cnf 中的 key_buffer_size 增加到可以拥有的最大值。这样,更多的数据将存储在您的 RAM 上,而更少的数据存储在您的硬盘上。

祝你好运,并在评论中分享你的发现,因为看看你如何克服它非常有趣:)

关于php - MySQL - 在数据库复杂性中查找表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34059501/

相关文章:

python - 如何在 Anaconda 的 Python IDE 中使用 MySQL

Mysql计数没有重复

php - 菜单 WordPress 滚动

wordpress - 如何在Wordpress中修复损坏的标题

php - Elasticsearch 中的自定义排序

php - 时区变量的数据类型

MySQL IF 条件

html - 我的 WordPress 主题是连字符,无法使用 CSS 将其关闭

php - 如何转义 mysql 插入的斜杠?

php - 使用 jquery DataTables 通过 ajax 加载数据时处理 session 超时