gpt4 book ai didi

mysql - 在MySql中,是否值得在同一组列上创建多个多列索引?

转载 作者:行者123 更新时间:2023-11-29 10:37:48 26 4
gpt4 key购买 nike

我是 SQL 新手,当然也是 MySQL 新手。我根据流市场数据创建了一个名为 trade 的表格,看起来像

 date     | time                  |instrument|price  |quantity
----------|-----------------------|----------|-------|--------
2017-09-08|2017-09-08 13:16:30.919|12899586 |54.15 |8000
2017-09-08|2017-09-08 13:16:30.919|13793026 |1177.75|750
2017-09-08|2017-09-08 13:16:30.919|1346049 |1690.8 |1
2017-09-08|2017-09-08 13:16:30.919|261889 |110.85 |50

该表很大(每个日期 1.5 亿行)。为了有效地检索数据,我创建了一个索引 date_time_inst (date,time,instrument) 因为我的大多数查询都会选择特定日期或日期范围,然后是时间范围。但这无助于加快查询速度,例如:

select * from trade where date="2017-09-08", instrument=261889

因此,我正在考虑创建另一个索引date_inst_time(日期、仪器、时间)。当我希望从数千个工具中获取一个或几个工具的时间序列时,这是否有助于加快查询速度?由于索引更新而导致额外的数据库写入时间,我是否应该过于担心?

我每秒都会获取数据,并需要大约 100 毫秒来处理它并将其存储在数据库中。只要我继续花不到 1 秒就可以了。

最佳答案

要获得最有效的查询,您需要在聚集索引上进行查询。根据the documentation这是在主键上自动设置的,不能在任何其他列上设置。

我建议放弃date列并在timeinstrument上创建复合主键

关于mysql - 在MySql中,是否值得在同一组列上创建多个多列索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46112093/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com