适当的mysql排序实践

时间:2014-09-01 00:28:09

标签: mysql sorting

之前已经问过这个类型的问题而不是我的情况。 我想知道适合我的情况的分类技术是什么。

假设我们有10个用户在mysql数据库中存储一周中每天的数据。

我们有一个自动递增的索引字段,但我们也存储用户名。

最好是按用户名对mysql数据库进行排序,然后在每个条目之后对日期进行排序,然后当我们进行数据库搜索时,只按原样输出数组

OR

最好是进行数据库搜索,对数组进行排序然后输出吗?

2 个答案:

答案 0 :(得分:1)

不保证行的顺序,因此尝试对数据库中的行进行排序毫无意义。让您的查询排序而不是数据库。

这不是MySQL特有的。

看到这个答案:

https://dba.stackexchange.com/questions/6051/what-is-the-default-order-of-records-for-a-select-statement-in-mysql/6061#6061

答案 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管理器自动生成。管理器收集可用于自动生成索引的统计信息。但是,这些并不像你明确创建的那样可靠。