开源数据库 CUBRID 9.0 发布,3倍的性能提升和分片支持

jopen 11年前

开源数据库 CUBRID 9.0 发布,3倍的性能提升和分片支持

专为Web应用程序最大优化的数据库CUBRID 9.0 发布,增加一个 Node.js driver for CUBRID 驱动,并更新了其它的驱动器和工具,提供扩展功能和更高的稳定性。其它还为用户提供了大量有价值的功能,显着提高了性能,并且原生支持的数据库分片。

新的特性如下:

多种语言支持

CUBRID9.0提供了扩展的字符集,排序规则,日历和数字符号,各种语言的支持。现在,除了英语和韩语,我们支持日本,中国,越南,柬埔寨,土耳其,德语,西班牙语,法语和意大利语。

扩展的SQL

在9.0版之前,CUBRID已经提供了超过90%的SQL兼容与MySQL。在这个新版本中,我们进一步扩展SQL语法,能够更加与MySQL和Oracle数据库的兼容。 添加如下:

  1. Analytics functions OVER aggregate functions
  2. MERGE statement support
  3. JOIN support in DELETE/UPDATE statements
  4. ENUM data type
  5. Pseudo columns (SYSDATE and USER) as DEFAULT values.
  6. Stand-alone VALUES clause
  7. OFFSET keyword in LIMIT clause
  8. LEVEL pseudo column in hierarchical queries

Now when migrating data to the latest version of CUBRID, most of SQL statements written in your applications will stay intact. Moreover, CUBRID Migration Toolkit will automatically match most of MySQL/Oracle/CUBRID data types to the most appropriate one in CUBRID 9.0, thus provide seamless migration experience.

To learn more about each of these extensions, refer to 9.0 Release Notes.

高级索引

我们已经增加了几个非常重要的索引技术,显着提高性能的读取操作。

  1. Function based indexing allows to include function expressions in columns comprising an index.
  2. Filtered indexing allows to include search conditions in an index.
  3. Index skip scan optimization allows users to use a multi-column index from its second column even when the first column is not specified.

This all add up to optimizations we have introduced in previous versions. They are:

  1. Index types
    1. Reverse Index
    2. Unique Index
    3. Primary Key
    4. Foreign Key
  2. Query Optimizations
    1. Multi-range limit optimization
    2. Key limit optimization
    3. Skip ORDER BY
    4. Skip GROUP BY
    5. Prefix Index
    6. Index range scan optimization
    7. Covering Index
    8. Descending Index
    9. Query Rewrites
  3. Server level optimizations
    1. Shared Query Plan Cache
    2. Locking Optimizations
    3. Transaction Concurrency
    4. Log compression
    </ol>

    数据库分片支持

    数据库分片是开源CUBRID RDBMS提供的一个非常重要和巨大的特性。上周在莫斯科举行的Highload++会议中,我们提出了关于CUBRID分片。下面的演示幻灯片。

    Thus, with a native support for High-Availability (HA) with fail-over feature CUBRID provides the best set of RDBMS functionality for large scale Web applications. For further reading about CUBRID SHARD, refer to the following blog articles and CUBRID Manual:

    附加功能

    Some other new features in CUBRID 9.0 are:

    1. Cursor Holdability support
    2. Improved Error Messages

    改进了稳定性和性能

    引擎整体性能

    In CUBRID 9.0 we have significantly improved the overall performance of the CUBRID Engine as well as its stability. The throughput and response time of CUBRID 9.0 have been improved for more than 300% when compared to a previous version.

    开源数据库 CUBRID 9.0 发布,3倍的性能提升和分片支持

    Figure 1: The number of read/write requests per second of SysBench benchmark.

    开源数据库 CUBRID 9.0 发布,3倍的性能提升和分片支持

    Figure 2: The average execution time per request of SysBench benchmark.

    开源数据库 CUBRID 9.0 发布,3倍的性能提升和分片支持

    Figure 3: The accumulated number of transactions of SysBench benchmark.

    提高读取性能

    To measure the effectiveness of new Indexing types and optimizations on READ performance, we have run a basic performance test on CUBRID 8.4.1 and 9.0. SELECT performance in the new version has increased for more than 160% while the performance of WRITE operations is remained on the same level.

    开源数据库 CUBRID 9.0 发布,3倍的性能提升和分片支持

    Figure 4: Performance Comparison between R4.1 Patch 6 and 9.0 Beta (Linux 32-bit).

    改进了稳定性和性能的分区

    In CUBRID 9.0 we have fundamentally enhanced the Partitioning feature for better stability and performance. In addition, we have added support for PROMOTE statement which allows users to promote a specific partition from a partitioned table to a general table.

    改进的HA稳定性和操作的便利性

    HA is the flagship feature in CUBRID since version 8.2.0. In this new version we have fixed many stability issues in CUBRID HA. This version also provides a separate control for the HA management process and easier dynamic addition and deletion of nodes in the HA management process.

    So CUBRID 9.0 is the best RDBMS we have ever released so far with tons of valuable features, significantly increased performance, and native support for database sharding. We have updated most of APIs that you can use to connect to CUBRID 9.0. You can download PHP, PDO, Python, Ruby, Perl, ADO.NET, OLEDB, ODBC, JDBC, C, and Node.js drivers from http://www.cubrid.org/downloads.

    For more information about new features and improvements in CUBRID 9.0, refer to Release Notes.

    If you have questions, feel free to ask on our dedicated Q&A site, forum, 推ter, 非死book, Google+#cubrid IRC channel, or contact us by email. We will be glad to answer you!

    下面是CUBRID的简介:

    CUBRID 是一个全面开源,且完全免费的关系数据库管理系统。CUBRID为高效执行Web应用进行了高度优化,特别是需要处理大数据量和高并发请求的复杂商务服务。通过提供独特的最优化特性,CUBRID可以支持更多的并发请求,更少的响应时间。

    CUBRID这个名称,实际上是两个单词的组合:"Cube"(立方体)和"Bride"(桥梁)。对CUBRID而言,"Bride"代表"data bridge"(数据桥),而"Cube"代表密封盒子,可以为放在其中的数据提供安全。因此,CUBRID代表可以为机密信息提供安全保障。

    CUBRID的服务器和官方程序库是使用C/C++开发的,而数据库管理工具的CUBRID Manager则是使用Java开发的。CUBRID支持Linux和Windows操作系统,并且提供JDBC、PHP、ODBC、C、Ruby和Python等相关API。

    CUBRID被韩国IT业的领头企业NHN公司大量的使用,该公司部署了超过一万台CUBRID服务器,看来它的确和MySQL有得一比。