@Arris понял :) Короче, не оправдало себя сжатие CSV-файла и последующая генерация на лету: PHPExcel делает файлы до 4 минут (до 2 минут в консольном режиме), так что придётся делать заготовки заранее или совсем отказываться от XLS-файлов.
А по GZIPу, на мой взгляд, лучше делать через BAT-файл поиск всех файлов с маской *.csv и делать на них gzip, благо он идёт в комплекте с виндой. Быстро и удобно, плюс файл удалять не надо.
Попробовал - файл сжался до 75 килобайт! Если хранить только CSV и гзиповать их, то места получается более, чем достаточно. А для генерации TXT и Excel использовать CSV. Похоже, что с отчётами буду использовать именно такой вариант.
@DaFive спасибо за ответ - пожалуй, попробую переделать БД из одной таблицы на несколько. И ARCHIVE, похоже, не так уж и плох, как мне сначала показалось.
Вспомнил: деление по месяцам не совсем подходит, для выборки используется интервал 30 дней, а такая штука почти обязательно попадёт на два разных месяца.
@DaFive я выбрал MyISAM - ARCHIVE, конечно, хороший вариант, но выборка идёт медленно. В моём случае надо быстро выбирать данные за нужный период и отрисовывать графики в браузере клиента. Данные в БД кладёт единственный скрипт-сборщик.
Отличаются форматом:
1. XLS - полноценный Excel5-файл, созданный через PHPExcel
2. CSV - стандартный файл с разделителем "," и кодировкой UTF-8
3. TXT - файл с табами и специфическими заголовками
Вариант с чтением из готового CSV хороший, надо будет производительность замерить на своём объёме - что быстрее выберется: 36000 строк из базы или из CSV. Но проблема свободного места не решается - его просто становится в три раза больше.)
@mkharitonov аааааа! Реально, всё так и оказалось. Почему-то не отрабатывалось нажатие на кнопку, поле с текстом нужным не появлялось, и поэтому сравнение не происходило.
@mkharitonov от WebTestCase, тот от CWebTestCase, а тот уже от PHPUnit_Extensions_SeleniumTestCase. Думаете, что дело в разнице версий?
В этом что-то есть, поскольку руководство Yii по этим тестам было заточено под Selenium RC, а я качал более новый WebDriver. Неужели дело в отсутствии обратной совместимости?
Под прямым выводом имел в виду такую ситуацию:
1. Строка с русским текстом при выбросе "Failed command" в консоли выглядит как кракозябры
2. Если эту же самую строку вывести в обычном PHP-скрипте в консоль через echo mb_convert_encoding($source, 'CP866', 'UTF-8') - она выглядит нормально
3. Пробовал в скрипте предварительно проделать то же самое (mb_convert_encoding), перед тем, как выполнить assertTextPresent - но не помогло.