- Регистрация
- 10.12.2015
- Сообщения
- 623
- Благодарностей
- 342
- Баллы
- 63
Парни, подскажите пожалуйста, есть огромная таблица с данными [~20-30млн.]: ID, Login. Беру логин и делаю проверку, вроде бы все замечательно, на большем объеме не вроде бы не каких проблем я не вижу, но как только данные в таблице заканчиваются, становится заметно, что он просто сжирает данные куда-то. Также об этом догадывался после определенных правок, что результат работы уменьшился в пару тройку раз.
Сейчас код который работает с БД выглядит вот так:
Отрабатывает он как надо быстро, но куда-то не понятно кушает данные. Попытался найти какие-то другие варианты взять случайное значение с таблицы, но увы все решения которые нашел, выполняются очень долго [~3-15 секунд], этот же вариант отрабатывает за 0,0031 секунды.
От работы с SQL, очень далек, поэтому возможно кто-то хорошо разбирается и может помочь, буду очень признателен.
Сейчас код который работает с БД выглядит вот так:
C#:
db.query("LOCK TABLES " + project.Variables["Table"].Value + " WRITE");
List<string> row = db.getRow("SELECT * FROM " + project.Variables["Table"].Value + " LIMIT " + project.Variables["RND"].Value + ", 1");
project.Variables["ID"].Value = row [0];
project.Variables["Login"].Value = row[1];
db.query("DELETE FROM " + project.Variables["Table"].Value + " WHERE ID = '" + project.Variables["ID"].Value + "'");
db.query("UNLOCK TABLES");
От работы с SQL, очень далек, поэтому возможно кто-то хорошо разбирается и может помочь, буду очень признателен.