Работает все через .NET коннектор т.е. using MySql.Data.MySqlClient; и далее:
string Connect = "Database=dp_001;Data Source=localhost;User Id=root;Password=1234567890Aa";
MySqlConnection myConnection = new MySqlConnection(Connect);
myConnection.Open();
int LIMITSTART = 0;
int QUERYSIZE = 5000;
while(LIMITSTART < 50000000){
MySqlCommand myCommand = new MySqlCommand(String.Format("SELECT * FROM ep53 ORDER BY TimeValue LIMIT {0},{1}", LIMITSTART, QUERYSIZE), myConnection);
MySqlDataReader Reader= myCommand.ExecuteReader();
while (Reader.Read())
{
// Вытворяю всякое с новым кусочком данных ...
}
LIMITSTART = LIMITSTART + 5000;
Reader.Close();
}
Одна проблема - скорость после 5 запроса проседает просто жутко. То есть если сначала это доли секунды, то после это 12-15 секунд на один запрос, что наглядно видно в Workbench т.е. запрос выполняет на первой черепаховой скорости =(
Задумался что я не так делаю, может буфер не чищу, может надо память где-то освобождать ... В общем первый раз контактирую с коннектором ... Вопрос оптимизации тоже открыт, но все же данных у меня много и сколько ему не давай - все равно в итоге мало будет, так и памяти у меня не сотни гигабайт, если дело в этом я все равно не смогу его прокормить ...
Но однако начинается все чудно и на хорошей скорости, явно же есть способ ее сохранить и далее, тем более я данные беру понемногу и запрос предельно простой и таким останется т.е. условий и прочего нету и не будет ...
Но как все таки справится с этими тормозами?
ps. Опыты показали, что если запросов очень много - такой эффект появляется примерно каждые 5-6 запросов, хотя периодически mysql видимо сам чистит какие то кэши и на время начинает работать быстрее ... Однако быстро проскочив их он тут же выдает такой вот жуткий и медленный запрос на 10-15 секунд ... Как-то все таки ведь можно его "почистить" судя по всему вручную, если он сам это умеет делать ...