[英]How can I index my SQL table?
我有两个表,第一个表叫做Hotel,包含以下几列:
hotelID, AverageRating, OverallRating, URL
第二个称为“评论”,其中包含:
hotelID, Author, Content, Date, No. Reader, No. Helpful, Overall, Value, Rooms, Location, Cleanliness, Checkin / front desk, Service, Business Service
我被要求根据查询在表上创建相关索引。 这是我的四个查询:
基于这些查询,我需要索引以下列(我认为):
我不需要索引清洁度,因为这是一个平均值,因此索引编制没有任何好处。
作者列包含审阅者的用户名。 例如Quoka7。 也许最好按字母索引此列?
TotalRating列包含1.0到5.0之间的一个十进制(至1 dp)。 例如3.5。 也许最好将此列索引为1 dp?
最后,为hotelID列建立索引对我来说是否有益? 基本上,其格式为hotel_ *,其中*是每个酒店的唯一编号。 根据我的查询,我认为这没有用。
谢谢您的宝贵时间,如果您有任何疑问或需要更多信息,我会在这里。
更新
作者也可以以数字开头,因此也许字母并不理想。
您可以使用CREATE INDEX <nameOfIndex> ON <nameOfTable> (<field>,<field>,...);
在SQL中CREATE INDEX <nameOfIndex> ON <nameOfTable> (<field>,<field>,...);
一个或多个字段。
因此,对于第一个查询, CREATE INDEX Authors ON Review (Author);
?
看看您是否可以自己做剩下的事情。 如果您遇到麻烦,请尝试浏览我们提供的讲义并询问Google,您不能指望Stack Overflow会继续为您完成很多大学课程。
首先,如果您有任何外键,则在这些外键中使用的任何列都绝对应该被索引。 通常,在关系的一侧有一个主键,在关系的另一侧有一个普通索引。
关于要索引的列,对此没有正确或正确的答案。 首先查看要对数据执行哪些查询。 如果您将hotelID
列用于大量查询,请为其建立索引。
您还可以计时查询运行的时间,然后查看索引是否对时间产生影响。 如果索引降低了速度,那么您可以保留它!
至于索引类型,SQLite没有特定的索引类型(如注意这里 )。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.