phpMyAdmin 无法处理 80,000 个表,加载时间超过 1 分钟

问题描述 投票:0回答:1

我正在使用一个包含大约 80,000 个表(是的,八万个)的大型数据库,并且 phpMyAdmin 需要一分钟多的时间来加载。我认为该问题与 phpMyAdmin 尝试分页和加载所有表有关,这严重影响了性能。

我已经尝试过以下解决方案但没有成功:

$cfg['ShowDatabasesNavigationAsTree'] = false;
$cfg['NavigationDisplayServers'] = false;
$cfg['MaxNavigationItems'] = 0; 
$cfg['MaxExactCount'] = 0;
$cfg['MaxExactCountViews'] = 0;
$cfg['Servers'][$i]['only_db'] = array();

寻找解决方案

编辑:我正在使用最新的 phpMyAdmin 版本。

php phpmyadmin
1个回答
0
投票

由于 phpMyAdmin 加载和分页表的方式,处理 80,000 个表可能会非常慢。您可以尝试以下一些提高性能的策略:

1. 增加表缓存

phpMyAdmin 缓存表元数据以加快后续加载速度。增加此缓存可能会有所帮助:

$cfg['QueryCacheType'] = 'file';  // Cache queries to reduce database load
$cfg['QueryCacheTTL'] = 3600;     // Cache time-to-live in seconds (1 hour)

2. 禁用表和列统计信息:

phpMyAdmin 获取表统计信息(如行数),这可能会减慢速度。您可以禁用它:

$cfg['CountTables'] = false;  // Disable table counting

3. 使用
MaxTableList
选项:

限制导航面板中一次显示的表格数量:

$cfg['MaxTableList'] = 1000;  // Only display 1000 tables at a time

4. 优化phpMyAdmin配置:

您可以尝试调整一些设置以防止它一次加载所有表格:

$cfg['NavigationTreeEnableGrouping'] = false;  // Disable grouping for faster loading
$cfg['MaxNavigationItems'] = 100;  // Limit items shown in the navigation panel

5. 考虑使用命令行进行大型查询:

phpMyAdmin 由于其开销可能不适合管理如此大量的表。对于特定任务,请考虑使用 MySQL 命令行或 MySQL Workbench 等工具以获得更好的性能。

通过组合这些设置,您应该会看到加载时间有所改善。如果性能仍然是一个问题,使用替代数据库管理工具可能是最好的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.