【发布时间】:2010-07-27 10:43:18
【问题描述】:
我有一个包含 25.000 行的表格(带有字符串的列)。
我想改进我的选择查询。 "SELECT name FROM table WHERE name LIKE 'something' ORDER BY name LIMIT 15"
数据库将是静态的。
我想知道当我在表中插入一行时是否可以对列进行排序,如果表已经按名称排序,是否会减少选择查询的时间?
【问题讨论】:
我有一个包含 25.000 行的表格(带有字符串的列)。
我想改进我的选择查询。 "SELECT name FROM table WHERE name LIKE 'something' ORDER BY name LIMIT 15"
数据库将是静态的。
我想知道当我在表中插入一行时是否可以对列进行排序,如果表已经按名称排序,是否会减少选择查询的时间?
【问题讨论】:
如果数据库是静态的,为什么还要使用它?只需在程序中对这 15 个名称进行硬编码。如果您的意思是表不会改变,那么为了改进您的查询,您可以在名称列名称上放置一个索引或使用更多的缓存。
【讨论】:
类似以下的方法会起作用:
INSERT INTO TABLE1 (S1, S2, S3) SELECT S1, S2, S3 FROM TEMP ORDER BY S1, S2, S3
这里的排序是在插入之前作为SELECT 语句的一部分完成的。
【讨论】: