带有日历的事件的SQL表

时间:2013-03-03 18:25:27

标签: mysql sql

我需要构建一个保存和sellerid的Sql表以及可用的日期(日期和时间)。

每次卖方添加可用日期(日期和时间)时,它都会被添加到表格中。

我想用这个表:

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。

3 个答案:

答案 0 :(得分:1)

它取决于数据量(行),如果它是一个简单的查询,如SELECT * FROM table它不应该花费太多,除非你有成千上万。

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

答案 1 :(得分:1)

我是guest,您将通过sellerId过滤数据。如果您在此字段上创建索引,即使行数较大,也不应该面临任何低效率。

答案 2 :(得分: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)

当您按sellerIddate

过滤时,这会加快速度
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部分分开,但那只是我。