How to speed up datetime MySQL queries or improve db scheme for time series data? I'm suffering a hard time because of a university project. The goal is to retrieve measurement values from a field test and to store them in a db. Upon those stored values calculations shall be executed... 

The current DB scheme has one table for incoming data values, called data:

+--------------+------------+------+-----+---------+----------------+
| Field        | Type       | Null | Key | Default | Extra          |
+--------------+------------+------+-----+---------+----------------+
| id           | bigint(20) | NO   | PRI | NULL    | auto_increment |
| data_node_id | bigint(20) | NO   | MUL | NULL    |                |
| timestamp    | datetime   | NO   | MUL | NULL    |                |
| value        | float      | YES  |     | NULL    |                |
+--------------+------------+------+-----+---------+----------------+


This table holds about 1.7 billion records so far and is ~165GB in size.

Now I'm trying to do some simple queries to extract data for research like:
SELECT timestamp, value FROM iren2.data WHERE data.timestamp &gt;= now() - INTERVAL 7 DAY AND data_node_id = 114
Those queries take more than 10 minutes to finish :( Is there any way to speed up things? Did I miss something in the scheme design?

By the way, the db is a MySQL 5.7 Community Edition running on a Ubuntu 16.04 HyperV machine with 10 vCores (Intel® Xeon® Processor E5-2698 v3) and 256GB Memory.

Thanks for your help! :)

EDIT 
Some more information on config:

innodb-flush-method            = O_DIRECT
innodb-log-files-in-group      = 2
innodb-log-file-size           = 512M
innodb-flush-log-at-trx-commit = 1
innodb-file-per-table          = 1
innodb-buffer-pool-size        = 216G
innodb_thread_concurrency = 0
tmp-table-size                 = 32M
max-heap-table-size            = 32M
query-cache-type               = 0
query-cache-size               = 0
max-connections                = 500
thread-cache-size              = 50
open-files-limit               = 65535
table-definition-cache         = 1024
table-open-cache               = 2048
You may need to add proper indexes to your data... My guess is that you need a multi-column index on (data_node_id, timestamp).

Check the mySQL documentation on Multiple-Column Indexes

--

Side note: 

I suspect that a data_node cannot have two readings at the same time. That would make the (data_node_id, timestamp) pair always unique (and not null). If this were the case, I would use this as the primary key, and take out of the table the id column (and the corresponding index). Taking out the surrogate id key will save some data that doesn't need to be read... if you're looking for the last bit of performance, it also helps.

As mySQL + innoDB keeps your data clustered by primary index, having (data_node_id, timestamp) as your PK would clearly be an advantage for retrieving information. Like always, it comes with a price: INSERTS will cause fragmentation (and thus, be more expensive), because your PK will not be an increasing number.