gpt4 book ai didi

mysql - 如何避免数据库全表扫描?

转载 作者:搜寻专家 更新时间:2023-10-30 20:11:09 25 4
gpt4 key购买 nike

我想创建一个网站,用户可以在该网站上注册并将 20 张图片上传到他们的帐户。 ( future 计划允许用户无限上传图片)

我在数据库中有两个表。一个用于保存用户数据表名 - 成员字段 - 用户 ID、用户名、密码、电子邮件。其他用于保存图片路径表名-图像字段 - 用户 ID、图片路径

所以我可以在他的页面中显示用户的图像,从表“图像”中搜索图像路径

一切正常。但如果用户数量增长,这将变得更慢。例如 - 如果有 50000 个用户,我应该检查所有行以查找单个用户上传的图像IE;50000 个用户 ID * 20 个图像/用户 = 1000000 次表行扫描这将使系统变慢并使系统过载。我应该怎么做才能避免这种情况?

最佳答案

像这样创建一个架构,

CREATE TABLE dataTable
(
`userid` INT NOT NULL,
`username` VARCHAR(50) NOT NULL,
`password` VARCHAR(50) NOT NULL,
`email` VARCHAR(50) NOT NULL
CONSTRAINT tb_pk PRIMARY (`userID`),
CONSTRAINT tb1_uq UNIQUE (`username`)
);

CREATE TABLE pathTable
(
`userid` INT NOT NULL,
`imagepath` VARCHAR(50) NOT NULL,
CONSTRAINT tb_fk FOREIGN KEY (`userID`) REFERENCES dataTable(`userid`)
);

pathTableuserid 指定为引用特定表 (dataTable) 主键的外键,服务器自动为其建立索引这将使搜索速度更快。

关于mysql - 如何避免数据库全表扫描?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12766733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com