0

我需要建立一个 Sql 表来保存sellerid他可用的日期(日期和时间)。

并且每次卖方添加他有空的日期(日期和时间)时,都会将其添加到表格中。

我想用这张表:

EVENTS

sellerid   date
123456     5/12/2013 8:10:00
121212     9/5/2013  19:40:00
123456     4/12/2013 12:00:00

但我的问题在于获取此数据的选择。我想通过以下方式获取所有物品:

SELECT * From Events

但我担心这会花费太多时间。所以我想知道这是否是实现我想要的好方法。或者这种方法会花费很多时间吗?

我正在使用 MySql。

4

3 回答 3

1

这取决于数据量(行),如果它是一个简单的查询SELECT * FROM table,除非你有几十万,否则它不应该占用太多。

无论如何,如果您有大量数据,您应该考虑过滤日期之间的查询。也许任何 MySQL 专家都无法告诉您更多信息,但我已经处理了 10.000 行并且加载速度非常快。

于 2013-03-03T18:36:15.110 回答
1

我邀请您将按卖方 ID 过滤数据。如果您在此字段上创建索引,即使行数很大,您也不应该面临任何低效率。

于 2013-03-03T18:55:02.947 回答
1

如果您需要完整数据(没有过滤器),我建议您选择“块”数据:

select * from events limit 0, 1000; -- The first thousand rows
select * from events limit 1000, 1000; -- The next thousand rows
...

如果需要过滤数据,则必须确保表中有适当的索引。具体来说,您需要索引表中的两个字段。如果您尚未创建索引:

alter table events
    add index idx_sellerId(sellerId),
    add index idx_date(date)

sellerId当您同时过滤和时,这应该会加快速度date

select * from events where sellerId=123456;
select * from events where date between '2013-5-12 00:00:00' and '2013-5-12 23:59:59'

我会将存储在您的字段中的date和部分分开,但这只是我。timedate

于 2013-03-03T19:05:15.560 回答