Я не думаю, что это вопрос программирования, поэтому я собираюсь задать его здесь -
Читая книгу о высокой производительности mysql, я читал о движке CSV. В абзаце говорится:
Механизм CSV может обрабатывать файлы со значениями, разделенными запятыми (CSV), как таблицы, но не поддерживает для них индексы. Этот механизм позволяет копировать файлы в базу данных и из нее во время работы сервера. Если вы экспортируете файл CSV из электронной таблицы и сохраните его в каталоге данных сервера MySQL, сервер сможет прочитать его немедленно. Точно так же, если вы записываете данные в таблицу CSV, внешняя программа может сразу их прочитать. Таблицы CSV особенно полезны в качестве формата обмена данными и для определенных видов журналирования.
Из этого абзаца я понял, что могу скопировать файл .CSV в каталог данных базы данных, и он должен отображаться в виде таблицы, из которой можно читать. Однако всякий раз, когда я копирую тестовый файл .csv в каталог, он не отображается в виде таблицы. Я не могу получить к нему доступ.
Я также использую MySQL 5.5
Кто-нибудь знает, почему это не работает, или что я делаю не так?
Я решил попробовать это на своем сервере MySQL, чтобы понять, в чем проблема. Похоже, что вам нужно создать таблицу в MySQL (с указанием engine = csv), чтобы таблица соответствующим образом была добавлена в MySQL и отслеживала метаданные поля таблицы. В моем тестировании я не смог заставить MySQL узнать о файле csv без предварительного использования «создать таблицу».
Пример:
CREATE TABLE foo (i int not null, c char(10) not null) engine=csv;
Скопируйте существующий csv (который соответствует формату, определенному для таблицы) в foo.CSV:
1,"FOOBAR"
2,"FOOBAZ"
3,"BARBAZ"
В mysql выбор * из foo должен привести к следующему результату:
mysql> select * from foo;
+---+--------+
| i | c |
+---+--------+
| 1 | FOOBAR |
| 2 | FOOBAZ |
| 3 | BARBAZ |
+---+--------+
3 rows in set (0.00 sec)