database - 具有 1000 多个带索引列的 CUBRID 的性能如何

标签 database cubrid

我有一个项目需要即时创建表格。创建表时,每个表需要至少支持 1000 列。所有 INT、日期、BIT 都将是索引。所以一张表上可能有大约 400 个索引。一旦数据上传到服务器,就不会在表上执行其他插入或更新。我将使用像 lucene 这样的库来索引文本。

我的问题是:

  1. CUBRID 能否在一个数据库中处理 1000 个表?
  2. 在千列数百索引的表上进行选择时,CUBRID 的性能如何?
  3. CUBRID 是否有一个 Windows GUI 界面来运行即席查询和管理表
  4. DDL 和 DML 语句可以在同一个事务中吗?

我很清楚这里的数据库规范化设计问题。我对规范化问题进行了全面研究,发现创建许多表和列是最好的解决方案。

最佳答案

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

简答:

  1. 是的。
  2. 视情况而定。
  3. 是的。
  4. 是的。

长答案:

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

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

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

    创建一组适当的索引将使您能够提高性能。

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


    但您应该认真考虑规范化您的数据。

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

    任何其他 RDBMS 在使用此类模式时都会面临类似的问题。通常,CUBRID 提供了具有良好定义的索引的高 SELECT 性能。所以你应该关注这个。

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

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

关于database - 具有 1000 多个带索引列的 CUBRID 的性能如何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14949378/

相关文章:

database - 查询与 View

MySQL关系问题

chef-infra - 无法访问子配方属性文件中默认 Chef 配方的属性

c# - Java 到 C# - CallableStatement 转换

php - 如何使用 php 命令使注册表单高度安全?

database - 关于使用 Delphi XE2 进行数据库编程的问题

PHP 变量在 SQL 查询中不起作用?