NP 1.5 版本 peers 表使用的是 memory 引擎,此引擎不支持行级锁,不抗并发。如果发现锁表较多,MySQL 负载高,建议修改为 InnoDB。

宝塔面板无法直接修改引擎,可以登录 MySQL 控制台,按以下步骤进行。注意请先升级到 1.7.28 或以上,保证你的字段跟以下一致。
1, 创建新表:
CREATE TABLE `peers_new` (
`id` int unsigned NOT NULL AUTO_INCREMENT,
`torrent` mediumint unsigned NOT NULL DEFAULT '0',
`peer_id` binary(20) NOT NULL,
`ip` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
`port` smallint unsigned NOT NULL DEFAULT '0',
`uploaded` bigint unsigned NOT NULL DEFAULT '0',
`downloaded` bigint unsigned NOT NULL DEFAULT '0',
`to_go` bigint unsigned NOT NULL DEFAULT '0',
`seeder` enum('yes','no') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'no',
`started` datetime DEFAULT NULL,
`last_action` datetime DEFAULT NULL,
`prev_action` datetime DEFAULT NULL,
`connectable` enum('yes','no') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'yes',
`userid` mediumint unsigned NOT NULL DEFAULT '0',
`agent` varchar(60) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
`finishedat` int unsigned NOT NULL DEFAULT '0',
`downloadoffset` bigint unsigned NOT NULL DEFAULT '0',
`uploadoffset` bigint unsigned NOT NULL DEFAULT '0',
`passkey` char(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
`ipv4` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
`ipv6` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
`is_seed_box` tinyint NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `peers_userid_index` (`userid`),
KEY `idx_torrent_peer` (`torrent`,`peer_id`),
KEY `idx_peer` (`peer_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
2, 将旧表数据导入:
insert into peers_new select * from peers;
3, 将旧表改名:
rename table peers to peers_old;
4, 将新表改为 peers:
rename table peers_new to peers;
观察一段时间是否正常,如果正常,可以把 `peers_old` 删除。
已操作!正常!大家都能连得上!我用的mysqladmin控制台操作的!感谢群主!