Products
GG网络技术分享 2025-03-18 16:13 6
MySQL代表了开源数据库的快速发展。
从2004年前后的Wiki、WordPress等轻量级Web 2.0应用起步,到2010年阿里巴巴在电商及支付场景大规模使用MySQL数据库,再到2012年开始阿里云RDS for MySQL为成千上万家客户提供可靠的关系数据库服务,阿里云RDS积累了来自内外部功能、性能、安全方面的众多需求,打造了面向企业场景的AliSQL分支,包含了丰富企业级数据库特性:
DynamicThreadPool(DTP):在内核中动态管理数据库线程池,通过有限资源持续支撑大量创建数据库连接请求,维持高效稳定的请求处理能力。
IndexMutexTuning(IMT):通过IMT优化大大降低索引节点分裂成本,大大提升类TPCC场景处理能力,在全内存的测试中,单机达到了39W的TpmC,相对于原生版本提升35-50%不等。
TDE&SM4:全新优化的TDE数据加密,并且支持国产加密算法SM4。
PerformanceInsight:针对数据库SQL性能扩展多方面信息,包括表统计信息、索引统计信息、SQL单次性能数据、IO统计信息和关键性能数据输出等。
AsyncFilePurge:优化大表删除,有效降低系统IO抖动影响。
SlowLogRotate:对慢日志设计切换机制,可有效降低大量慢日志造成的不稳定影响。
SQLOutline:通过Hint优化SQL语句执行计划,可保障在各种环境变化中SQL执行计划不变,如大版本升级、统计信息变更等。
StatementConcurrencyControl(SCC):DBA可通过SCC干预系统语句执行,对具体SQL限流控制并发度,紧急状态保障数据库稳定运行。
DDLRecycleBin:内核中增加回收站,防止误执行DROPTABLE/TRUNCATE TABLE造成的不可挽回的损害。
AWS作为全球云市场的标杆,是其他云厂商不断追赶的目标。十年磨一剑,阿里巴巴MySQL数据库历经十年的发展后,阿里云RDS MySQL和AWS RDS相比,性能上谁会更胜一筹?本文将一测究竟。
本测试对比了阿里云RDS通用型实例(5.7/8.0版本)和AWS RDS通用T3型实例,在OLTP读写混合模型下的性能。测试使用了标准的sysbench 1.0工具,选择的规格是8核32GB规格数据库。测试场景选用的是内存命中型场景,250张表,每张表25000行数据。
测试结论是用同规格下性能最好的T3型AWS RDS 5.7/8.0和阿里云对应版本的RDS通用型实例对比,阿里云RDS通用型实例有绝对的优势,读写混合场景峰值QPS比AWS RDS高80%左右。
(*点击查看大图)
AWS RDS通用型实例分为四种类型https://aws.amazon.com/cn/rds/instance-types/,前期实测下来,相同CPU核数和内存规格的情况下,T3型实例性能最好。选用的规格是t3.2xlarge,8个vCPU。
AWS RDS的主备同步不依赖binlog。同步方式的说明见:https://aws.amazon.com/cn/blogs/database/amazon-rds-under-the-hood-multi-az/。跨AZ的情况下,AWS RDS是同步写,所以对比测试中,阿里云RDS选用多可用区+半同步开启+默认严格参数模板。
在不同并发条件下,阿里云RDS 5.7均较AWS性能占优。
阿里云RDS 5.7的峰值QPS比AWS高80.41%
(*点击查看大图)
在不同并发条件下,阿里云RDS 8.0均较AWS性能占优。
阿里云RDS 8.0的峰值QPS比AWS高77.88%
(*点击查看大图)
通过上述测试数据可以看出,阿里云RDS通用型实例相比于AWS RDS有较大的优势。阿里云数据库RDS MySQL在2020年将继续快速奔跑,除了性能以外,将继续围绕企业诉求,构建数据库核心能力,覆盖安全、可靠性、可用性、可扩展性等诸多方面。
Gartner预计,到2021年,云数据库在整个数据库市场中的占比将首次达到50%;而到2023年,75%的数据库要跑在云平台之上。
去年11月,国际知名调研机构Gartner公布2019年全球数据库魔力象限评选结果,阿里云成功进入“挑战者”象限,连续两年作为唯一的中国企业入选。
根据Gartner 统计数据,阿里云已经位居全球云数据库市场份额第三位以及中国市场第一位,年增长率达到116%。目前,已有超过40万个数据库实例迁移到阿里云上,包含政务、零售、金融、电信、制造、物流等多个领域的龙头企业。
只有保持一路快跑的势态,才能在日益严峻的竞争环境中持续领先,才能满足云上企业快速增长需求。阿里云数据库RDS MySQL一直走在前列。
WordPress函数get_post_types用于获取所有文章类型信息。
get_post_types( array|string $args = array(), string $output = \\\'names\\\', string $operator = \\\'and\\\' )
$args
数组或字符串
根据传递的参数返回符合条件的文章类型,以下示例只返回post:
get_post_types(array(\\\'name\\\'=>\\\'post\\\'), \\\'objects\\\')
$output
字符串,默认值:names
可用值:
$operator
字符串,默认值:and
要执行的逻辑操作
当$output的值为names,返回信息如下:
Array( [post] => post [page] => page [attachment] => attachment [revision] => revision [nav_menu_item] => nav_menu_item [custom_css] => custom_css [customize_changeset] => customize_changeset [oembed_cache] => oembed_cache [user_request] => user_request [wp_block] => wp_block)
当$output的值为objects,返回信息如下:
Array( [post] => WP_Post_Type Object ( [name] => post [label] => 文章 [labels] => stdClass Object ( [name] => 文章 [singular_name] => 文章 [add_new] => 写文章 [add_new_item] => 撰写新文章 [edit_item] => 编辑文章 [new_item] => 写文章 [view_item] => 查看文章 [view_items] => 查看文章 [search_items] => 搜索文章 [not_found] => 未找到文章。 [not_found_in_trash] => 回收站中没有文章。 [parent_item_colon] => [all_items] => 所有文章 [archives] => 文章归档 [attributes] => 文章属性 [insert_into_item] => 插入至文章 [uploaded_to_this_item] => 上传到本文章的 [featured_image] => 特色图像 [set_featured_image] => 设置特色图像 [remove_featured_image] => 取消特色图像 [use_featured_image] => 设置为特色图像 [filter_items_list] => 过滤文章列表 [items_list_navigation] => 文章列表导航 [items_list] => 文章列表 [item_published] => 文章已发布。 [item_published_privately] => 文章已私密发布。 [item_reverted_to_draft] => 文章已恢复为草稿。 [item_scheduled] => 文章已排入发布计划。 [item_updated] => 文章已更新。 [menu_name] => 文章 [name_admin_bar] => 文章 ) [description] => [public] => 1 [hierarchical] => [exclude_from_search] => [publicly_queryable] => 1 [show_ui] => 1 [show_in_menu] => 1 [show_in_nav_menus] => 1 [show_in_admin_bar] => 1 [menu_position] => 5 [menu_icon] => dashicons-admin-post [capability_type] => post [map_meta_cap] => 1 [register_meta_box_cb] => [taxonomies] => Array ( ) [has_archive] => [query_var] => [can_export] => 1 [delete_with_user] => 1 [_builtin] => 1 [_edit_link] => post.php?post=%d [cap] => stdClass Object ( [edit_post] => edit_post [read_post] => read_post [delete_post] => delete_post [edit_posts] => edit_posts [edit_others_posts] => edit_others_posts [delete_posts] => delete_posts [publish_posts] => publish_posts [read_private_posts] => read_private_posts [read] => read [delete_private_posts] => delete_private_posts [delete_published_posts] => delete_published_posts [delete_others_posts] => delete_others_posts [edit_private_posts] => edit_private_posts [edit_published_posts] => edit_published_posts [create_posts] => edit_posts ) [rewrite] => [show_in_rest] => 1 [rest_base] => posts [rest_controller_class] => WP_REST_Posts_Controller [rest_controller] => ) ......)
$args = array(\\\'public\\\' => true,\\\'_builtin\\\' => false);$output = \\\'names\\\';$operator = \\\'and\\\';$post_types = get_post_types( $args, $output, $operator );
get_post_types()函数位于:wp-includes/post.php
相关函数:
Demand feedback