gpt4 book ai didi

php - Mysql索引最佳实践

转载 作者:行者123 更新时间:2023-11-30 22:56:05 25 4
gpt4 key购买 nike

进展如何。我希望这不被认为是...的重复 mysql two column primary key with auto-increment

我的问题有点不同,因为我没有尝试引用不同的数据库。我只想知道最“有效”的方法来解决这个问题......我想要一个将 page_id 作为 primary key 的评论表,但我仍然希望有一个与每一行关联的自动递增 id,以便在更新或删除它们时可以通过 id 来寻址它们。截至目前,我的表格结构如下

id INT(8) NOT NULL AUTO_INCREMENT,
page_id INT(5) NOT NULL,
comment VARCHAR(2500) NOT NULL,
PRIMARY KEY (id)

我的查询看起来像......

SELECT comment FROM comments WHERE page_id = '$page_id' AND id >= $start_at_id

我一直在看一堆 MySQL 优化视频,我一直听到左边有索引,但我的问题是我大部分时间都是盲人,所以我看不到他们的代码示例。在这里,我的屏幕阅读器将使这一切成为可能。我的问题是这样的。把我的 table 摆成这样会更好吗?

page_id INT(5) NOT NULL,
id INT(8) NOT NULL AUTO_INCREMENT,
comment VARCHAR(2500) NOT NULL,
PRIMARY KEY (page_id)

如果是这样...什么是构建查询的更好方法。请记住,除非是分页页面,否则“start_at_id”为 0。我正在使用 mysql 5.6 的默认引擎,我相信这是我的(请原谅我的拼写)isam???

提前致谢。

最佳答案

您最适合查询的索引是

ALTER TABLE comments ADD UNIQUE INDEX myIndex USING BTREE (page_id, id)

这是因为 page_id 是常量,这对优化非常有利。但是你有一个 >= for id 所以不要使用默认的 HASH 索引类型。 BTREE 是最好的用途,因为 HASH(默认)最适合用于相等/不相等的比较(参见 here)

关于php - Mysql索引最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26327592/

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