【问题标题】:Dealing with hosts with no mysql处理没有mysql的主机
【发布时间】:2011-06-21 16:48:09
【问题描述】:

我正在与一个好的网络主机打交道,但问题是他们将 mysql 限制为 1 个 25MB 的数据库

问题是我需要更多,但目前无法支付更多。

是否有任何解决方案,如 .dat 文件或任何类型的具有基本管理的平面文件数据库。

我不会很大,但它必须有很多数据库,因为我必须在该托管计划上运行多个站点。

谢谢

【问题讨论】:

    标签: php database flat-file


    【解决方案1】:

    SQLite

    <?php
    if ($db = sqlite_open('my.db', 0666, $sqliteerror)) { 
        sqlite_query($db, 'CREATE TABLE foo (bar varchar(10))');
        sqlite_query($db, "INSERT INTO foo VALUES ('fnord')");
        $result = sqlite_query($db, 'SELECT bar FROM foo');
        var_dump(sqlite_fetch_array($result)); 
    } else {
        die($sqliteerror);
    }
    ?>
    

    【讨论】:

    • 感谢您的所有回答,我已经知道 sqlite 但真的不知道如何处理它,我认为它只是 mySQL 的替代品。那么你认为我可以在技术和合法的共享虚拟主机上使用它,而他们限制了 mySQL 的使用?
    • @med:没​​有理由不这样做。 mySQL(或其他 DBMS)的限制是因为需要有一个始终运行的进程来运行这些。 SQLite 只是像访问任何其他文件一样访问该文件。你可能会遇到 SQLite 的争用问题,我不确定。
    • @med 阅读 PHP Database Extensions 文档,还有一些其他提供文件访问的(dBase、Paradox 等),您只需要检查哪些扩展已编译到您的服务器 PHP模块(phpinfo())。
    【解决方案2】:

    我认为您可能正在寻找的是SQLite...

    【讨论】:

      【解决方案3】:

      正如其他人所说,SQLite 是一个考虑因素,尽管您需要了解限制:

      http://www.sqlite.org/limits.html

      如果您在 Windows Server 系统上(不太可能,但可能),您可以使用 Access,并使用 ODBC 连接:

      http://www.w3schools.com/PHP/php_db_odbc.asp

      还有,也许是火鸟:

      http://www.firebirdsql.org/

      不过,在深入探讨之前,请注意一些事项。

      1. 文件锁定 - 同时拥有多个用户可以锁定请求响应,直到锁定被清除
      2. 文件访问 - 如果您将文件放在 HTML 目录中,则需要采取预防措施,防止其他人下载您的数据库;最好让它完全远离你的公共路径
      3. 优化 - MySQL 和 PostgreSQL 会更好地工作;这些其他选项都不会优雅地扩展,这让我想到了我的最后一个笔记......
      4. 撤消您的工作 - 当您的网站足够大以需要更好的数据库系统时,您可能会发现自己需要重做一堆代码或找到一种方法将您的数据移植到新的设置

      认真考虑您是否可以将它们全部存储在一起,或者寻找可以帮助使其更实惠的其他提供商。例如,我喜欢Dreamhost(5 个数据库每月 8.95 美元),尽管我最喜欢的提供商是 MediaTemple,我使用了几年并且每月花费大约 22 美元。还有其他具有类似竞争力的产品,甚至是 Amazon Web Services。

      【讨论】:

        猜你喜欢
        • 2015-03-08
        • 1970-01-01
        • 2016-06-26
        • 1970-01-01
        • 2016-03-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-21
        相关资源
        最近更新 更多