Одновременное чтение и запись в файл Excel

MySQL не может перейти непосредственно к 10000-й записи (или 80000-й байт, как вы предлагаете), потому что он не может предположить, что он упакован / упорядочен как этот (или что он имеет непрерывные значения от 1 до 10000). Хотя это может быть и так на самом деле, MySQL не может предположить, что нет дыр / пробелов / удаленных идентификаторов.

Итак, как отмечали бобы, MySQL должен будет получить 10000 строк (или пройти через 10000-й записи индекс на id), прежде чем найти 30 для возврата.

EDIT: Чтобы проиллюстрировать мою точку

Обратите внимание, что хотя

SELECT * FROM large ORDER BY id LIMIT 10000, 30 

будет slow (er) ,

SELECT * FROM large WHERE id >  10000 ORDER BY id LIMIT 30 

будет fast (er) и будет возвращать те же результаты при условии отсутствия отсутствующих id s (т. е. пробелов).

4
задан Tony Mathew 24 January 2019 в 06:16
поделиться

1 ответ

Вы не можете одновременно читать и записывать один и тот же файл, поскольку он блокируется, когда вы читаете его. Вы можете прочитать весь файл в память и затем обработать его, а после обработки вы можете записать его обратно.

0
ответ дан MickyD 24 January 2019 в 06:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: