具有索引的1000多列的CUBRID的性能如何?

时间:2013-02-19 03:32:40

标签: database cubrid

我有一个项目要求我动态创建表格。创建表时,每个表中至少需要支持1000列。所有INT,日期,BIT都将成为索引。所以一张桌子上可能有大约400个索引。将数据上载到服务器后,不会对表执行其他插入或更新。我将使用像lucene这样的库来索引文本。

我的问题是:

  1. CUBRID可以在一个数据库中处理1000个表吗?
  2. 在具有数千列和数百个索引的表上进行选择时,CUBRID的性能如何?
  3. CUBRID是否具有用于运行即席查询和管理表的Windows GUI界面
  4. DDL和DML语句可以在同一个事务中吗?
  5. 我很清楚这里的数据库规范化设计问题。我已经完全研究了规范化问题,并且创建了许多表和列是最好的解决方案。

1 个答案:

答案 0 :(得分:2)

免责声明:我是CUBRID团队的一员。

简答:

  1. 取决于。
  2. 答案很长:

    1. CUBRID RDBMS Size Limits所述,只要您有足够的磁盘空间,就可以创建无限数量的表,每个表的索引数量不受限制。

      但是,每个表的列数限制为6400,这对我来说应该足够了。

    2. 这取决于您将拥有的记录数量。如果你在一行中没有这么多列,那就没那么重要了。记录数不仅会影响数据卷大小(存储数据的磁盘上的文件),还会影响索引卷大小,其中存储索引键和值。我怀疑,使用您当前的架构设计,您的索引卷大小有数千列,这将远远大于您的数据卷大小,因为每个索引都将存储您索引的列的所有值的副本。

      创建一组适当的索引可以提高性能。

      1. 查看Index Optimization in CUBRID,详细了解如何优化查询。
      2. 要进一步优化您的查询,请使用Index Hints

      3. 但你应该认真考虑规范化你的数据。

        此外,您的硬件配置将显着影响服务器的性能。对于您的情况,强烈建议使用大容量RAM和CPU。

        使用此类架构时,任何其他RDBMS都将面临类似问题。通常,CUBRID通过定义良好的索引提供高SELECT性能。所以你应该专注于此。

      4. 您可以使用three GUI tools来管理数据库。

        1. CUBRID Manager :CUBRID的一体化,功能强大的数据库管理工具
        2. CUBRID Web Manager :CUBRID Manager的基于Web的替代方案。
        3. CUBRID查询浏览器:没有主机管理和监控功能的轻量级CUBRID Manager。
      5. CUBRID符合SQL92标准。因此,您可以定义表并在同一事务中插入记录。