【问题标题】:Best way to run this query on an SQL Database在 SQL 数据库上运行此查询的最佳方式
【发布时间】:2014-08-10 21:24:59
【问题描述】:

我有一个由 GoDaddy 托管的网站。目前,如果我想在数据库上运行 SQL 查询,我正在使用 GoDaddy 的默认 phpMyAdmin 界面与数据库进行交互(全部通过浏览器完成)。

我有一个包含 32,000 条记录的表。表中的一项包含一个类似于以下内容的 JSON 字符串:

{
"activity": {
    "section1": {
        "item1": {
            "itemName": { 
                "name": "myName", 
                "property1": false, 
                "property2": false 
             }
         }
     },
     "section2":{ 
          "item1": false
     }
 }
}

超时我可能想要更新这个 JSON 字符串(例如,如果架构已更新并且我想在其中添加一个 section3。如果我现在尝试这样做(即使新字符串是硬编码的并且对于表中的32000条记录中的每一条,查询都只是超时。我怀疑32000条记录太多了。

我尝试通过 PhpMyAdmin 的 SQL 查询选项卡运行查询 - 失败了,它通过了大约一半然后超时。

我的问题是:最适合使用数据库的是什么?有没有比通过 GoDaddy 的默认 phpMyAdmin 界面运行查询更有效的方法?

【问题讨论】:

  • 这里可能存在一些问题,但您可以采取一些措施来找出问题所在。 1)一个错误的查询,如果是这种情况,请在堆栈溢出时检查此答案stackoverflow.com/questions/10137430/… 2)另一个可能是 GoDaddy 托管的实例对您的数据库来说资源不足。请与 GoDaddy 联系以查看您的实例允许使用多少资源,您可能需要迁移到更大的实例。 3) PhpMyAdmin 可能在 webapp 或浏览器中超时,请尝试使用 MySQL Work 之类的胖客户端连接到您的 MySQL 数据库

标签: sql database phpmyadmin


【解决方案1】:

我不知道您在 GoDaddy 使用哪个计划,但您可以在所有付费计划中 enable remote access。然后,您可以使用MySQL Workbench tool 连接到您的数据库。我认为这比 PHPMyAdmin 更好。

另一种解决方案是使用 PHP 执行查询(并且可能拆分为多个查询)。您可以直接在 GoDaddy 服务器上托管 PHP 脚本。

无论如何,将 JSON 文件存储为全文字段的一部分并不是一个好主意。你可能会读到几篇关于database normalization 的文章。另见this other question

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-21
    • 1970-01-01
    • 2014-07-19
    • 1970-01-01
    相关资源
    最近更新 更多