之前已经问过这个类型的问题而不是我的情况。 我想知道适合我的情况的分类技术是什么。
假设我们有10个用户在mysql数据库中存储一周中每天的数据。
我们有一个自动递增的索引字段,但我们也存储用户名。
最好是按用户名对mysql数据库进行排序,然后在每个条目之后对日期进行排序,然后当我们进行数据库搜索时,只按原样输出数组
OR
最好是进行数据库搜索,对数组进行排序然后输出吗?
答案 0 :(得分:1)
不保证行的顺序,因此尝试对数据库中的行进行排序毫无意义。让您的查询排序而不是数据库。
这不是MySQL特有的。
看到这个答案:
答案 1 :(得分:0)
如果你希望在一组给定的字段上搜索很多东西,换句话说,如果你最终得到许多命令,例如(或一个命令重复多次):
SELECT <some fields> FROM <table> WHERE a = <some value> AND b = <some value>
然后用a和b添加索引是个好主意。语法因您使用的数据库系统而异,但通常如下:
CREATE INDEX <some name> ON <table> (a, b);
a和b的顺序在索引中无关紧要。虽然根据你的说法,每个用户都会有一个日期列表,而不是相反,所以可能是用户优先。
然后,当处理包含'a'和'b'的WHERE时,SQL系统将自动获取索引。
请注意,在最高级的SQL引擎中(我知道PostgreSQL会这样做,MySQL肯定也是这样),这些索引可能会由SQL管理器自动生成。管理器收集可用于自动生成索引的统计信息。但是,这些并不像你明确创建的那样可靠。