{"id":8028,"date":"2022-08-02T02:10:11","date_gmt":"2022-08-02T09:10:11","guid":{"rendered":"https:\/\/en.pingcap.com\/?p=8028"},"modified":"2024-12-20T04:04:51","modified_gmt":"2024-12-20T12:04:51","slug":"speeding-up-a-saas-platform-by-5x-in-a-day-without-changing-the-code","status":"publish","type":"post","link":"https:\/\/www.pingcap.com\/ko\/blog\/speeding-up-a-saas-platform-by-5x-in-a-day-without-changing-the-code\/","title":{"rendered":"Speeding up a SaaS Platform by 5x in a Day without Changing the Code"},"content":{"rendered":"<p>Imagine this: you work in sales operations. After a sales promotion, your boss urges you to provide the sales statistics. You enter your Customer Relationship Management&nbsp;(CRM) platform, set your query conditions, and run the query. The cursor blinks for 60 seconds without any results. The boss is watching. To ease the tension and embarrassment, you choose to refresh the query condition. Another minute goes by, and you finally get some results before people get mad.&nbsp;&nbsp;<\/p>\n\n\n\n<p>If you have a Software as a Service (SaaS) platform backed by MySQL, you have been in this situation yourself. It reveals a core issue with MySQL: as a business grows, and its data sets grow larger and query workloads become increasingly complex, scaling out MySQL databases by sharding becomes a performance bottleneck. This results in inefficient query processing and a poor user experience. The industry is looking for an answer.&nbsp;<\/p>\n\n\n\n<p>As an open source distributed SQL database with Hybrid Transactional and Analytical Processing (HTAP)&nbsp;capabilities, TiDB is a nice replacement for MySQL in the scenario above. In this article, we compare the performance of TiDB and MySQL on one of the most popular low-code SaaS platforms, <a href=\"https:\/\/cortezaproject.org\/\"><strong>Corteza<\/strong><\/a> CRM. We also demonstrate how TiDB leverages its HTAP capabilities to boost the SaaS platform without any code changes and speeds up development of new applications.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Results_first_TiDB_vs_MySQL\"><\/span>Results first: TiDB vs MySQL<strong>&nbsp;<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Before we get to our analysis, let&#8217;s go right to the before and after comparison. We used a 16 GB dataset with about 5 million leads.&nbsp;As you can see, with the same hardware and dataset, <strong>TiDB performs 5x better than MySQL<\/strong>, with an execution time of 6 seconds and 31 seconds respectively. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"463\" src=\"https:\/\/www.pingcap.com\/core\/uploads\/2022\/08\/corteza-tidb.gif\" alt=\"\" class=\"wp-image-8029\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Corteza_CRM_meets_TiDB\"><\/span><strong>Corteza CRM meets TiDB<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p><strong>I<\/strong>n our experiment, we used Corteza CRM Suite, a highly flexible, scalable CRM platform built on top of Corteza. The Corteza CRM suite data model is as follows:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The <code>compose_record <\/code>table stores the correspondence between<code> record_id<\/code> \uadf8\ub9ac\uace0 <code>module_id<\/code>.<\/li>\n\n\n\n<li>The <code>compose_record_value <\/code>table stores <code>record_id <\/code>and the correspondence between each column and its value.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"606\" src=\"https:\/\/www.pingcap.com\/core\/uploads\/2022\/08\/Corteza-Data-model-1024x606.png\" alt=\"\" class=\"wp-image-8030\" srcset=\"https:\/\/static.pingcap.com\/files\/2022\/08\/Corteza-Data-model-1024x606.png 1024w, https:\/\/static.pingcap.com\/files\/2022\/08\/Corteza-Data-model-300x177.png 300w, https:\/\/static.pingcap.com\/files\/2022\/08\/Corteza-Data-model-768x454.png 768w, https:\/\/static.pingcap.com\/files\/2022\/08\/Corteza-Data-model.png 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center\"><em>Corteza CRM data model<\/em><\/p>\n\n\n\n<p>As an open source distributed SQL database, TiDB integrates storage engines of both row and column formats and decides the best way to access data. TiKV is designed for Online Transactional Processing (OLTP), while TiFlash is column-oriented storage for Online Analytical Processing (OLAP) workloads.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"630\" src=\"https:\/\/www.pingcap.com\/core\/uploads\/2022\/08\/image-1-1024x630.png\" alt=\"\" class=\"wp-image-8036\" srcset=\"https:\/\/static.pingcap.com\/files\/2022\/08\/image-1-1024x630.png 1024w, https:\/\/static.pingcap.com\/files\/2022\/08\/image-1-300x185.png 300w, https:\/\/static.pingcap.com\/files\/2022\/08\/image-1-768x472.png 768w, https:\/\/static.pingcap.com\/files\/2022\/08\/image-1.png 1372w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center\"><em>TiDB architecture<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Migrating from MySQL to TiDB&nbsp;<\/h3>\n\n\n\n<p>The first step in replacing a database is migrating your data to the new database. Because TiDB is MySQL compatible, you don\u2019t have to change code when you connect a Corteza CRM system to TiDB. We used TiDB\u2019s data import tool, <a href=\"https:\/\/github.com\/mydumper\/mydumper\">mydumper<\/a>, to migrate the data from MySQL to TiDB. Corteza works seamlessly after the data is copied from MySQL to TiDB.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Why is MySQL slow?<\/h3>\n\n\n\n<p>Since detailed business data is stored in the <code>compose_record_value<\/code> table in key-value format in Corteza, a common application SQL pattern is multiple JOINs on the <code>compose_record_value<\/code> table. As shown in the sample SQL statements below, the analytical query contains intensive filtering, JOINs, and aggregations. Based on the data model, there are six JOINs from <code>compose_record<\/code> to <code>compose_record_value<\/code> in the application query; the <code>compose_record_value<\/code> table is accessed six times and is filtered by the &#8220;.name&#8221; column on every access. As the data sets in the<code> compose_record<\/code> and c<code>ompose_record_value<\/code> tables grow, query performance downgrades because the number of index lookups on <code>compose_record_value<\/code> becomes larger.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n\u2026\nFROM\n  compose_record AS crd\n  LEFT JOIN compose_record_value AS rv_BudgetedCost ON (\n    rv_BudgetedCost.record_id = crd.id\n    AND rv_BudgetedCost.name = 'BudgetedCost'\n    AND rv_BudgetedCost.deleted_at IS NULL\n  )\n  LEFT JOIN compose_record_value AS rv_ActualCost ON (\n    rv_ActualCost.record_id = crd.id\n    AND rv_ActualCost.name = 'ActualCost'\n    AND rv_ActualCost.deleted_at IS NULL\n  )\n  LEFT JOIN compose_record_value \u2026\nWHERE\n\u2026\nGROUP BY\n  dimension_0\nORDER BY\n  dimension_0<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Tuning with HTAP of TiDB<\/h3>\n\n\n\n<p>The traditional index strategy and nested loop JOIN does not scale for the execution plan pattern of Corteza CRM. This brings us to the HTAP capabilities of TiDB. Besides serving as the columnar storage for OLAP workloads, TiFlash supports the Massively Parallel Processing (MPP) mode to execute queries. MPP introduces cross-node data exchange (data shuffle process) into the computation. TiDB uses the optimizer\u2019s cost estimate to automatically determine whether to select the MPP mode. In addition, for complex queries like this, we could leverage partition pruning optimization to eliminate the amount of data that needs to be accessed and potentially significantly improve query execution times.<\/p>\n\n\n\n<p>We optimized the performance of Corteza CRM on TiDB as follows:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Enable HTAP to leverage the advantages of TiFlash MPP engine, such as parallel hash join and modern columnar data scan.<\/li>\n\n\n\n<li>Range partition the compose_record table by the &#8220;created_at&#8221; column.<\/li>\n\n\n\n<li>List partition the compose_record_value table by the &#8220;name&#8221; column.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">By enabling HTAP features:<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The optimizer was able to push down all execution processes to TiFflash, including the fast columnar data scan, hash join, and window function processing.<\/li>\n\n\n\n<li>By optimizing the schema by the range and list partition, the scan method changed from TableFullScan to PartitionTableScan. This is much more efficient for the application to access the compose_record_value table.<\/li>\n<\/ul>\n\n\n\n<p>After tuning with HTAP, the latency of the example query above reduced from 730.8 ms to 88.2 ms. The performance is <strong>8x faster!<\/strong>.<\/p>\n\n\n\n<p class=\"has-text-align-center\">&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"605\" src=\"https:\/\/www.pingcap.com\/core\/uploads\/2022\/08\/SQL-tuning-results-1-1024x605.png\" alt=\"\" class=\"wp-image-8070\" title=\"Chart\" srcset=\"https:\/\/static.pingcap.com\/files\/2022\/08\/SQL-tuning-results-1-1024x605.png 1024w, https:\/\/static.pingcap.com\/files\/2022\/08\/SQL-tuning-results-1-300x177.png 300w, https:\/\/static.pingcap.com\/files\/2022\/08\/SQL-tuning-results-1-768x454.png 768w, https:\/\/static.pingcap.com\/files\/2022\/08\/SQL-tuning-results-1.png 1182w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"has-text-align-center\"> <em>SQL tuning results (lower is better)<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Can_we_improve_performance_even_more\"><\/span>Can we improve performance even more?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>In our testing, we improved the performance of Corteza CRM from 30 seconds to 6 seconds with just a few tuning steps. As good as that is, we think we can do even better. If we can improve the business logic of our database schema, we can leverage the HTAP capabilities of TiDB. Such a design may include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Creating indexes on columns with good filtering for small tables. This allows the TiDB optimizer to choose a better \u201chybrid\u201d plan that leverages both index scan and columnar scan in one query at the same time.<\/li>\n\n\n\n<li>Better partitioning of the schema so more queries can benefit from partition pruning. This will result in less data processing and shorter latency.<\/li>\n<\/ul>\n\n\n\n<p>Besides the performance benefits, the HTAP capabilities of TiDB also ensure the data \u201cfreshness.\u201d Applications can access newly-inserted data from both row and columnar storage without introducing other components. This greatly simplifies the architecture of the SaaS platform and reduces time-to-market and maintenance costs.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Conclusion\"><\/span>Conclusion<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>SaaS platforms backed by traditional MySQL databases are increasingly faced with performance bottlenecks brought on by ever larger datasets and more complex queries. &nbsp; Compared with traditional database solutions, TiDB provides a solid one-stop solution to keep up with users&#8217; fast-growing and complex business workloads. By leveraging the MySQL compatibility and real-time HTAP capabilities of TiDB, CRM platforms like Corteza can easily tackle the performance bottleneck, and you don\u2019t have to change any code.&nbsp;&nbsp;<\/p>\n\n\n\n<p>If you are interested in TiDB, you\u2019re welcome to join our <a href=\"https:\/\/slack.tidb.io\/invite?team=tidb-community&amp;channel=everyone&amp;ref=pingcap-blog\">Slack community<\/a> and TiDB Internals to share your thoughts with us. You can also follow us on <a href=\"https:\/\/twitter.com\/PingCAP\">Twitter<\/a>, <a href=\"https:\/\/www.linkedin.com\/company\/pingcap\/\">LinkedIn<\/a>, \uadf8\ub9ac\uace0 <a href=\"https:\/\/github.com\/pingcap\">GitHub<\/a> for the latest information.&nbsp;<\/p>\n\n\n\n<p><strong>Read more about HTAP and TiDB:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.pingcap.com\/ko\/blog\/the-beauty-of-htap-tidb-and-alloydb-as-examples\/\">The Beauty of HTAP: TiDB and AlloyDB as Examples<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.pingcap.com\/ko\/blog\/the-long-expedition-toward-making-a-real-time-htap-database\/\">The Long Expedition toward Making a Real-Time HTAP Database<\/a><\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>In this article, we compare the performance of TiDB and MySQL on one of the most popular low-code SaaS platforms, Corteza CRM. We also demonstrate how TiDB leverages its HTAP capabilities to the SaaS platform without any code changes and speeds up development of new applications.<\/p>","protected":false},"author":193,"featured_media":8041,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ub_ctt_via":"","footnotes":""},"categories":[6],"tags":[163,10,9,111],"class_list":["post-8028","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-engineering","tag-app-developer","tag-htap","tag-scalability","tag-tidb"],"acf":[],"featured_image_src":"https:\/\/static.pingcap.com\/files\/2022\/08\/corteza-tuning-scaled.jpg","author_info":{"display_name":"Huansheng Chen","author_link":"https:\/\/www.pingcap.com\/ko\/blog\/author\/huansheng\/"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Speeding up a SaaS Platform by 5x in a Day without Code Changing<\/title>\n<meta name=\"description\" content=\"In this article, we compare the performance of TiDB and MySQL on one of the most popular low-code SaaS platforms, Corteza CRM.\" \/>\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\/speeding-up-a-saas-platform-by-5x-in-a-day-without-changing-the-code\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Speeding up a SaaS Platform by 5x in a Day without Code Changing\" \/>\n<meta property=\"og:description\" content=\"In this article, we compare the performance of TiDB and MySQL on one of the most popular low-code SaaS platforms, Corteza CRM.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.pingcap.com\/ko\/blog\/speeding-up-a-saas-platform-by-5x-in-a-day-without-changing-the-code\/\" \/>\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=\"2022-08-02T09:10:11+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-12-20T12:04:51+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/static.pingcap.com\/files\/2022\/08\/corteza-tuning-social-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1340\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Huansheng Chen\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/static.pingcap.com\/files\/2022\/08\/corteza-tuning-social-scaled.jpg\" \/>\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=\"Huansheng Chen\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/speeding-up-a-saas-platform-by-5x-in-a-day-without-changing-the-code\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/speeding-up-a-saas-platform-by-5x-in-a-day-without-changing-the-code\/\"},\"author\":{\"name\":\"Huansheng Chen\",\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/person\/1b81101f3ff41d5ff46a2d34c13584c0\"},\"headline\":\"Speeding up a SaaS Platform by 5x in a Day without Changing the Code\",\"datePublished\":\"2022-08-02T09:10:11+00:00\",\"dateModified\":\"2024-12-20T12:04:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/speeding-up-a-saas-platform-by-5x-in-a-day-without-changing-the-code\/\"},\"wordCount\":1123,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.pingcap.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/speeding-up-a-saas-platform-by-5x-in-a-day-without-changing-the-code\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/static.pingcap.com\/files\/2022\/08\/corteza-tuning-scaled.jpg\",\"keywords\":[\"App Developer\",\"HTAP\",\"Scalability\",\"TiDB\"],\"articleSection\":[\"Engineering\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.pingcap.com\/blog\/speeding-up-a-saas-platform-by-5x-in-a-day-without-changing-the-code\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/speeding-up-a-saas-platform-by-5x-in-a-day-without-changing-the-code\/\",\"url\":\"https:\/\/www.pingcap.com\/blog\/speeding-up-a-saas-platform-by-5x-in-a-day-without-changing-the-code\/\",\"name\":\"Speeding up a SaaS Platform by 5x in a Day without Code Changing\",\"isPartOf\":{\"@id\":\"https:\/\/www.pingcap.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/speeding-up-a-saas-platform-by-5x-in-a-day-without-changing-the-code\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/speeding-up-a-saas-platform-by-5x-in-a-day-without-changing-the-code\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/static.pingcap.com\/files\/2022\/08\/corteza-tuning-scaled.jpg\",\"datePublished\":\"2022-08-02T09:10:11+00:00\",\"dateModified\":\"2024-12-20T12:04:51+00:00\",\"description\":\"In this article, we compare the performance of TiDB and MySQL on one of the most popular low-code SaaS platforms, Corteza CRM.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/speeding-up-a-saas-platform-by-5x-in-a-day-without-changing-the-code\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.pingcap.com\/blog\/speeding-up-a-saas-platform-by-5x-in-a-day-without-changing-the-code\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/speeding-up-a-saas-platform-by-5x-in-a-day-without-changing-the-code\/#primaryimage\",\"url\":\"https:\/\/static.pingcap.com\/files\/2022\/08\/corteza-tuning-scaled.jpg\",\"contentUrl\":\"https:\/\/static.pingcap.com\/files\/2022\/08\/corteza-tuning-scaled.jpg\",\"width\":2560,\"height\":853},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/speeding-up-a-saas-platform-by-5x-in-a-day-without-changing-the-code\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.pingcap.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Speeding up a SaaS Platform by 5x in a Day without Changing the Code\"}]},{\"@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\/1b81101f3ff41d5ff46a2d34c13584c0\",\"name\":\"Huansheng Chen\",\"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\":\"Huansheng Chen\"},\"url\":\"https:\/\/www.pingcap.com\/ko\/blog\/author\/huansheng\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Speeding up a SaaS Platform by 5x in a Day without Code Changing","description":"In this article, we compare the performance of TiDB and MySQL on one of the most popular low-code SaaS platforms, Corteza CRM.","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\/speeding-up-a-saas-platform-by-5x-in-a-day-without-changing-the-code\/","og_locale":"ko_KR","og_type":"article","og_title":"Speeding up a SaaS Platform by 5x in a Day without Code Changing","og_description":"In this article, we compare the performance of TiDB and MySQL on one of the most popular low-code SaaS platforms, Corteza CRM.","og_url":"https:\/\/www.pingcap.com\/ko\/blog\/speeding-up-a-saas-platform-by-5x-in-a-day-without-changing-the-code\/","og_site_name":"TiDB","article_publisher":"https:\/\/facebook.com\/pingcap2015","article_published_time":"2022-08-02T09:10:11+00:00","article_modified_time":"2024-12-20T12:04:51+00:00","og_image":[{"width":2560,"height":1340,"url":"https:\/\/static.pingcap.com\/files\/2022\/08\/corteza-tuning-social-scaled.jpg","type":"image\/jpeg"}],"author":"Huansheng Chen","twitter_card":"summary_large_image","twitter_image":"https:\/\/static.pingcap.com\/files\/2022\/08\/corteza-tuning-social-scaled.jpg","twitter_creator":"@PingCAP","twitter_site":"@PingCAP","twitter_misc":{"Written by":"Huansheng Chen","Est. reading time":"6\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.pingcap.com\/blog\/speeding-up-a-saas-platform-by-5x-in-a-day-without-changing-the-code\/#article","isPartOf":{"@id":"https:\/\/www.pingcap.com\/blog\/speeding-up-a-saas-platform-by-5x-in-a-day-without-changing-the-code\/"},"author":{"name":"Huansheng Chen","@id":"https:\/\/www.pingcap.com\/#\/schema\/person\/1b81101f3ff41d5ff46a2d34c13584c0"},"headline":"Speeding up a SaaS Platform by 5x in a Day without Changing the Code","datePublished":"2022-08-02T09:10:11+00:00","dateModified":"2024-12-20T12:04:51+00:00","mainEntityOfPage":{"@id":"https:\/\/www.pingcap.com\/blog\/speeding-up-a-saas-platform-by-5x-in-a-day-without-changing-the-code\/"},"wordCount":1123,"commentCount":0,"publisher":{"@id":"https:\/\/www.pingcap.com\/#organization"},"image":{"@id":"https:\/\/www.pingcap.com\/blog\/speeding-up-a-saas-platform-by-5x-in-a-day-without-changing-the-code\/#primaryimage"},"thumbnailUrl":"https:\/\/static.pingcap.com\/files\/2022\/08\/corteza-tuning-scaled.jpg","keywords":["App Developer","HTAP","Scalability","TiDB"],"articleSection":["Engineering"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.pingcap.com\/blog\/speeding-up-a-saas-platform-by-5x-in-a-day-without-changing-the-code\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.pingcap.com\/blog\/speeding-up-a-saas-platform-by-5x-in-a-day-without-changing-the-code\/","url":"https:\/\/www.pingcap.com\/blog\/speeding-up-a-saas-platform-by-5x-in-a-day-without-changing-the-code\/","name":"Speeding up a SaaS Platform by 5x in a Day without Code Changing","isPartOf":{"@id":"https:\/\/www.pingcap.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.pingcap.com\/blog\/speeding-up-a-saas-platform-by-5x-in-a-day-without-changing-the-code\/#primaryimage"},"image":{"@id":"https:\/\/www.pingcap.com\/blog\/speeding-up-a-saas-platform-by-5x-in-a-day-without-changing-the-code\/#primaryimage"},"thumbnailUrl":"https:\/\/static.pingcap.com\/files\/2022\/08\/corteza-tuning-scaled.jpg","datePublished":"2022-08-02T09:10:11+00:00","dateModified":"2024-12-20T12:04:51+00:00","description":"In this article, we compare the performance of TiDB and MySQL on one of the most popular low-code SaaS platforms, Corteza CRM.","breadcrumb":{"@id":"https:\/\/www.pingcap.com\/blog\/speeding-up-a-saas-platform-by-5x-in-a-day-without-changing-the-code\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.pingcap.com\/blog\/speeding-up-a-saas-platform-by-5x-in-a-day-without-changing-the-code\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.pingcap.com\/blog\/speeding-up-a-saas-platform-by-5x-in-a-day-without-changing-the-code\/#primaryimage","url":"https:\/\/static.pingcap.com\/files\/2022\/08\/corteza-tuning-scaled.jpg","contentUrl":"https:\/\/static.pingcap.com\/files\/2022\/08\/corteza-tuning-scaled.jpg","width":2560,"height":853},{"@type":"BreadcrumbList","@id":"https:\/\/www.pingcap.com\/blog\/speeding-up-a-saas-platform-by-5x-in-a-day-without-changing-the-code\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.pingcap.com\/"},{"@type":"ListItem","position":2,"name":"Speeding up a SaaS Platform by 5x in a Day without Changing the Code"}]},{"@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\/1b81101f3ff41d5ff46a2d34c13584c0","name":"Huansheng Chen","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":"Huansheng Chen"},"url":"https:\/\/www.pingcap.com\/ko\/blog\/author\/huansheng\/"}]}},"grav_blocks":false,"card_markup":"<a class=\"card-resource bg-white\" href=\"https:\/\/www.pingcap.com\/ko\/blog\/speeding-up-a-saas-platform-by-5x-in-a-day-without-changing-the-code\/\"><div class=\"card-resource__image-container\"><img class=\"card-resource__image\" alt=\"corteza-tuning\" src=\"https:\/\/static.pingcap.com\/files\/2022\/08\/corteza-tuning-scaled.jpg\" loading=\"lazy\" width=2560 height=853 \/><\/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\">Speeding up a SaaS Platform by 5x in a Day without Changing the Code<\/h5><\/div><\/a>","_links":{"self":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/posts\/8028","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\/193"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/comments?post=8028"}],"version-history":[{"count":10,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/posts\/8028\/revisions"}],"predecessor-version":[{"id":24455,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/posts\/8028\/revisions\/24455"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/media\/8041"}],"wp:attachment":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/media?parent=8028"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/categories?post=8028"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/tags?post=8028"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}