我在论坛上使用的表格有问题,人们可以在那里添加他们的产品。
每次用户加载页面时,用户的“在线时间戳”都会更新(PHP 行阻止其每小时更新超过 1 次),这会触发其各自产品的“在线时间戳”也更新(扳机)。用户可以随时添加和编辑产品。这是表定义:
CREATE TABLE products (
id SERIAL PRIMARY KEY,
userid INT NOT NULL REFERENCES users(id),
categoryid INT NOT NULL REFERENCES categories (id),
regionid INT NOT NULL REFERENCES regions(id),
title VARCHAR(255) NOT NULL,
description TEXT NOT NULL,
price DECIMAL(7,2) NOT NULL,
create_timestamp BIGINT NOT NULL,
modify_timestamp BIGINT NOT NULL,
online_timestamp BIGINT NOT NULL
);
CREATE INDEX ON products (categoryid);
CREATE INDEX ON products (userid);
CREATE INDEX ON products (regionid);
Run Code Online (Sandbox Code Playgroud)
大约有 100,000 名用户,大约有 400,000 种产品。由于需要更新“在线时间戳”,该表经常更新(大约每秒 2 次)。
问题是:每周,数据库都变得如此臃肿,以至于我不得不中断网站,将数据库转储到 …