我需要构建一个保存和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。
答案 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)
当您按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
字段中存储的time
和date
部分分开,但那只是我。