{"id":29217,"date":"2025-08-25T12:45:26","date_gmt":"2025-08-25T19:45:26","guid":{"rendered":"https:\/\/www.pingcap.com\/?p=29217"},"modified":"2025-11-14T01:38:14","modified_gmt":"2025-11-14T09:38:14","slug":"unleashing-tidb-scalability-next-generation-ddl-execution","status":"publish","type":"post","link":"https:\/\/www.pingcap.com\/ko\/blog\/unleashing-tidb-scalability-next-generation-ddl-execution\/","title":{"rendered":"Unleashing TiDB Scalability: The Next Generation of DDL Execution"},"content":{"rendered":"<p>Schema changes at scale can be a nightmare for SaaS applications. Slow index creation, long-running schema modifications, and <a href=\"https:\/\/www.pingcap.com\/ko\/article\/mastering-tidb-scalability-performance-and-high-availability\/\">scalability limits<\/a> can disrupt operations, making real-time database evolution nearly impossible. TiDB has been tackling these challenges head-on, continuously pushing the boundaries of <a href=\"https:\/\/www.pingcap.com\/ko\/blog\/why-distributed-sql-databases-elevate-modern-app-dev\/\">distributed SQL<\/a> and DDL execution.<\/p>\n\n\n\n<p>Last year,&nbsp;we boosted index creation speed by 10x, enabling large-scale schema changes with minimal disruption. Now, TiDB leads the distributed SQL market in scalability, supporting up to 1 million tables\u2014a milestone unmatched by other vendors. This makes TiDB the only truly scalable option for <a href=\"https:\/\/www.pingcap.com\/ko\/blog\/unlocking-modern-saas-platforms-how-distributed-sql-delivers-multi-tenancy-scale\/\">modern SaaS applications<\/a>, where <a href=\"https:\/\/www.pingcap.com\/ko\/article\/mastering-multi-tenancy-in-tidb-for-cloud-applications\/\">multi-tenancy<\/a> and high throughput demand database architectures that can keep up.<\/p>\n\n\n\n<p>To keep our DDL framework ahead of industry demands, we spent six months reengineering its execution process, focusing on speed, stability, and scalability. These advancements have further solidified TiDB as the go-to solution for businesses managing millions of tables.<\/p>\n\n\n\n<p>In this post, we\u2019ll explore:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The key challenges faced in <a href=\"https:\/\/www.pingcap.com\/ko\/article\/mastering-schema-management-in-tidb-for-scalable-databases\/\">large-scale schema management<\/a>.<\/li>\n\n\n\n<li>The innovative solutions we implemented to <a href=\"https:\/\/www.pingcap.com\/ko\/blog\/tidb-ddl-optimizations-unleashing-50x-performance-increases\/\">enhance DDL performance<\/a>.<\/li>\n\n\n\n<li>How TiDB now outperforms traditional databases like MySQL and Aurora in high-scale environments.<\/li>\n<\/ul>\n\n\n\n<p>If you work with large-scale SaaS, distributed SQL, or <a href=\"https:\/\/www.google.com\/search?client=safari&amp;rls=en&amp;q=database+performance+tuning+TIDB&amp;ie=UTF-8&amp;oe=UTF-8\">database performance tuning<\/a>, this deep dive is for you.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Why_SaaS_Databases_Face_Unique_Challenges\"><\/span>Why SaaS Databases Face Unique Challenges<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Modern SaaS platforms are multi-tenant, meaning each customer (tenant) operates within an isolated database structure. This can result in millions of tables, making scalability a major concern.<\/p>\n\n\n\n<p>SaaS databases must support:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>High Scalability:<\/strong>&nbsp;Traditional single-node databases struggle to scale when handling millions of tables.<\/li>\n\n\n\n<li><strong>Seamless Schema Evolution:<\/strong>&nbsp;Frequent updates to schemas should not disrupt active users.<\/li>\n\n\n\n<li><strong>Operational Throughput:&nbsp;<\/strong>Thousands of schema modifications (DDL operations) need to execute without delays.<\/li>\n\n\n\n<li><strong>Stability Under Concurrency:<\/strong>&nbsp;The database must maintain consistent performance under high workloads.<\/li>\n<\/ul>\n\n\n\n<p>TiDB addresses these requirements with&nbsp;online DDL execution, allowing schema changes to be applied incrementally with zero downtime. Key components ensure consistency across the cluster:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>PD (Placement Driver):<\/strong>&nbsp;Orchestrates schema changes and ensures coordination.<\/li>\n\n\n\n<li><strong>ETCD:<\/strong>&nbsp;Maintains consistent schema metadata across nodes.<\/li>\n\n\n\n<li><strong>Metadata Locking (MDL):<\/strong>&nbsp;Prevents conflicting modifications during updates.<\/li>\n<\/ul>\n\n\n\n<p>Together, these mechanisms allow TiDB to evolve schemas at scale without service interruptions.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Engineering_Approach_and_Best_Practices_How_We_Optimized_TiDBs_DDL_Performance\"><\/span>Engineering Approach and Best Practices: How We Optimized TiDB\u2019s DDL Performance<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>As TiDB adoption expanded into deployments with millions of tables, we encountered new performance bottlenecks. Our optimization effort followed three principles:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Customer-Driven Focus<\/strong>&nbsp;\u2013 Prioritize fixes that matter most in production.<\/li>\n\n\n\n<li><strong>Incremental Delivery<\/strong>&nbsp;\u2013 Roll out improvements in deployable steps.<\/li>\n\n\n\n<li><strong>Minimal Disruption<\/strong>&nbsp;\u2013 Ensure compatibility and stability throughout.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Optimization Roadmap and Milestones<\/h3>\n\n\n\n<p>As TiDB adoption scaled into deployments with millions of tables, we encountered new performance and stability challenges. We addressed them systematically:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>TiDB 7.5&nbsp;<\/strong>\u2013 Identified scalability bottlenecks beyond 500,000 tables, where performance began to degrade compared to MySQL 8.0.32, which could create one million tables in approximately two hours.<\/li>\n\n\n\n<li><strong>TiDB 7.6&nbsp;<\/strong>\u2013 Isolated table creation as a primary performance bottleneck and initiated targeted optimizations to improve DDL execution paths.<\/li>\n\n\n\n<li><strong>TiDB 8.1&nbsp;<\/strong>\u2013 Achieved a 118x improvement in table creation speed, reducing the time required to create one million tables to approximately four hours.<\/li>\n\n\n\n<li><strong>TiDB 8.3&nbsp;<\/strong>\u2013 Further optimizations reduced table creation time to 1.5 to 2 hours, making TiDB competitive with MySQL.<\/li>\n\n\n\n<li><strong>TiDB 8.4 &amp; 8.5&nbsp;<\/strong>\u2013 Refactored the DDL execution code for improved maintainability and scalability.<\/li>\n\n\n\n<li><strong>Future Goal&nbsp;<\/strong>\u2013 Develop a fully distributed native DDL execution framework with parallelized execution, intelligent resource scheduling, and automated workload balancing.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"478\" src=\"https:\/\/static.pingcap.com\/files\/2025\/08\/27123056\/image-1-1024x478.png\" alt=\"TiDB DDL execution optimization roadmap and milestones.\" class=\"wp-image-29269\" srcset=\"https:\/\/static.pingcap.com\/files\/2025\/08\/27123056\/image-1-1024x478.png 1024w, https:\/\/static.pingcap.com\/files\/2025\/08\/27123056\/image-1-300x140.png 300w, https:\/\/static.pingcap.com\/files\/2025\/08\/27123056\/image-1-768x359.png 768w, https:\/\/static.pingcap.com\/files\/2025\/08\/27123056\/image-1.png 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"has-text-align-center\"><em>Figure 1: Optimization Roadmap and Milestones<\/em>.<\/p>\n\n\n\n<p>The following data set shows the optimized effect when we reached version 8.1.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Table Num<\/strong><\/td><td><strong>TiDB 7.5<\/strong><\/td><td><strong>TiDB 7.6<\/strong><\/td><td><strong>TiDB 8.0<\/strong><\/td><td><strong>MySQL 8.1.0<\/strong><\/td><td><strong>Perf Enhancment Ratio<\/strong><\/td><\/tr><tr><td>100k<\/td><td>3h30m<\/td><td>26m<\/td><td>9m39s<\/td><td>5m30s<\/td><td>21.76<\/td><\/tr><tr><td>300k<\/td><td>59h20m<\/td><td>estimate &gt; 6 hours<\/td><td>30m38s<\/td><td>&lt;14m<\/td><td>118<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"has-text-align-center\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Key_Optimization_Areas\"><\/span>Key Optimization Areas<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>We addressed multiple bottlenecks that impacted schema change performance:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Scheduling &amp; Concurrency<\/strong>&nbsp;\u2013 Increased scheduling granularity, allowing entire DDL tasks to run as units. Expanded worker pools to enable parallel execution of independent jobs.<\/li>\n\n\n\n<li><strong>Metadata Optimization<\/strong>&nbsp;\u2013 Introduced metadata caching and removed fallback TiKV lookups, cutting redundant I\/O during schema validation.<\/li>\n\n\n\n<li><strong>Parallelization &amp; Batching<\/strong>&nbsp;\u2013 Distributed table creation across nodes and merged jobs into batch transactions, significantly reducing execution overhead.<\/li>\n\n\n\n<li><strong>Direct Execution<\/strong>&nbsp;\u2013 Allowed DDL statements to run directly on initiating nodes, eliminating central queue bottlenecks.<\/li>\n\n\n\n<li><strong>Targeted Notifications<\/strong>&nbsp;\u2013 Replaced broadcast notifications with directional updates to reduce redundant processing.<\/li>\n\n\n\n<li><strong>Global Uniqueness Checks<\/strong>&nbsp;\u2013 Leveraged indexed metadata structures to verify table name uniqueness efficiently under high concurrency.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Breakthrough_Implementations\"><\/span>Breakthrough Implementations<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Among these changes, three drove the most impact:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Local Execution of DDL Tasks<\/strong>&nbsp;\u2013 Removed queue latency by executing on the initiating node.<\/li>\n\n\n\n<li><strong>Indexed Metadata for Global Uniqueness<\/strong>&nbsp;\u2013 Eliminated costly full scans for name validation.<\/li>\n\n\n\n<li><strong>Batch Execution<\/strong>&nbsp;\u2013 Improved efficiency by grouping multiple table creation jobs into a single transaction.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Why_These_Enhancements_Matter\"><\/span>Why These Enhancements Matter<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>These optimizations ensure that TiDB can:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Scale seamlessly to millions of tables.<\/li>\n\n\n\n<li>Execute schema changes with lower latency and higher throughput.<\/li>\n\n\n\n<li>Compete directly with MySQL and Aurora on raw speed, while offering distributed scalability they cannot match.<\/li>\n<\/ul>\n\n\n\n<p>By refining our DDL engine, we\u2019ve built a future-ready foundation for distributed schema management at SaaS scale.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"In-Depth_Look_at_TiDBs_Optimization_Journey\"><\/span>In-Depth Look at TiDB&#8217;s Optimization Journey<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>After TiDB 8.1 significantly improved table creation performance, customers quickly recognized the benefits. However, challenges remained, particularly with general DDL execution across large-scale deployments. To address these, we expanded our optimization efforts in TiDB 8.2 and beyond, focusing on improving throughput, stability, and overall execution efficiency.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Identifying_Performance_Bottlenecks\"><\/span>Identifying Performance Bottlenecks<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>A detailed analysis of TiDB\u2019s DDL execution process revealed multiple bottlenecks, particularly in large-scale multi-tenant scenarios with millions of tables. These issues stemmed from the rapid iteration of previous implementations and the need for a more scalable execution model.<\/p>\n\n\n\n<p>The key bottlenecks included:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Inefficiencies in DDL Task Scheduling&nbsp;<\/strong>\u2013 DDL tasks were processed sequentially with unnecessary scheduling overhead.<\/li>\n\n\n\n<li><strong>Slow Database\/Table Existence Checks<\/strong>&nbsp;\u2013 Schema validation relied on slower, fallback mechanisms in some cases.<\/li>\n\n\n\n<li><strong>Underutilization of Computing Resources<\/strong>&nbsp;\u2013 TiDB nodes were not fully leveraged for concurrent execution.<\/li>\n\n\n\n<li><strong>Inefficient Broadcasting Mechanisms&nbsp;<\/strong>\u2013 Schema changes were propagated across nodes in a way that introduced unnecessary delays.<\/li>\n<\/ul>\n\n\n\n<p>By systematically addressing these pain points, we transformed TiDB\u2019s DDL execution into a highly efficient, distributed process.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Optimization of DDL Task Scheduling<\/h3>\n\n\n\n<p>TiDB\u2019s original scheduling strategy processed fine-state machine steps for each DDL statement, leading to excessive scheduling overhead.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Adjusting Scheduling Granularity:<\/strong>&nbsp;Instead of processing fine-state steps, entire DDL tasks are now handled as a unit, reducing overhead and improving efficiency.<\/li>\n\n\n\n<li><strong>Enhancing Concurrency:<\/strong>&nbsp;Independent DDL tasks now execute in parallel, maximizing system resource utilization and reducing overall execution time.<\/li>\n\n\n\n<li><strong>Expanding Execution Resources:<\/strong>&nbsp;The worker pool for general DDL tasks was increased, allowing multiple tasks to run simultaneously and significantly improving throughput.<\/li>\n\n\n\n<li><strong>Simplifying Scheduling Logic:<\/strong>&nbsp;Optimized algorithms reduce scheduling complexity, improving overall efficiency.<\/li>\n<\/ul>\n\n\n\n<p>These changes resulted in a&nbsp;<strong>significant increase in DDL task scheduling efficiency<\/strong>&nbsp;while reducing resource consumption.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Optimizing Database\/Table Existence Checks<\/h3>\n\n\n\n<p>Efficiently verifying whether a table exists is crucial for TiDB\u2019s DDL execution performance. Currently, TiDB uses two methods to check table existence: querying an in-memory schema cache and, when necessary, falling back to a TiKV lookup. While the cache check is generally sufficient, under high-concurrency workloads, the fallback to TiKV introduces unnecessary delays.<\/p>\n\n\n\n<p>To optimize performance, we have removed the direct TiKV lookup, relying exclusively on the schema cache for existence checks. The reasoning behind this decision is:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Reliable Schema Cache Synchronization:<\/strong>&nbsp;The schema cache on the DDL owner node is consistently updated, ensuring correctness.<\/li>\n\n\n\n<li><strong>Job Dependency Calculations:<\/strong>&nbsp;Before execution, dependencies between DDL jobs are analyzed, preventing simultaneous creation of the same table.<\/li>\n\n\n\n<li><strong>Sequential Job Execution:<\/strong>&nbsp;TiDB processes DDL jobs in order, ensuring schema updates propagate correctly before subsequent jobs execute.<\/li>\n\n\n\n<li><strong>Schema Reloading for DDL Owners:<\/strong>&nbsp;When a node becomes the DDL owner, it reloads schema metadata to stay synchronized with TiKV.<\/li>\n<\/ul>\n\n\n\n<p>By exclusively relying on the schema cache, we have significantly reduced unnecessary queries to TiKV, improving execution speed and efficiency, particularly in large-scale deployments.<\/p>\n\n\n\n<p>The following function illustrates the optimized table existence check logic:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>func checkTableNotExists(d *ddlCtx, t *meta.Meta, schemaID int64, tableName string) error {\n        \/\/ Try to use memory schema info to check first.\n        currVer, err := t.GetSchemaVersion()\n        if err != nil {\n                return err\n        }\n        is := d.infoCache.GetLatest()\n        if is.SchemaMetaVersion() == currVer {\n                return checkTableNotExistsFromInfoSchema(is, schemaID, tableName)\n        }\n\n        return checkTableNotExistsFromStore(t, schemaID, tableName)\n}<\/code><\/pre>\n\n\n\n<p>We use a single task to execute worker-run generic DDL jobs serially, so in most cases, the existence check passes through the first branch, utilizing the schema cache. However, when concurrent jobs run, a node\u2019s schema version may lag behind TiKV, forcing a fallback to the second branch, which slows execution as the number of tables increases.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Relying Solely On the Schema Cache<\/h3>\n\n\n\n<p>To improve performance, we propose eliminating the second branch and relying solely on the schema cache. This change is based on the following key observations:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Schema Cache Reliability:<\/strong>&nbsp;The cache on the owner node is properly synchronized, ensuring that existence checks use the most up-to-date information.<\/li>\n\n\n\n<li><strong>Precomputed Job Dependencies:<\/strong>&nbsp;Before execution, dependencies are analyzed to prevent concurrent table creation for the same schema objects.<\/li>\n\n\n\n<li><strong>Consistency in Execution Order:<\/strong>&nbsp;Jobs execute in the order of job IDs, ensuring that updates are processed sequentially and avoiding redundant checks.<\/li>\n\n\n\n<li><strong>Schema Synchronization for Ownership Transfers:<\/strong>&nbsp;When a node assumes the DDL owner role, it reloads schema metadata to guarantee alignment with TiKV.<\/li>\n<\/ul>\n\n\n\n<p>By relying exclusively on the schema cache, we eliminate unnecessary TiKV lookups, reducing execution latency and improving system throughput. This enhancement ensures that DDL operations scale effectively with increasing workloads while maintaining consistency and correctness.<\/p>\n\n\n\n<p>This optimization significantly improves DDL execution efficiency and system stability. Additional measures include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Index Optimization:<\/strong>&nbsp;Future Data Dictionary projects will introduce indexes for table\/schema names to speed up lookups.<\/li>\n\n\n\n<li><strong>Fault Tolerance Mechanisms:<\/strong>&nbsp;While schema cache validation is generally reliable, extra safeguards can handle extreme synchronization issues.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Improving Utilization of Computing Resources<\/h3>\n\n\n\n<p>TiDB\u2019s schema synchronization mechanism initially relied on&nbsp;<strong>timed polling<\/strong>, where the system repeatedly checked for schema updates at fixed intervals. This approach introduced inefficiencies\u2014frequent schema changes or slow schema loading led to excessive invalid checks, slowing down the system.<\/p>\n\n\n\n<p>To resolve this, we adopted&nbsp;<strong>ETCD\u2019s Watch mechanism<\/strong>. Instead of periodic polling, TiDB now listens for real-time changes in ETCD. When a schema version changes, ETCD notifies TiDB immediately, allowing for on-demand synchronization. This enhancement:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Eliminates unnecessary polling<\/strong>, reducing system overhead.<\/li>\n\n\n\n<li><strong>Improves response time<\/strong>, ensuring faster propagation of schema changes.<\/li>\n\n\n\n<li><strong>Enhances resource efficiency<\/strong>, allowing TiDB to focus computing power on execution rather than repeated checks.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Replacing the Broadcast Mechanism for DDL Completion<\/h3>\n\n\n\n<p>Previously, TiDB relied on&nbsp;<strong>broadcast notifications<\/strong>&nbsp;to signal DDL completion. This approach introduced inefficiencies, as multiple submission threads would attempt to process the same notification, leading to unnecessary processing delays.<\/p>\n\n\n\n<p>In the optimized implementation, we have replaced this with&nbsp;<strong>directional notifications<\/strong>, ensuring that only the thread responsible for a given DDL job receives the completion event. This change:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Prevents redundant processing<\/strong>, reducing overall execution overhead.<\/li>\n\n\n\n<li><strong>Speeds up DDL completion<\/strong>, allowing submission threads to finish execution promptly.<\/li>\n\n\n\n<li><strong>Enhances throughput<\/strong>, improving TiDB\u2019s ability to handle high-volume schema changes.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Refactoring_the_DDL_Framework_for_Future_Scalability\"><\/span>Refactoring the DDL Framework for Future Scalability<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>The existing DDL framework had accumulated technical debt over time, making it less adaptable to evolving business needs. To future-proof TiDB, we initiated a comprehensive refactoring of the DDL framework.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Challenges with the Previous Framework<\/strong><\/h3>\n\n\n\n<p>Several issues necessitated this overhaul:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Aging Design:<\/strong>&nbsp;The framework\u2019s original design limited flexibility and scalability.<\/li>\n\n\n\n<li><strong>Poor Code Maintainability:<\/strong>&nbsp;Years of fixes and local optimizations had led to high coupling, redundant logic, and difficult-to-read code.<\/li>\n\n\n\n<li><strong>Insufficient Testing:<\/strong>&nbsp;Lack of comprehensive unit and integration tests increased the risk of regressions.<\/li>\n\n\n\n<li><strong>Slow Iteration Speed:<\/strong>&nbsp;The complex code structure made modifications time-consuming and error-prone.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Refactoring&nbsp;<\/strong><strong>G<\/strong><strong>oals<\/strong><\/h3>\n\n\n\n<p>The refactoring aimed to:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Improve Code Quality:<\/strong>&nbsp;Adopting a modular, loosely coupled structure to enhance readability and maintainability.<\/li>\n\n\n\n<li><strong>Enhance Testing Coverage:<\/strong>&nbsp;Implementing unit, integration, and E2E tests to ensure stability and reduce defect rates.<\/li>\n\n\n\n<li><strong>Optimize Architecture:<\/strong>&nbsp;Moving towards modern architectural patterns such as microservices or domain-driven design for improved scalability and fault tolerance.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Refactoring&nbsp;<\/strong><strong>S<\/strong><strong>trategy<\/strong><\/h3>\n\n\n\n<p>We adopted an&nbsp;<strong>incremental refactoring approach<\/strong>, minimizing risk while ensuring continuous improvements:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Small, Incremental Changes:<\/strong>&nbsp;Breaking refactoring tasks into smaller steps, validating each change before proceeding.<\/li>\n\n\n\n<li><strong>Continuous Integration:<\/strong>&nbsp;Using automated builds and tests to detect issues early.<\/li>\n\n\n\n<li><strong>Code Reviews:<\/strong>&nbsp;Enforcing strict reviews to maintain quality and knowledge sharing.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Expected&nbsp;<\/strong><strong>R<\/strong><strong>esults<\/strong><\/h3>\n\n\n\n<p>The refactoring is expected to deliver:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Greater Stability:<\/strong>&nbsp;Improved code quality reduces bugs and enhances system reliability.<\/li>\n\n\n\n<li><strong>Higher Development Efficiency:<\/strong>&nbsp;A cleaner codebase speeds up modifications and debugging.<\/li>\n\n\n\n<li><strong>Better Scalability:<\/strong>&nbsp;The new architecture is designed to support future expansion and feature additions.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Potential R<\/strong><strong>isks and&nbsp;<\/strong><strong>Mitigation<\/strong><\/h3>\n\n\n\n<p>Refactoring introduces challenges, but careful planning mitigates risks:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Risk: Introducing new bugs<\/strong>\n<ul class=\"wp-block-list\">\n<li><em>Solution:<\/em>&nbsp;Implementing small, incremental changes with thorough testing.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Risk: Slowing down feature development<\/strong>\n<ul class=\"wp-block-list\">\n<li><em>Solution:<\/em>&nbsp;Coordinating refactoring with business requirements to ensure minimal disruption.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Key Takeaways from the Optimization Journey<\/strong><\/h3>\n\n\n\n<p>Through this multi-phase optimization initiative, we successfully:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Increased DDL execution throughput by optimizing scheduling and concurrency.<\/li>\n\n\n\n<li>Eliminated unnecessary schema validation bottlenecks, reducing execution time.<\/li>\n\n\n\n<li>Improved cluster-wide synchronization, enhancing performance under high workloads.<\/li>\n\n\n\n<li>Refactored the framework for future scalability, ensuring TiDB remains adaptable to emerging business needs.<\/li>\n<\/ul>\n\n\n\n<p>By continuously refining TiDB\u2019s DDL execution, we\u2019re laying the groundwork for the next generation of distributed schema management.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Measuring_the_Impact_of_TiDB_DDL_Optimizations\"><\/span>Measuring the Impact of TiDB DDL Optimizations<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>After implementing these optimizations in TiDB 8.2 and 8.3, we conducted extensive benchmarking to measure their impact. The results confirm significant improvements in DDL execution throughput, scalability, and stability, making TiDB an even more powerful choice for high-scale deployments.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"TiDB_82_General_DDL_Performance_Gains\"><\/span><strong>TiDB 8.2: General DDL Performance Gains<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Comparing the DDL task execution&nbsp;<strong>QPS (Queries Per Second)<\/strong>&nbsp;between TiDB 8.1 and 8.2 highlights substantial performance enhancements. In TiDB 8.1, the average QPS was approximately&nbsp;<strong>7<\/strong>, whereas in TiDB 8.2, it increased to&nbsp;<strong>38<\/strong>, with a peak QPS of&nbsp;<strong>80<\/strong>\u2014a&nbsp;<strong>5x improvement<\/strong>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"360\" height=\"254\" src=\"https:\/\/static.pingcap.com\/files\/2025\/08\/27123250\/image-2.png\" alt=\"QPS in TiDB 8.1 and TiDB 8.2.\" class=\"wp-image-29271\" style=\"width:716px;height:auto\" srcset=\"https:\/\/static.pingcap.com\/files\/2025\/08\/27123250\/image-2.png 360w, https:\/\/static.pingcap.com\/files\/2025\/08\/27123250\/image-2-300x212.png 300w\" sizes=\"auto, (max-width: 360px) 100vw, 360px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"has-text-align-center\"><em>Figure 2: QPS in TiDB 8.1 and TiDB 8.2. <\/em><\/p>\n\n\n\n<p>This data confirms that TiDB 8.2 introduced significant execution efficiency optimizations, leading to much faster DDL performance.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"TiDB_83_Pushing_Performance_Even_Further\"><\/span><strong>TiDB 8.3: Pushing Performance Even Further<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Further refinements in TiDB 8.3 yielded even more substantial improvements. Compared to TiDB 8.2, the maximum QPS in TiDB 8.3 reached approximately&nbsp;<strong>200<\/strong>, with an average QPS of&nbsp;<strong>180<\/strong>. Performance also became more stable, demonstrating continued progress in DDL execution optimization.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"714\" src=\"https:\/\/static.pingcap.com\/files\/2025\/08\/27123334\/image-3-1024x714.png\" alt=\"QPS in TiDB 8.2 and TiDB 8.3.\" class=\"wp-image-29272\" srcset=\"https:\/\/static.pingcap.com\/files\/2025\/08\/27123334\/image-3-1024x714.png 1024w, https:\/\/static.pingcap.com\/files\/2025\/08\/27123334\/image-3-300x209.png 300w, https:\/\/static.pingcap.com\/files\/2025\/08\/27123334\/image-3-768x535.png 768w, https:\/\/static.pingcap.com\/files\/2025\/08\/27123334\/image-3.png 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"has-text-align-center\"><em>Figure 3: QPS in TiDB 8.2 and TiDB 8.<\/em>3.<\/p>\n\n\n\n<p>Additionally, enabling&nbsp;<strong>Fast Create Table<\/strong>&nbsp;functionality further&nbsp;<strong>doubled<\/strong>&nbsp;the QPS of DDL operations, significantly enhancing overall system throughput.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"TiDB_85_Benchmarking_Against_MySQL_and_Aurora\"><\/span><strong>TiDB 8.5: Benchmarking Against MySQL and Aurora<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>To comprehensively evaluate DDL performance in&nbsp;<strong>TiDB 8.5<\/strong>, we set up a dedicated test cluster with the following hardware specifications:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Node type<\/strong><\/td><td><strong>Number<\/strong><\/td><td><strong>Specifications<\/strong><\/td><\/tr><tr><td>PD<\/td><td>1<\/td><td>8C16G<\/td><\/tr><tr><td>\ud2f0DB<\/td><td>3<\/td><td>16C32G<\/td><\/tr><tr><td>TiKV<\/td><td>3<\/td><td>8C32G<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>The test results are as follows:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Operations<\/strong><\/td><td><strong>TiDB 7.5<\/strong><\/td><td><strong>TiDB 8.5<\/strong><\/td><td><strong>Description<\/strong><\/td><\/tr><tr><td><strong>Create 100K tables<\/strong><\/td><td>3h49m<\/td><td>11m (<strong>20X<\/strong>&nbsp;faster)4m (<strong>50X<\/strong>&nbsp;faster) if Fast Create Table enabled<\/td><td>Create tables inside a single DB<\/td><\/tr><tr><td><strong>Create 1M tables<\/strong><\/td><td>more than 2 days<\/td><td>1h30m (<strong>50X<\/strong>&nbsp;faster)<\/td><td>Create 10K schemas, each containing 100 tables<\/td><\/tr><tr><td><strong>Create 100K schemas<\/strong><\/td><td>8h27m<\/td><td>15m (<strong>32X<\/strong>&nbsp;faster)<\/td><td><\/td><\/tr><tr><td><strong>100K add-column<\/strong><\/td><td>6h11m<\/td><td>32m (<strong>11X<\/strong>&nbsp;faster)<\/td><td>All tables created inside a single DB<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Benchmark_Comparison_TiDB_vs_MySQL_vs_Amazon_Aurora\"><\/span><strong>Benchmark Comparison: TiDB vs. MySQL vs. Amazon Aurora&nbsp;<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>In direct comparisons with&nbsp;<strong><a href=\"https:\/\/docs.pingcap.com\/tidb\/stable\/mysql-compatibility\/\">MySQL<\/a><\/strong>&nbsp;\uadf8\ub9ac\uace0&nbsp;<strong><a href=\"https:\/\/www.pingcap.com\/ko\/ebook-whitepaper\/amazon-aurora-vs-tidb-distributed-database-product-comparison\/\">Amazon Aurora<\/a><\/strong>, TiDB demonstrated superior scalability for large-scale DDL operations.Benchmark Comparison: TiDB vs. MySQL vs. Amazon Aurora<\/p>\n\n\n\n<p>In direct comparisons with&nbsp;MySQL&nbsp;and&nbsp;Amazon Aurora, TiDB demonstrated superior scalability for large-scale DDL operations.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>EC2 to run general DDL<\/td><td>c5a.2xlarge (8c16g)<\/td><\/tr><tr><td>Amazon Aurora<\/td><td>db.r6g.2xlarge (8c64g)Aurora I\/O-OptimizedAurora MySQL 3.05.2 (compatible with MySQL 8.0.32)<\/td><\/tr><tr><td>MySQL<\/td><td>db.m5.2xlarge (8c32g)AWS RDS MySQLMySQL 8.0.39Single DB instanceStandard classes (includes m classes)Provisioned IOPS SSD (io2)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Benchmark test results:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Operations<\/strong><\/td><td><strong>TiDB 8.5<\/strong><\/td><td><strong>Amazon<\/strong> <strong>Aurora<\/strong><\/td><td><strong>MySQL<\/strong><\/td><\/tr><tr><td>Create 100 tables for 10 DBs (1M total)<\/td><td>1h30m<\/td><td>1h24m<\/td><td>1h46m<\/td><\/tr><tr><td>Create 1M tables in 4 DBs<\/td><td>2h10m<\/td><td>1h59m<\/td><td>2h15m<\/td><\/tr><tr><td>Create 100K tables in a single DB<\/td><td>8m55s<\/td><td>8m31s<\/td><td>12m41s&nbsp;<\/td><\/tr><tr><td>Add 1 column for 100K tables<\/td><td>31m47<\/td><td>13m35<\/td><td>6m3<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>These results confirm TiDB\u2019s enhanced DDL execution capabilities, demonstrating significant improvements over previous versions while achieving competitive performance against traditional databases. This progress lays a strong foundation for TiDB\u2019s continued innovation in <a href=\"https:\/\/www.pingcap.com\/ko\/tidb\/self-managed\/\">distributed database<\/a> technology.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Summary_of_Benchmark_Findings\"><\/span>Summary of Benchmark Findings<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>The results validate TiDB\u2019s substantial improvements in DDL execution performance while maintaining high scalability.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>TiDB\u2019s multi-tenant capabilities allow it to handle millions of tables efficiently.<\/li>\n\n\n\n<li>Faster schema operations mean quicker feature rollouts for SaaS providers.<\/li>\n\n\n\n<li>DDL performance now rivals top cloud databases like Aurora while preserving TiDB\u2019s distributed flexibility.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Whats_Next_for_TiDB_DDL_Execution\"><\/span>What\u2019s Next for TiDB DDL Execution?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Moving forward, our focus will be on three key areas:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Refining the DDL Architecture:<\/strong>&nbsp;We aim to simplify the framework, making it more intuitive and easier to maintain while enhancing its adaptability to evolving workloads.<\/li>\n\n\n\n<li><strong>Futher Enhancing Stability and Performance:<\/strong>&nbsp;By further optimizing scheduling mechanisms, metadata management, and parallel execution strategies, we will ensure TiDB continues to meet the demands of high-performance workloads.<\/li>\n\n\n\n<li><strong>Building a High-Throughput Distributed Execution Subsystem:<\/strong>&nbsp;Our ultimate goal is to develop a next-generation DDL execution system with high linear scalability, ensuring efficient processing of schema changes across distributed environments.<\/li>\n<\/ul>\n\n\n\n<p>Our long-term goal is to develop a fully distributed, parallelized DDL execution framework with:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Optimized transaction handling<\/strong>&nbsp;to improve the reliability of schema changes<\/li>\n\n\n\n<li><strong>Intelligent resource scheduling<\/strong>&nbsp;to dynamically allocate resources based on workload demands<\/li>\n\n\n\n<li><strong>Linear scalability<\/strong>&nbsp;to support rapid growth in multi-tenant environments<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"How_You_Can_Get_Involved\"><\/span>How You Can Get Involved<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>We invite the TiDB community, database developers, and contributors to help shape the future of DDL execution. Your insights, feedback, and contributions play a crucial role in refining our approach and driving continuous innovation.<\/p>\n\n\n\n<p>Join us in advancing TiDB\u2019s DDL capabilities\u2014visit our&nbsp;<a href=\"https:\/\/github.com\/pingcap\/tidb\">GitHub repository<\/a>&nbsp;to contribute,&nbsp;<a href=\"https:\/\/tidbcloud.com\/\">sign up for TiDB Cloud Serverless<\/a>&nbsp;to start using TiDB today for free, or&nbsp;<a href=\"https:\/\/www.pingcap.com\/ko\/\">contact us<\/a>&nbsp;to connect with our team!<\/p>","protected":false},"excerpt":{"rendered":"<p>Schema changes at scale can be a nightmare for SaaS applications. Slow index creation, long-running schema modifications, and scalability limits can disrupt operations, making real-time database evolution nearly impossible. TiDB has been tackling these challenges head-on, continuously pushing the boundaries of distributed SQL and DDL execution. Last year,&nbsp;we boosted index creation speed by 10x, enabling [&hellip;]<\/p>\n","protected":false},"author":294,"featured_media":29275,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ub_ctt_via":"","footnotes":""},"categories":[6],"tags":[147,16,11,111,31],"class_list":["post-29217","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-engineering","tag-distributed-sql","tag-distributed-system","tag-real-time-analytics","tag-tidb","tag-tidb-cloud"],"acf":[],"featured_image_src":"https:\/\/static.pingcap.com\/files\/2025\/08\/27123937\/tidb_feature_1800x600-1-4.png","author_info":{"display_name":"Vincent Ju","author_link":"https:\/\/www.pingcap.com\/ko\/blog\/author\/vju\/"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>DDL Execution Optimized: Unleashing TiDB Scalability<\/title>\n<meta name=\"description\" content=\"Discover how TiDB optimizes DDL execution to scale schema changes to 1M+ tables by boosting speed, stability, and SaaS-ready scalability.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.pingcap.com\/ko\/blog\/unleashing-tidb-scalability-next-generation-ddl-execution\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"DDL Execution Optimized: Unleashing TiDB Scalability\" \/>\n<meta property=\"og:description\" content=\"Discover how TiDB optimizes DDL execution to scale schema changes to 1M+ tables by boosting speed, stability, and SaaS-ready scalability.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.pingcap.com\/ko\/blog\/unleashing-tidb-scalability-next-generation-ddl-execution\/\" \/>\n<meta property=\"og:site_name\" content=\"TiDB\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/facebook.com\/pingcap2015\" \/>\n<meta property=\"article:published_time\" content=\"2025-08-25T19:45:26+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-11-14T09:38:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/static.pingcap.com\/files\/2025\/08\/27123955\/tidb_1200x627-2-2.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2400\" \/>\n\t<meta property=\"og:image:height\" content=\"1254\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Vincent Ju\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/static.pingcap.com\/files\/2025\/08\/27124011\/tidb_twitter_1600x900-1-4.png\" \/>\n<meta name=\"twitter:creator\" content=\"@PingCAP\" \/>\n<meta name=\"twitter:site\" content=\"@PingCAP\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Vincent Ju\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"15\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/unleashing-tidb-scalability-next-generation-ddl-execution\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/unleashing-tidb-scalability-next-generation-ddl-execution\/\"},\"author\":{\"name\":\"Vincent Ju\",\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/person\/a2498b526f2bcb7b94c525eb97dbc119\"},\"headline\":\"Unleashing TiDB Scalability: The Next Generation of DDL Execution\",\"datePublished\":\"2025-08-25T19:45:26+00:00\",\"dateModified\":\"2025-11-14T09:38:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/unleashing-tidb-scalability-next-generation-ddl-execution\/\"},\"wordCount\":2970,\"publisher\":{\"@id\":\"https:\/\/www.pingcap.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/unleashing-tidb-scalability-next-generation-ddl-execution\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/static.pingcap.com\/files\/2025\/08\/27123937\/tidb_feature_1800x600-1-4.png\",\"keywords\":[\"Distributed SQL\",\"Distributed system\",\"Real-time analytics\",\"TiDB\",\"TiDB Cloud\"],\"articleSection\":[\"Engineering\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/unleashing-tidb-scalability-next-generation-ddl-execution\/\",\"url\":\"https:\/\/www.pingcap.com\/blog\/unleashing-tidb-scalability-next-generation-ddl-execution\/\",\"name\":\"DDL Execution Optimized: Unleashing TiDB Scalability\",\"isPartOf\":{\"@id\":\"https:\/\/www.pingcap.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/unleashing-tidb-scalability-next-generation-ddl-execution\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/unleashing-tidb-scalability-next-generation-ddl-execution\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/static.pingcap.com\/files\/2025\/08\/27123937\/tidb_feature_1800x600-1-4.png\",\"datePublished\":\"2025-08-25T19:45:26+00:00\",\"dateModified\":\"2025-11-14T09:38:14+00:00\",\"description\":\"Discover how TiDB optimizes DDL execution to scale schema changes to 1M+ tables by boosting speed, stability, and SaaS-ready scalability.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/unleashing-tidb-scalability-next-generation-ddl-execution\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.pingcap.com\/blog\/unleashing-tidb-scalability-next-generation-ddl-execution\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/unleashing-tidb-scalability-next-generation-ddl-execution\/#primaryimage\",\"url\":\"https:\/\/static.pingcap.com\/files\/2025\/08\/27123937\/tidb_feature_1800x600-1-4.png\",\"contentUrl\":\"https:\/\/static.pingcap.com\/files\/2025\/08\/27123937\/tidb_feature_1800x600-1-4.png\",\"width\":3600,\"height\":1200},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/unleashing-tidb-scalability-next-generation-ddl-execution\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.pingcap.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Unleashing TiDB Scalability: The Next Generation of DDL Execution\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.pingcap.com\/#website\",\"url\":\"https:\/\/www.pingcap.com\/\",\"name\":\"TiDB\",\"description\":\"TiDB | SQL at Scale\",\"publisher\":{\"@id\":\"https:\/\/www.pingcap.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.pingcap.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.pingcap.com\/#organization\",\"name\":\"PingCAP\",\"url\":\"https:\/\/www.pingcap.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/static.pingcap.com\/files\/2021\/11\/pingcap-logo.png\",\"contentUrl\":\"https:\/\/static.pingcap.com\/files\/2021\/11\/pingcap-logo.png\",\"width\":811,\"height\":232,\"caption\":\"PingCAP\"},\"image\":{\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/facebook.com\/pingcap2015\",\"https:\/\/x.com\/PingCAP\",\"https:\/\/linkedin.com\/company\/pingcap\",\"https:\/\/youtube.com\/channel\/UCuq4puT32DzHKT5rU1IZpIA\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/person\/a2498b526f2bcb7b94c525eb97dbc119\",\"name\":\"Vincent Ju\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/static.pingcap.com\/files\/2022\/10\/17234942\/avatar.jpg\",\"contentUrl\":\"https:\/\/static.pingcap.com\/files\/2022\/10\/17234942\/avatar.jpg\",\"caption\":\"Vincent Ju\"},\"description\":\"Software Engineer\",\"url\":\"https:\/\/www.pingcap.com\/ko\/blog\/author\/vju\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"DDL Execution Optimized: Unleashing TiDB Scalability","description":"Discover how TiDB optimizes DDL execution to scale schema changes to 1M+ tables by boosting speed, stability, and SaaS-ready scalability.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.pingcap.com\/ko\/blog\/unleashing-tidb-scalability-next-generation-ddl-execution\/","og_locale":"ko_KR","og_type":"article","og_title":"DDL Execution Optimized: Unleashing TiDB Scalability","og_description":"Discover how TiDB optimizes DDL execution to scale schema changes to 1M+ tables by boosting speed, stability, and SaaS-ready scalability.","og_url":"https:\/\/www.pingcap.com\/ko\/blog\/unleashing-tidb-scalability-next-generation-ddl-execution\/","og_site_name":"TiDB","article_publisher":"https:\/\/facebook.com\/pingcap2015","article_published_time":"2025-08-25T19:45:26+00:00","article_modified_time":"2025-11-14T09:38:14+00:00","og_image":[{"width":2400,"height":1254,"url":"https:\/\/static.pingcap.com\/files\/2025\/08\/27123955\/tidb_1200x627-2-2.png","type":"image\/png"}],"author":"Vincent Ju","twitter_card":"summary_large_image","twitter_image":"https:\/\/static.pingcap.com\/files\/2025\/08\/27124011\/tidb_twitter_1600x900-1-4.png","twitter_creator":"@PingCAP","twitter_site":"@PingCAP","twitter_misc":{"Written by":"Vincent Ju","Est. reading time":"15\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.pingcap.com\/blog\/unleashing-tidb-scalability-next-generation-ddl-execution\/#article","isPartOf":{"@id":"https:\/\/www.pingcap.com\/blog\/unleashing-tidb-scalability-next-generation-ddl-execution\/"},"author":{"name":"Vincent Ju","@id":"https:\/\/www.pingcap.com\/#\/schema\/person\/a2498b526f2bcb7b94c525eb97dbc119"},"headline":"Unleashing TiDB Scalability: The Next Generation of DDL Execution","datePublished":"2025-08-25T19:45:26+00:00","dateModified":"2025-11-14T09:38:14+00:00","mainEntityOfPage":{"@id":"https:\/\/www.pingcap.com\/blog\/unleashing-tidb-scalability-next-generation-ddl-execution\/"},"wordCount":2970,"publisher":{"@id":"https:\/\/www.pingcap.com\/#organization"},"image":{"@id":"https:\/\/www.pingcap.com\/blog\/unleashing-tidb-scalability-next-generation-ddl-execution\/#primaryimage"},"thumbnailUrl":"https:\/\/static.pingcap.com\/files\/2025\/08\/27123937\/tidb_feature_1800x600-1-4.png","keywords":["Distributed SQL","Distributed system","Real-time analytics","TiDB","TiDB Cloud"],"articleSection":["Engineering"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/www.pingcap.com\/blog\/unleashing-tidb-scalability-next-generation-ddl-execution\/","url":"https:\/\/www.pingcap.com\/blog\/unleashing-tidb-scalability-next-generation-ddl-execution\/","name":"DDL Execution Optimized: Unleashing TiDB Scalability","isPartOf":{"@id":"https:\/\/www.pingcap.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.pingcap.com\/blog\/unleashing-tidb-scalability-next-generation-ddl-execution\/#primaryimage"},"image":{"@id":"https:\/\/www.pingcap.com\/blog\/unleashing-tidb-scalability-next-generation-ddl-execution\/#primaryimage"},"thumbnailUrl":"https:\/\/static.pingcap.com\/files\/2025\/08\/27123937\/tidb_feature_1800x600-1-4.png","datePublished":"2025-08-25T19:45:26+00:00","dateModified":"2025-11-14T09:38:14+00:00","description":"Discover how TiDB optimizes DDL execution to scale schema changes to 1M+ tables by boosting speed, stability, and SaaS-ready scalability.","breadcrumb":{"@id":"https:\/\/www.pingcap.com\/blog\/unleashing-tidb-scalability-next-generation-ddl-execution\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.pingcap.com\/blog\/unleashing-tidb-scalability-next-generation-ddl-execution\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.pingcap.com\/blog\/unleashing-tidb-scalability-next-generation-ddl-execution\/#primaryimage","url":"https:\/\/static.pingcap.com\/files\/2025\/08\/27123937\/tidb_feature_1800x600-1-4.png","contentUrl":"https:\/\/static.pingcap.com\/files\/2025\/08\/27123937\/tidb_feature_1800x600-1-4.png","width":3600,"height":1200},{"@type":"BreadcrumbList","@id":"https:\/\/www.pingcap.com\/blog\/unleashing-tidb-scalability-next-generation-ddl-execution\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.pingcap.com\/"},{"@type":"ListItem","position":2,"name":"Unleashing TiDB Scalability: The Next Generation of DDL Execution"}]},{"@type":"WebSite","@id":"https:\/\/www.pingcap.com\/#website","url":"https:\/\/www.pingcap.com\/","name":"\ud2f0DB","description":"TiDB | SQL at Scale","publisher":{"@id":"https:\/\/www.pingcap.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.pingcap.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/www.pingcap.com\/#organization","name":"PingCAP","url":"https:\/\/www.pingcap.com\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.pingcap.com\/#\/schema\/logo\/image\/","url":"https:\/\/static.pingcap.com\/files\/2021\/11\/pingcap-logo.png","contentUrl":"https:\/\/static.pingcap.com\/files\/2021\/11\/pingcap-logo.png","width":811,"height":232,"caption":"PingCAP"},"image":{"@id":"https:\/\/www.pingcap.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/facebook.com\/pingcap2015","https:\/\/x.com\/PingCAP","https:\/\/linkedin.com\/company\/pingcap","https:\/\/youtube.com\/channel\/UCuq4puT32DzHKT5rU1IZpIA"]},{"@type":"Person","@id":"https:\/\/www.pingcap.com\/#\/schema\/person\/a2498b526f2bcb7b94c525eb97dbc119","name":"Vincent Ju","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.pingcap.com\/#\/schema\/person\/image\/","url":"https:\/\/static.pingcap.com\/files\/2022\/10\/17234942\/avatar.jpg","contentUrl":"https:\/\/static.pingcap.com\/files\/2022\/10\/17234942\/avatar.jpg","caption":"Vincent Ju"},"description":"Software Engineer","url":"https:\/\/www.pingcap.com\/ko\/blog\/author\/vju\/"}]}},"grav_blocks":false,"card_markup":"<a class=\"card-resource bg-white\" href=\"https:\/\/www.pingcap.com\/ko\/blog\/unleashing-tidb-scalability-next-generation-ddl-execution\/\"><div class=\"card-resource__image-container\"><img class=\"card-resource__image\" alt=\"tidb_feature_1800x600 (1)\" src=\"https:\/\/static.pingcap.com\/files\/2025\/08\/27123937\/tidb_feature_1800x600-1-4.png\" loading=\"lazy\" width=3600 height=1200 \/><\/div><div class=\"card-resource__content-container\"><div class=\"card-resource__content-head\"><div class=\"card-resource__category\">Engineering<\/div><\/div><h5 class=\"card-resource__title\">Unleashing TiDB Scalability: The Next Generation of DDL Execution<\/h5><\/div><\/a>","_links":{"self":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/posts\/29217","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/users\/294"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/comments?post=29217"}],"version-history":[{"count":21,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/posts\/29217\/revisions"}],"predecessor-version":[{"id":30470,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/posts\/29217\/revisions\/30470"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/media\/29275"}],"wp:attachment":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/media?parent=29217"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/categories?post=29217"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/tags?post=29217"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}