MySQL 自定义引擎 : already existing data

标签 mysql file

我目前正在探索自定义 MySQL 引擎是否可以满足我的需求。我一直在看http://forge.mysql.com/wiki/MySQL_Internals_Custom_Engine .我想知道的一件事是:我可以使用现有的(二进制)文件创建引擎吗?

如果是,我猜(?)没有“CREATE TABLE...”那么,MySQL 是如何知道这个表的?

已编辑 假设我有一个工具编写一个名为“records.bin”的大二进制文件,它是以下 C 结构的串联

    struct Record
    {
        char field1[10];
        int field2;
    };

我想编写一个自定义的 MySQL 引擎来执行以下查询:

((declare table t1 as 'records.bin' exists somewhere ???))
select field1 from t1 where field2=1;

应该是可以的,正如文档所说:

The most basic storage engines implement read-only table scanning. Such engines might be used to support SQL queries of logs and other data files that are populated outside of MySQL.

最佳答案

是的,这是可能的。仅仅因为 CREATE TABLE 实际上在 myisam 等传统存储引擎中创建文件并不意味着您必须这样做。

事实上,CSV 存储引擎将使用数据目录中现有的适当命名的 CSV 文件。如果该文件不存在,则会创建一个空白文件。

关于MySQL 自定义引擎 : already existing data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1677105/

相关文章:

java - 尝试逐行读取文件时出现 NullPointerException(Java)?

mysql - 如何使用批处理/shell 脚本检查用户/密码的 mysql 连接

php - 安装迁移 (laravel) 期间 mysql 服务器已经消失错误

java - 如何使用文件列表中的一个文件

c - 如何在读取文件时分配链表节点

c++ - 如何启用共享对象在运行时访问数据文件 (UNIX)

Java 文件上下文不为 null 会抛出 NullPointerException

php - PDO 参数根本不起作用

php - 使用准备好的语句获取 "wrong parameter count..."错误

php - 按时间戳选择 4 小时前登录的行