相关文章推荐
风度翩翩的煎鸡蛋
·
C++使用ssl发送https请求_c++ ...
·
2 年前
·
博学的鸵鸟
·
C++ ...
·
2 年前
·
时尚的蘑菇
·
Swift 新并发框架之 ...
·
2 年前
·
Code
›
系统变量 | PingCAP 文档中心
tidb
作用域
系统变量
布尔型
https://docs.pingcap.com/zh/tidb/v8.1/system-variables/
聪明的足球
1 年前
</noscript><noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-TPX49SBK" height="0" width="0" style="display: none; visibility: hidden" aria-hidden="true"/></noscript><div id="___gatsby"><div style="outline:none" tabindex="-1" id="gatsby-focus-wrapper"><header class="MuiPaper-root MuiPaper-elevation MuiPaper-elevation4 MuiAppBar-root MuiAppBar-colorPrimary MuiAppBar-positionFixed doc-site-header mui-fixed css-r4hqpc"><div class="MuiToolbar-root MuiToolbar-gutters MuiToolbar-regular css-11fgfqk"><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-iuftj9" tabindex="0" type="button" aria-label="menu"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="MenuIcon"><path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"/></svg></button><div class="MuiBox-root css-13tqxrv"><a style="text-decoration:none" href="/zh"><svg width="152" height="36" viewbox="0 0 152 36" fill="none"><g clip-path="url(#clip0_789_1365)"><path d="M0 26.9605V9.04959C0 9.01208 0.0187549 8.98395 0.0468872 8.96519L15.5478 0.00973267C15.5759 -0.00902222 15.6134 -0.00902222 15.6416 0.00973267L31.1425 8.95581C31.1706 8.97457 31.1894 9.0027 31.1894 9.04021V26.9511C31.1894 26.9886 31.1706 27.0168 31.1425 27.0355L15.6416 35.991C15.6134 36.0097 15.5759 36.0097 15.5478 35.991L0.0468872 27.0355C0.0187549 27.0168 0 26.9886 0 26.9605Z" fill="#DC150B"/><path d="M10.3808 15.0336C10.3714 15.0242 10.3527 15.0149 10.3433 15.0242L5.25136 17.9688H5.2326C5.21384 17.9688 5.20447 17.9594 5.20447 17.9406V12.0047C5.20447 11.9953 5.21384 11.986 5.22322 11.9766L5.22322 11.9766L15.5572 6.01253C15.5665 6.00315 15.5759 6.00315 15.5853 6.01253L20.7241 8.9758L20.7335 8.98518C20.7429 8.99455 20.7335 9.01331 20.7241 9.02268L15.5759 11.9953C15.5665 12.0047 15.5572 12.0141 15.5572 12.0235V29.9625V29.9813C15.5478 29.9906 15.529 30 15.5197 29.9906L10.3902 27.0368C10.3902 27.0274 10.3808 27.018 10.3808 27.0086V15.0524V15.0336Z" fill="white"/><path d="M20.7992 26.9992C20.7804 26.9992 20.7616 26.9805 20.7616 26.9617V15.0336C20.7616 15.0149 20.771 15.0055 20.7804 14.9961L25.9286 12.0235L25.9286 12.0235C25.938 12.0141 25.938 12.0141 25.9474 12.0141C25.9661 12.0141 25.9849 12.0328 25.9849 12.0516V23.9797C25.9849 23.9985 25.9755 24.0078 25.9661 24.0172L20.8179 26.9899C20.8085 26.9992 20.8085 26.9992 20.7992 26.9992Z" fill="white"/></g><path d="M37.1894 12.4971H42.0242V26.9998H45.4248V12.4971H50.2596V9.37683H37.1894V12.4971Z" fill="black"/><path d="M53.6372 9C53.1197 9 52.6672 9.18709 52.2887 9.55826C51.9102 9.92943 51.7151 10.3941 51.7151 10.9373C51.7151 11.4503 51.9073 11.8999 52.2858 12.2802C52.6643 12.6574 53.1167 12.8505 53.6342 12.8505C54.1517 12.8505 54.5775 12.6574 54.9501 12.2802C55.3227 11.903 55.509 11.4503 55.509 10.9373C55.509 10.3941 55.3257 9.93245 54.9619 9.56128C54.5982 9.19011 54.1517 9.00302 53.6372 9.00302V9Z" fill="black"/><path d="M55.2895 14.3592H51.9864V27H55.2895V14.3592Z" fill="black"/><path d="M64.3322 9.37683H58.2613V26.9998H64.3322C66.9492 26.9998 69.028 26.2031 70.5124 24.6309C71.9939 23.0587 72.748 20.8921 72.748 18.1883C72.748 15.4845 71.9969 13.2967 70.5124 11.7336C69.028 10.1705 66.9492 9.37683 64.3322 9.37683ZM61.6619 12.4971H64.2109C65.9024 12.4971 67.1798 12.998 68.0137 13.9847C68.8506 14.9775 69.2734 16.3566 69.2734 18.0857C69.2734 19.8148 68.8476 21.2512 68.0108 22.3013C67.1769 23.3454 65.8994 23.8765 64.208 23.8765H61.659V12.494L61.6619 12.4971Z" fill="black"/><path d="M86.5964 19.1388C86.0346 18.4418 85.3663 17.9409 84.6152 17.6512V17.621C86.1883 16.8424 86.9838 15.566 86.9838 13.8278C86.9838 12.479 86.5461 11.3866 85.6856 10.5839C84.8251 9.78421 83.5566 9.37683 81.9154 9.37683H74.7948V26.9998H81.8681C83.6068 26.9998 84.9907 26.5652 85.9784 25.7082C86.972 24.8482 87.4747 23.6261 87.4747 22.075C87.4747 20.8468 87.179 19.8601 86.5994 19.1388H86.5964ZM78.1185 16.5256V12.1953H81.4718C82.1105 12.1953 82.628 12.3884 83.0095 12.7686C83.388 13.1489 83.5802 13.68 83.5802 14.3499C83.5802 15.0198 83.3909 15.5569 83.0184 15.9432C82.6458 16.3294 82.1105 16.5256 81.4216 16.5256H78.1156H78.1185ZM83.9972 21.8245C83.9972 22.5276 83.7872 23.101 83.3762 23.5295C82.9651 23.958 82.356 24.1753 81.5724 24.1753H78.1215V19.3471H81.5724C82.3235 19.3471 82.9237 19.5794 83.3525 20.0411C83.7813 20.5028 84.0001 21.1033 84.0001 21.8215L83.9972 21.8245Z" fill="black"/><path d="M97.3306 26.5V9.7H102.299C107.771 9.7 111.083 12.868 111.083 18.1C111.083 23.332 107.771 26.5 102.299 26.5H97.3306ZM102.299 24.364C106.331 24.364 108.659 22.06 108.659 18.1C108.659 14.14 106.331 11.836 102.299 11.836H99.7066V24.364H102.299ZM118.968 26.764C115.464 26.764 112.824 24.052 112.824 20.5C112.824 16.948 115.464 14.236 118.968 14.236C122.472 14.236 125.112 16.948 125.112 20.5C125.112 24.052 122.472 26.764 118.968 26.764ZM118.968 24.628C121.152 24.628 122.736 22.876 122.736 20.5C122.736 18.124 121.152 16.372 118.968 16.372C116.784 16.372 115.2 18.124 115.2 20.5C115.2 22.876 116.784 24.628 118.968 24.628ZM132.772 26.764C129.22 26.764 126.7 24.124 126.7 20.5C126.7 16.876 129.22 14.236 132.772 14.236C135.652 14.236 137.884 15.964 138.244 18.532H135.844C135.532 17.236 134.332 16.372 132.772 16.372C130.588 16.372 129.076 18.076 129.076 20.5C129.076 22.9 130.588 24.628 132.772 24.628C134.332 24.628 135.532 23.764 135.844 22.468H138.244C137.884 25.036 135.652 26.764 132.772 26.764ZM144.557 26.764C141.677 26.764 139.781 25.108 139.709 22.732H142.085C142.229 23.956 142.973 24.724 144.581 24.724C145.733 24.724 146.765 24.34 146.765 23.332C146.765 22.588 146.333 22.06 145.157 21.7L143.333 21.172C141.173 20.548 140.093 19.3 140.093 17.716C140.093 15.604 141.965 14.236 144.413 14.236C146.885 14.236 148.685 15.7 148.829 17.74H146.453C146.285 16.828 145.445 16.204 144.341 16.204C143.261 16.204 142.469 16.804 142.469 17.716C142.469 18.412 142.925 18.868 144.245 19.228L146.069 19.732C148.109 20.308 149.141 21.556 149.141 23.188C149.141 25.396 147.197 26.764 144.557 26.764Z" fill="black"/><defs><clippath id="clip0_789_1365"><rect width="31.1894" height="36" fill="white"/></clippath></defs></svg></a></div><div class="css-2iqpys"><div class="MuiBox-root css-irbys9"><a style="text-decoration:none" hreflang="zh" href="/zh/tidb/stable"><div class="MuiTypography-root MuiTypography-body1 css-jhf72c">TiDB</div></a></div><div class="MuiBox-root css-kiou0g"><a class="MuiTypography-root MuiTypography-body1 css-z7v9yr" target="_blank" href="https://asktug.com/" style="text-decoration:none"><div class="MuiTypography-root MuiTypography-body1 css-jhf72c">社区</div></a></div><div class="MuiBox-root css-kiou0g"><a class="MuiTypography-root MuiTypography-body1 css-z7v9yr" target="_blank" href="https://cn.pingcap.com/contact/" style="text-decoration:none"><div class="MuiTypography-root MuiTypography-body1 css-jhf72c">联系我们</div></a></div><div class="MuiBox-root css-kiou0g"><a class="MuiTypography-root MuiTypography-body1 css-z7v9yr" target="_blank" href="https://cn.pingcap.com/product/#SelectProduct" style="text-decoration:none"><div class="MuiTypography-root MuiTypography-body1 css-jhf72c"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="DownloadIcon"><path d="M5 20h14v-2H5v2zM19 9h-4V3H9v6H5l7 7 7-7z"/></svg></div></a></div></div><div class="MuiBox-root css-1vn3uc0"><button class="MuiButtonBase-root MuiButton-root MuiButton-text MuiButton-textInherit MuiButton-sizeMedium MuiButton-textSizeMedium MuiButton-colorInherit MuiButton-disableElevation css-tjg32r" tabindex="0" type="button" id="header-nav-items" aria-haspopup="true"><span class="MuiButton-startIcon MuiButton-iconSizeMedium css-1l6c7y9"><svg width="152" height="36" viewbox="0 0 152 36" fill="none"><g clip-path="url(#clip0_789_1365)"><path d="M0 26.9605V9.04959C0 9.01208 0.0187549 8.98395 0.0468872 8.96519L15.5478 0.00973267C15.5759 -0.00902222 15.6134 -0.00902222 15.6416 0.00973267L31.1425 8.95581C31.1706 8.97457 31.1894 9.0027 31.1894 9.04021V26.9511C31.1894 26.9886 31.1706 27.0168 31.1425 27.0355L15.6416 35.991C15.6134 36.0097 15.5759 36.0097 15.5478 35.991L0.0468872 27.0355C0.0187549 27.0168 0 26.9886 0 26.9605Z" fill="#DC150B"/><path d="M10.3808 15.0336C10.3714 15.0242 10.3527 15.0149 10.3433 15.0242L5.25136 17.9688H5.2326C5.21384 17.9688 5.20447 17.9594 5.20447 17.9406V12.0047C5.20447 11.9953 5.21384 11.986 5.22322 11.9766L5.22322 11.9766L15.5572 6.01253C15.5665 6.00315 15.5759 6.00315 15.5853 6.01253L20.7241 8.9758L20.7335 8.98518C20.7429 8.99455 20.7335 9.01331 20.7241 9.02268L15.5759 11.9953C15.5665 12.0047 15.5572 12.0141 15.5572 12.0235V29.9625V29.9813C15.5478 29.9906 15.529 30 15.5197 29.9906L10.3902 27.0368C10.3902 27.0274 10.3808 27.018 10.3808 27.0086V15.0524V15.0336Z" fill="white"/><path d="M20.7992 26.9992C20.7804 26.9992 20.7616 26.9805 20.7616 26.9617V15.0336C20.7616 15.0149 20.771 15.0055 20.7804 14.9961L25.9286 12.0235L25.9286 12.0235C25.938 12.0141 25.938 12.0141 25.9474 12.0141C25.9661 12.0141 25.9849 12.0328 25.9849 12.0516V23.9797C25.9849 23.9985 25.9755 24.0078 25.9661 24.0172L20.8179 26.9899C20.8085 26.9992 20.8085 26.9992 20.7992 26.9992Z" fill="white"/></g><path d="M37.1894 12.4971H42.0242V26.9998H45.4248V12.4971H50.2596V9.37683H37.1894V12.4971Z" fill="black"/><path d="M53.6372 9C53.1197 9 52.6672 9.18709 52.2887 9.55826C51.9102 9.92943 51.7151 10.3941 51.7151 10.9373C51.7151 11.4503 51.9073 11.8999 52.2858 12.2802C52.6643 12.6574 53.1167 12.8505 53.6342 12.8505C54.1517 12.8505 54.5775 12.6574 54.9501 12.2802C55.3227 11.903 55.509 11.4503 55.509 10.9373C55.509 10.3941 55.3257 9.93245 54.9619 9.56128C54.5982 9.19011 54.1517 9.00302 53.6372 9.00302V9Z" fill="black"/><path d="M55.2895 14.3592H51.9864V27H55.2895V14.3592Z" fill="black"/><path d="M64.3322 9.37683H58.2613V26.9998H64.3322C66.9492 26.9998 69.028 26.2031 70.5124 24.6309C71.9939 23.0587 72.748 20.8921 72.748 18.1883C72.748 15.4845 71.9969 13.2967 70.5124 11.7336C69.028 10.1705 66.9492 9.37683 64.3322 9.37683ZM61.6619 12.4971H64.2109C65.9024 12.4971 67.1798 12.998 68.0137 13.9847C68.8506 14.9775 69.2734 16.3566 69.2734 18.0857C69.2734 19.8148 68.8476 21.2512 68.0108 22.3013C67.1769 23.3454 65.8994 23.8765 64.208 23.8765H61.659V12.494L61.6619 12.4971Z" fill="black"/><path d="M86.5964 19.1388C86.0346 18.4418 85.3663 17.9409 84.6152 17.6512V17.621C86.1883 16.8424 86.9838 15.566 86.9838 13.8278C86.9838 12.479 86.5461 11.3866 85.6856 10.5839C84.8251 9.78421 83.5566 9.37683 81.9154 9.37683H74.7948V26.9998H81.8681C83.6068 26.9998 84.9907 26.5652 85.9784 25.7082C86.972 24.8482 87.4747 23.6261 87.4747 22.075C87.4747 20.8468 87.179 19.8601 86.5994 19.1388H86.5964ZM78.1185 16.5256V12.1953H81.4718C82.1105 12.1953 82.628 12.3884 83.0095 12.7686C83.388 13.1489 83.5802 13.68 83.5802 14.3499C83.5802 15.0198 83.3909 15.5569 83.0184 15.9432C82.6458 16.3294 82.1105 16.5256 81.4216 16.5256H78.1156H78.1185ZM83.9972 21.8245C83.9972 22.5276 83.7872 23.101 83.3762 23.5295C82.9651 23.958 82.356 24.1753 81.5724 24.1753H78.1215V19.3471H81.5724C82.3235 19.3471 82.9237 19.5794 83.3525 20.0411C83.7813 20.5028 84.0001 21.1033 84.0001 21.8215L83.9972 21.8245Z" fill="black"/><path d="M97.3306 26.5V9.7H102.299C107.771 9.7 111.083 12.868 111.083 18.1C111.083 23.332 107.771 26.5 102.299 26.5H97.3306ZM102.299 24.364C106.331 24.364 108.659 22.06 108.659 18.1C108.659 14.14 106.331 11.836 102.299 11.836H99.7066V24.364H102.299ZM118.968 26.764C115.464 26.764 112.824 24.052 112.824 20.5C112.824 16.948 115.464 14.236 118.968 14.236C122.472 14.236 125.112 16.948 125.112 20.5C125.112 24.052 122.472 26.764 118.968 26.764ZM118.968 24.628C121.152 24.628 122.736 22.876 122.736 20.5C122.736 18.124 121.152 16.372 118.968 16.372C116.784 16.372 115.2 18.124 115.2 20.5C115.2 22.876 116.784 24.628 118.968 24.628ZM132.772 26.764C129.22 26.764 126.7 24.124 126.7 20.5C126.7 16.876 129.22 14.236 132.772 14.236C135.652 14.236 137.884 15.964 138.244 18.532H135.844C135.532 17.236 134.332 16.372 132.772 16.372C130.588 16.372 129.076 18.076 129.076 20.5C129.076 22.9 130.588 24.628 132.772 24.628C134.332 24.628 135.532 23.764 135.844 22.468H138.244C137.884 25.036 135.652 26.764 132.772 26.764ZM144.557 26.764C141.677 26.764 139.781 25.108 139.709 22.732H142.085C142.229 23.956 142.973 24.724 144.581 24.724C145.733 24.724 146.765 24.34 146.765 23.332C146.765 22.588 146.333 22.06 145.157 21.7L143.333 21.172C141.173 20.548 140.093 19.3 140.093 17.716C140.093 15.604 141.965 14.236 144.413 14.236C146.885 14.236 148.685 15.7 148.829 17.74H146.453C146.285 16.828 145.445 16.204 144.341 16.204C143.261 16.204 142.469 16.804 142.469 17.716C142.469 18.412 142.925 18.868 144.245 19.228L146.069 19.732C148.109 20.308 149.141 21.556 149.141 23.188C149.141 25.396 147.197 26.764 144.557 26.764Z" fill="black"/><defs><clippath id="clip0_789_1365"><rect width="31.1894" height="36" fill="white"/></clippath></defs></svg></span><span class="MuiButton-endIcon MuiButton-iconSizeMedium css-pt151d"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="KeyboardArrowDownIcon"><path d="M7.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"/></svg></span></button></div><div class="css-1w2hxsf"><div class="MuiBox-root css-19itmc6"><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-jwr93t" tabindex="0" type="button"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="TranslateIcon"><path d="m12.87 15.07-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7 1.62-4.33L19.12 17h-3.24z"/></svg></button><button class="MuiButtonBase-root MuiButton-root MuiButton-text MuiButton-textInherit MuiButton-sizeMedium MuiButton-textSizeMedium MuiButton-colorInherit MuiButton-disableElevation css-1r5wmim" tabindex="0" type="button" id="header-lang-switch" aria-haspopup="true"><span class="MuiButton-startIcon MuiButton-iconSizeMedium css-1l6c7y9"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-1msahp5" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="TranslateIcon"><path d="m12.87 15.07-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7 1.62-4.33L19.12 17h-3.24z"/></svg></span><span class="MuiButton-endIcon MuiButton-iconSizeMedium css-pt151d"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-1msahp5" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="KeyboardArrowDownIcon"><path d="M7.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"/></svg></span></button></div><div class="css-1iegyem"><div class="MuiBox-root css-0"><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-iuftj9" tabindex="0" type="button"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="SearchIcon"><path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/></svg></button><form class="MuiBox-root css-1dl8tgy" novalidate="" autocomplete="off"><div class="MuiFormControl-root MuiFormControl-fullWidth MuiTextField-root css-7omol5"><div class="MuiInputBase-root MuiOutlinedInput-root MuiInputBase-colorPrimary MuiInputBase-fullWidth MuiInputBase-formControl MuiInputBase-sizeSmall MuiInputBase-adornedStart css-10r6rap"><div class="MuiInputAdornment-root MuiInputAdornment-positionStart MuiInputAdornment-outlined MuiInputAdornment-sizeSmall css-1a6giau"><span class="notranslate"></span><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeSmall css-1k33q06" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="SearchIcon"><path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/></svg></div><input type="search" aria-invalid="false" id="doc-search" placeholder="搜索文档" value="" class="MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputTypeSearch MuiInputBase-inputSizeSmall MuiInputBase-inputAdornedStart css-1a7iucg"/><fieldset aria-hidden="true" class="MuiOutlinedInput-notchedOutline css-igs3ac"><legend class="css-hdw1oc"><span class="notranslate"></span></legend></fieldset></div></div></form></div></div></div></div></header><div class="PingCAP-Doc MuiBox-root css-s1brf2"><div class="MuiBox-root css-hboir5"><aside class="MuiBox-root css-2tzg8"><div class="MuiBox-root css-ysaqso"><button class="MuiButtonBase-root MuiButton-root MuiButton-text MuiButton-textPrimary MuiButton-sizeMedium MuiButton-textSizeMedium MuiButton-disableElevation css-1q0sqyi" tabindex="0" type="button" id="version-select-button" aria-haspopup="true"><div class="MuiTypography-root MuiTypography-body1 css-hg1lfe">v8.1</div><span class="MuiButton-endIcon MuiButton-iconSizeMedium css-pt151d"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-1rrdqpg" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ChevronRightIcon"><path d="M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg></span></button><ul role="tree" id="left-nav-treeview" aria-multiselectable="false" class="MuiTreeView-root css-12mehxg" tabindex="0" aria-label="left navigation"><a class="MuiTypography-root MuiTypography-body1 css-z7v9yr" target="_blank" href="https://docs.pingcap.com/zh" style="text-decoration:none;width:100%;color:inherit"><li class="MuiTreeItem-root css-14t19hb" role="treeitem" id="left-nav-treeview-0-0" tabindex="-1" style="margin-top:0.1875rem;margin-bottom:0.1875rem"><div class="css-zfdk9c MuiTreeItem-content" style="width:inherit"><div class="MuiTreeItem-iconContainer"/><div class="MuiTreeItem-label"><div class="css-w8t2sr"><div class="MuiBox-root css-3o0h5k"/><div class="MuiBox-root css-8atqhb"><div class="MuiTypography-root MuiTypography-body1 css-1rc6ywa">文档中心</div></div></div></div></div></li></a><li class="MuiTreeItem-root css-14t19hb" role="treeitem" aria-expanded="false" id="left-nav-treeview-0-1" tabindex="-1" style="margin-top:0.1875rem;margin-bottom:0.1875rem"><div class="css-zfdk9c MuiTreeItem-content" style="width:inherit"><div class="MuiTreeItem-iconContainer"/><div class="MuiTreeItem-label"><div class="css-w8t2sr"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium MuiTreeItem-ChevronRightIcon css-hkir54" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ChevronRightIcon"><path d="M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg><div class="MuiBox-root css-8atqhb"><div class="MuiTypography-root MuiTypography-body1 css-1rc6ywa">关于 TiDB</div></div></div></div></div></li><li class="MuiTreeItem-root css-14t19hb" role="treeitem" aria-expanded="false" id="left-nav-treeview-0-2" tabindex="-1" style="margin-top:0.1875rem;margin-bottom:0.1875rem"><div class="css-zfdk9c MuiTreeItem-content" style="width:inherit"><div class="MuiTreeItem-iconContainer"/><div class="MuiTreeItem-label"><div class="css-w8t2sr"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium MuiTreeItem-ChevronRightIcon css-hkir54" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ChevronRightIcon"><path d="M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg><div class="MuiBox-root css-8atqhb"><div class="MuiTypography-root MuiTypography-body1 css-1rc6ywa">快速上手</div></div></div></div></div></li><li class="MuiTreeItem-root css-14t19hb" role="treeitem" aria-expanded="false" id="left-nav-treeview-0-3" tabindex="-1" style="margin-top:0.1875rem;margin-bottom:0.1875rem"><div class="css-zfdk9c MuiTreeItem-content" style="width:inherit"><div class="MuiTreeItem-iconContainer"/><div class="MuiTreeItem-label"><div class="css-w8t2sr"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium MuiTreeItem-ChevronRightIcon css-hkir54" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ChevronRightIcon"><path d="M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg><div class="MuiBox-root css-8atqhb"><div class="MuiTypography-root MuiTypography-body1 css-1rc6ywa">应用开发</div></div></div></div></div></li><li class="MuiTreeItem-root css-14t19hb" role="treeitem" aria-expanded="false" id="left-nav-treeview-0-4" tabindex="-1" style="margin-top:0.1875rem;margin-bottom:0.1875rem"><div class="css-zfdk9c MuiTreeItem-content" style="width:inherit"><div class="MuiTreeItem-iconContainer"/><div class="MuiTreeItem-label"><div class="css-w8t2sr"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium MuiTreeItem-ChevronRightIcon css-hkir54" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ChevronRightIcon"><path d="M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg><div class="MuiBox-root css-8atqhb"><div class="MuiTypography-root MuiTypography-body1 css-1rc6ywa">部署标准集群</div></div></div></div></div></li><li class="MuiTreeItem-root css-14t19hb" role="treeitem" aria-expanded="false" id="left-nav-treeview-0-5" tabindex="-1" style="margin-top:0.1875rem;margin-bottom:0.1875rem"><div class="css-zfdk9c MuiTreeItem-content" style="width:inherit"><div class="MuiTreeItem-iconContainer"/><div class="MuiTreeItem-label"><div class="css-w8t2sr"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium MuiTreeItem-ChevronRightIcon css-hkir54" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ChevronRightIcon"><path d="M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg><div class="MuiBox-root css-8atqhb"><div class="MuiTypography-root MuiTypography-body1 css-1rc6ywa">数据迁移</div></div></div></div></div></li><li class="MuiTreeItem-root css-14t19hb" role="treeitem" aria-expanded="false" id="left-nav-treeview-0-6" tabindex="-1" style="margin-top:0.1875rem;margin-bottom:0.1875rem"><div class="css-zfdk9c MuiTreeItem-content" style="width:inherit"><div class="MuiTreeItem-iconContainer"/><div class="MuiTreeItem-label"><div class="css-w8t2sr"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium MuiTreeItem-ChevronRightIcon css-hkir54" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ChevronRightIcon"><path d="M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg><div class="MuiBox-root css-8atqhb"><div class="MuiTypography-root MuiTypography-body1 css-1rc6ywa">数据集成</div></div></div></div></div></li><li class="MuiTreeItem-root css-14t19hb" role="treeitem" aria-expanded="false" id="left-nav-treeview-0-7" tabindex="-1" style="margin-top:0.1875rem;margin-bottom:0.1875rem"><div class="css-zfdk9c MuiTreeItem-content" style="width:inherit"><div class="MuiTreeItem-iconContainer"/><div class="MuiTreeItem-label"><div class="css-w8t2sr"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium MuiTreeItem-ChevronRightIcon css-hkir54" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ChevronRightIcon"><path d="M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg><div class="MuiBox-root css-8atqhb"><div class="MuiTypography-root MuiTypography-body1 css-1rc6ywa">运维操作</div></div></div></div></div></li><li class="MuiTreeItem-root css-14t19hb" role="treeitem" aria-expanded="false" id="left-nav-treeview-0-8" tabindex="-1" style="margin-top:0.1875rem;margin-bottom:0.1875rem"><div class="css-zfdk9c MuiTreeItem-content" style="width:inherit"><div class="MuiTreeItem-iconContainer"/><div class="MuiTreeItem-label"><div class="css-w8t2sr"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium MuiTreeItem-ChevronRightIcon css-hkir54" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ChevronRightIcon"><path d="M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg><div class="MuiBox-root css-8atqhb"><div class="MuiTypography-root MuiTypography-body1 css-1rc6ywa">监控与告警</div></div></div></div></div></li><li class="MuiTreeItem-root css-14t19hb" role="treeitem" aria-expanded="false" id="left-nav-treeview-0-9" tabindex="-1" style="margin-top:0.1875rem;margin-bottom:0.1875rem"><div class="css-zfdk9c MuiTreeItem-content" style="width:inherit"><div class="MuiTreeItem-iconContainer"/><div class="MuiTreeItem-label"><div class="css-w8t2sr"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium MuiTreeItem-ChevronRightIcon css-hkir54" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ChevronRightIcon"><path d="M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg><div class="MuiBox-root css-8atqhb"><div class="MuiTypography-root MuiTypography-body1 css-1rc6ywa">故障诊断</div></div></div></div></div></li><li class="MuiTreeItem-root css-14t19hb" role="treeitem" aria-expanded="false" id="left-nav-treeview-0-10" tabindex="-1" style="margin-top:0.1875rem;margin-bottom:0.1875rem"><div class="css-zfdk9c MuiTreeItem-content" style="width:inherit"><div class="MuiTreeItem-iconContainer"/><div class="MuiTreeItem-label"><div class="css-w8t2sr"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium MuiTreeItem-ChevronRightIcon css-hkir54" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ChevronRightIcon"><path d="M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg><div class="MuiBox-root css-8atqhb"><div class="MuiTypography-root MuiTypography-body1 css-1rc6ywa">性能调优</div></div></div></div></div></li><li class="MuiTreeItem-root css-14t19hb" role="treeitem" aria-expanded="false" id="left-nav-treeview-0-11" tabindex="-1" style="margin-top:0.1875rem;margin-bottom:0.1875rem"><div class="css-zfdk9c MuiTreeItem-content" style="width:inherit"><div class="MuiTreeItem-iconContainer"/><div class="MuiTreeItem-label"><div class="css-w8t2sr"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium MuiTreeItem-ChevronRightIcon css-hkir54" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ChevronRightIcon"><path d="M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg><div class="MuiBox-root css-8atqhb"><div class="MuiTypography-root MuiTypography-body1 css-1rc6ywa">教程</div></div></div></div></div></li><li class="MuiTreeItem-root css-14t19hb" role="treeitem" aria-expanded="false" id="left-nav-treeview-0-12" tabindex="-1" style="margin-top:0.1875rem;margin-bottom:0.1875rem"><div class="css-zfdk9c MuiTreeItem-content" style="width:inherit"><div class="MuiTreeItem-iconContainer"/><div class="MuiTreeItem-label"><div class="css-w8t2sr"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium MuiTreeItem-ChevronRightIcon css-hkir54" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ChevronRightIcon"><path d="M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg><div class="MuiBox-root css-8atqhb"><div class="MuiTypography-root MuiTypography-body1 css-1rc6ywa">TiDB 工具</div></div></div></div></div></li><li class="MuiTreeItem-root css-14t19hb" role="treeitem" aria-expanded="true" id="left-nav-treeview-0-13" tabindex="-1" style="margin-top:0.1875rem;margin-bottom:0.1875rem"><div class="css-zfdk9c MuiTreeItem-content Mui-expanded" style="width:inherit"><div class="MuiTreeItem-iconContainer"/><div class="MuiTreeItem-label"><div class="css-w8t2sr"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium MuiTreeItem-ChevronRightIcon css-13dmm4z" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ChevronRightIcon"><path d="M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg><div class="MuiBox-root css-8atqhb"><div class="MuiTypography-root MuiTypography-body1 css-1rc6ywa">参考指南</div></div></div></div></div><ul class="MuiCollapse-root MuiCollapse-vertical MuiTreeItem-group MuiCollapse-entered css-1xxsnna" style="min-height:0px" role="group"><div class="MuiCollapse-wrapper MuiCollapse-vertical css-hboir5"><div class="MuiCollapse-wrapperInner MuiCollapse-vertical css-8atqhb"><li class="MuiTreeItem-root css-14t19hb" role="treeitem" aria-expanded="false" id="left-nav-treeview-0-13-0" tabindex="-1" style="margin-top:0.1875rem;margin-bottom:0.1875rem"><div class="css-zfdk9c MuiTreeItem-content" style="width:inherit"><div class="MuiTreeItem-iconContainer"/><div class="MuiTreeItem-label"><div class="css-2jyri7"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium MuiTreeItem-ChevronRightIcon css-hkir54" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ChevronRightIcon"><path d="M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg><div class="MuiBox-root css-8atqhb"><div class="MuiTypography-root MuiTypography-body1 css-1rc6ywa">架构</div></div></div></div></div></li><li class="MuiTreeItem-root css-14t19hb" role="treeitem" aria-expanded="false" id="left-nav-treeview-0-13-1" tabindex="-1" style="margin-top:0.1875rem;margin-bottom:0.1875rem"><div class="css-zfdk9c MuiTreeItem-content" style="width:inherit"><div class="MuiTreeItem-iconContainer"/><div class="MuiTreeItem-label"><div class="css-2jyri7"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium MuiTreeItem-ChevronRightIcon css-hkir54" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ChevronRightIcon"><path d="M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg><div class="MuiBox-root css-8atqhb"><div class="MuiTypography-root MuiTypography-body1 css-1rc6ywa">存储引擎 TiKV</div></div></div></div></div></li><li class="MuiTreeItem-root css-14t19hb" role="treeitem" aria-expanded="false" id="left-nav-treeview-0-13-2" tabindex="-1" style="margin-top:0.1875rem;margin-bottom:0.1875rem"><div class="css-zfdk9c MuiTreeItem-content" style="width:inherit"><div class="MuiTreeItem-iconContainer"/><div class="MuiTreeItem-label"><div class="css-2jyri7"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium MuiTreeItem-ChevronRightIcon css-hkir54" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ChevronRightIcon"><path d="M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg><div class="MuiBox-root css-8atqhb"><div class="MuiTypography-root MuiTypography-body1 css-1rc6ywa">存储引擎 TiFlash</div></div></div></div></div></li><li class="MuiTreeItem-root css-14t19hb" role="treeitem" aria-expanded="false" id="left-nav-treeview-0-13-3" tabindex="-1" style="margin-top:0.1875rem;margin-bottom:0.1875rem"><div class="css-zfdk9c MuiTreeItem-content" style="width:inherit"><div class="MuiTreeItem-iconContainer"/><div class="MuiTreeItem-label"><div class="css-2jyri7"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium MuiTreeItem-ChevronRightIcon css-hkir54" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ChevronRightIcon"><path d="M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg><div class="MuiBox-root css-8atqhb"><div class="MuiTypography-root MuiTypography-body1 css-1rc6ywa">TiDB 分布式执行框架</div></div></div></div></div></li><a aria-current="page" style="text-decoration:none;width:100%;color:inherit" class="" href="/zh/tidb/stable/system-variables"><li class="MuiTreeItem-root css-14t19hb" role="treeitem" aria-selected="true" id="left-nav-treeview-0-13-4" tabindex="-1" style="margin-top:0.1875rem;margin-bottom:0.1875rem"><div class="css-zfdk9c MuiTreeItem-content Mui-expanded Mui-selected" style="width:inherit"><div class="MuiTreeItem-iconContainer"/><div class="MuiTreeItem-label"><div class="css-2jyri7"><div class="MuiBox-root css-3o0h5k"/><div class="MuiBox-root css-8atqhb"><div class="MuiTypography-root MuiTypography-body1 css-1rc6ywa">系统变量</div></div></div></div></div></li></a><a style="text-decoration:none;width:100%;color:inherit" href="/zh/tidb/stable/status-variables"><li class="MuiTreeItem-root css-14t19hb" role="treeitem" id="left-nav-treeview-0-13-5" tabindex="-1" style="margin-top:0.1875rem;margin-bottom:0.1875rem"><div class="css-zfdk9c MuiTreeItem-content" style="width:inherit"><div class="MuiTreeItem-iconContainer"/><div class="MuiTreeItem-label"><div class="css-2jyri7"><div class="MuiBox-root css-3o0h5k"/><div class="MuiBox-root css-8atqhb"><div class="MuiTypography-root MuiTypography-body1 css-1rc6ywa">服务器状态变量</div></div></div></div></div></li></a><li class="MuiTreeItem-root css-14t19hb" role="treeitem" aria-expanded="false" id="left-nav-treeview-0-13-6" tabindex="-1" style="margin-top:0.1875rem;margin-bottom:0.1875rem"><div class="css-zfdk9c MuiTreeItem-content" style="width:inherit"><div class="MuiTreeItem-iconContainer"/><div class="MuiTreeItem-label"><div class="css-2jyri7"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium MuiTreeItem-ChevronRightIcon css-hkir54" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ChevronRightIcon"><path d="M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg><div class="MuiBox-root css-8atqhb"><div class="MuiTypography-root MuiTypography-body1 css-1rc6ywa">配置文件参数</div></div></div></div></div></li><li class="MuiTreeItem-root css-14t19hb" role="treeitem" aria-expanded="false" id="left-nav-treeview-0-13-7" tabindex="-1" style="margin-top:0.1875rem;margin-bottom:0.1875rem"><div class="css-zfdk9c MuiTreeItem-content" style="width:inherit"><div class="MuiTreeItem-iconContainer"/><div class="MuiTreeItem-label"><div class="css-2jyri7"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium MuiTreeItem-ChevronRightIcon css-hkir54" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ChevronRightIcon"><path d="M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg><div class="MuiBox-root css-8atqhb"><div class="MuiTypography-root MuiTypography-body1 css-1rc6ywa">CLI</div></div></div></div></div></li><li class="MuiTreeItem-root css-14t19hb" role="treeitem" aria-expanded="false" id="left-nav-treeview-0-13-8" tabindex="-1" style="margin-top:0.1875rem;margin-bottom:0.1875rem"><div class="css-zfdk9c MuiTreeItem-content" style="width:inherit"><div class="MuiTreeItem-iconContainer"/><div class="MuiTreeItem-label"><div class="css-2jyri7"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium MuiTreeItem-ChevronRightIcon css-hkir54" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ChevronRightIcon"><path d="M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg><div class="MuiBox-root css-8atqhb"><div class="MuiTypography-root MuiTypography-body1 css-1rc6ywa">命令行参数</div></div></div></div></div></li><li class="MuiTreeItem-root css-14t19hb" role="treeitem" aria-expanded="false" id="left-nav-treeview-0-13-9" tabindex="-1" style="margin-top:0.1875rem;margin-bottom:0.1875rem"><div class="css-zfdk9c MuiTreeItem-content" style="width:inherit"><div class="MuiTreeItem-iconContainer"/><div class="MuiTreeItem-label"><div class="css-2jyri7"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium MuiTreeItem-ChevronRightIcon css-hkir54" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ChevronRightIcon"><path d="M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg><div class="MuiBox-root css-8atqhb"><div class="MuiTypography-root MuiTypography-body1 css-1rc6ywa">监控指标</div></div></div></div></div></li><li class="MuiTreeItem-root css-14t19hb" role="treeitem" aria-expanded="false" id="left-nav-treeview-0-13-10" tabindex="-1" style="margin-top:0.1875rem;margin-bottom:0.1875rem"><div class="css-zfdk9c MuiTreeItem-content" style="width:inherit"><div class="MuiTreeItem-iconContainer"/><div class="MuiTreeItem-label"><div class="css-2jyri7"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium MuiTreeItem-ChevronRightIcon css-hkir54" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ChevronRightIcon"><path d="M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg><div class="MuiBox-root css-8atqhb"><div class="MuiTypography-root MuiTypography-body1 css-1rc6ywa">权限</div></div></div></div></div></li><li class="MuiTreeItem-root css-14t19hb" role="treeitem" aria-expanded="false" id="left-nav-treeview-0-13-11" tabindex="-1" style="margin-top:0.1875rem;margin-bottom:0.1875rem"><div class="css-zfdk9c MuiTreeItem-content" style="width:inherit"><div class="MuiTreeItem-iconContainer"/><div class="MuiTreeItem-label"><div class="css-2jyri7"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium MuiTreeItem-ChevronRightIcon css-hkir54" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ChevronRightIcon"><path d="M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg><div class="MuiBox-root css-8atqhb"><div class="MuiTypography-root MuiTypography-body1 css-1rc6ywa">SQL</div></div></div></div></div></li><li class="MuiTreeItem-root css-14t19hb" role="treeitem" aria-expanded="false" id="left-nav-treeview-0-13-12" tabindex="-1" style="margin-top:0.1875rem;margin-bottom:0.1875rem"><div class="css-zfdk9c MuiTreeItem-content" style="width:inherit"><div class="MuiTreeItem-iconContainer"/><div class="MuiTreeItem-label"><div class="css-2jyri7"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium MuiTreeItem-ChevronRightIcon css-hkir54" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ChevronRightIcon"><path d="M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg><div class="MuiBox-root css-8atqhb"><div class="MuiTypography-root MuiTypography-body1 css-1rc6ywa">UI</div></div></div></div></div></li><a style="text-decoration:none;width:100%;color:inherit" href="/zh/tidb/stable/telemetry"><li class="MuiTreeItem-root css-14t19hb" role="treeitem" id="left-nav-treeview-0-13-13" tabindex="-1" style="margin-top:0.1875rem;margin-bottom:0.1875rem"><div class="css-zfdk9c MuiTreeItem-content" style="width:inherit"><div class="MuiTreeItem-iconContainer"/><div class="MuiTreeItem-label"><div class="css-2jyri7"><div class="MuiBox-root css-3o0h5k"/><div class="MuiBox-root css-8atqhb"><div class="MuiTypography-root MuiTypography-body1 css-1rc6ywa">遥测</div></div></div></div></div></li></a><a style="text-decoration:none;width:100%;color:inherit" href="/zh/tidb/stable/error-codes"><li class="MuiTreeItem-root css-14t19hb" role="treeitem" id="left-nav-treeview-0-13-14" tabindex="-1" style="margin-top:0.1875rem;margin-bottom:0.1875rem"><div class="css-zfdk9c MuiTreeItem-content" style="width:inherit"><div class="MuiTreeItem-iconContainer"/><div class="MuiTreeItem-label"><div class="css-2jyri7"><div class="MuiBox-root css-3o0h5k"/><div class="MuiBox-root css-8atqhb"><div class="MuiTypography-root MuiTypography-body1 css-1rc6ywa">错误码</div></div></div></div></div></li></a><a style="text-decoration:none;width:100%;color:inherit" href="/zh/tidb/stable/schedule-replicas-by-topology-labels"><li class="MuiTreeItem-root css-14t19hb" role="treeitem" id="left-nav-treeview-0-13-15" tabindex="-1" style="margin-top:0.1875rem;margin-bottom:0.1875rem"><div class="css-zfdk9c MuiTreeItem-content" style="width:inherit"><div class="MuiTreeItem-iconContainer"/><div class="MuiTreeItem-label"><div class="css-2jyri7"><div class="MuiBox-root css-3o0h5k"/><div class="MuiBox-root css-8atqhb"><div class="MuiTypography-root MuiTypography-body1 css-1rc6ywa">通过拓扑 label 进行副本调度</div></div></div></div></div></li></a><a style="text-decoration:none;width:100%;color:inherit" href="/zh/tidb/stable/external-storage-uri"><li class="MuiTreeItem-root css-14t19hb" role="treeitem" id="left-nav-treeview-0-13-16" tabindex="-1" style="margin-top:0.1875rem;margin-bottom:0.1875rem"><div class="css-zfdk9c MuiTreeItem-content" style="width:inherit"><div class="MuiTreeItem-iconContainer"/><div class="MuiTreeItem-label"><div class="css-2jyri7"><div class="MuiBox-root css-3o0h5k"/><div class="MuiBox-root css-8atqhb"><div class="MuiTypography-root MuiTypography-body1 css-1rc6ywa">外部存储服务的 URI 格式</div></div></div></div></div></li></a></div></div></ul></li><li class="MuiTreeItem-root css-14t19hb" role="treeitem" aria-expanded="false" id="left-nav-treeview-0-14" tabindex="-1" style="margin-top:0.1875rem;margin-bottom:0.1875rem"><div class="css-zfdk9c MuiTreeItem-content" style="width:inherit"><div class="MuiTreeItem-iconContainer"/><div class="MuiTreeItem-label"><div class="css-w8t2sr"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium MuiTreeItem-ChevronRightIcon css-hkir54" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ChevronRightIcon"><path d="M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg><div class="MuiBox-root css-8atqhb"><div class="MuiTypography-root MuiTypography-body1 css-1rc6ywa">常见问题解答 (FAQ)</div></div></div></div></div></li><li class="MuiTreeItem-root css-14t19hb" role="treeitem" aria-expanded="false" id="left-nav-treeview-0-15" tabindex="-1" style="margin-top:0.1875rem;margin-bottom:0.1875rem"><div class="css-zfdk9c MuiTreeItem-content" style="width:inherit"><div class="MuiTreeItem-iconContainer"/><div class="MuiTreeItem-label"><div class="css-w8t2sr"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium MuiTreeItem-ChevronRightIcon css-hkir54" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ChevronRightIcon"><path d="M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg><div class="MuiBox-root css-8atqhb"><div class="MuiTypography-root MuiTypography-body1 css-1rc6ywa">版本发布历史</div></div></div></div></div></li><a style="text-decoration:none;width:100%;color:inherit" href="/zh/tidb/stable/glossary"><li class="MuiTreeItem-root css-14t19hb" role="treeitem" id="left-nav-treeview-0-16" tabindex="-1" style="margin-top:0.1875rem;margin-bottom:0.1875rem"><div class="css-zfdk9c MuiTreeItem-content" style="width:inherit"><div class="MuiTreeItem-iconContainer"/><div class="MuiTreeItem-label"><div class="css-w8t2sr"><div class="MuiBox-root css-3o0h5k"/><div class="MuiBox-root css-8atqhb"><div class="MuiTypography-root MuiTypography-body1 css-1rc6ywa">术语表</div></div></div></div></div></li></a></ul></div></aside><main class="MuiBox-root css-sb2sd0"><div class="MuiBox-root css-w0vdto"><div class="css-1q5cbag"><div class="MuiBox-root css-was4pq"><div class="MuiContainer-root MuiContainer-maxWidthLg MuiContainer-disableGutters doc-content css-5csqms"><div class="markdown-body MuiBox-root css-0"><h1 id="系统变量" style="position:relative">系统变量<a href="#%E7%B3%BB%E7%BB%9F%E5%8F%98%E9%87%8F" aria-label="系统变量 permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h1><p>TiDB 系统变量的行为与 MySQL 相似,变量的作用范围可以是会话级别有效 (Session Scope) 或全局范围有效 (Global Scope)。其中:</p><ul><li>对 <code>SESSION</code> 作用域变量的更改,设置后<strong>只影响当前会话</strong>。</li><li>对 <code>GLOBAL</code> 作用域变量的更改,设置后立即生效。如果该变量也有 <code>SESSION</code> 作用域,已经连接的所有会话 (包括当前会话) 将继续使用会话当前的 <code>SESSION</code> 变量值。</li><li>要设置变量值,可使用 <a href="/zh/tidb/stable/sql-statement-set-variable"><code>SET</code> 语句</a>。</li></ul><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia"># 以下两个语句等价地改变一个 Session 变量 <span class="hljs-keyword">SET</span> tidb_distsql_scan_concurrency <span class="hljs-operator">=</span> <span class="hljs-number">10</span>; <span class="hljs-keyword">SET</span> SESSION tidb_distsql_scan_concurrency <span class="hljs-operator">=</span> <span class="hljs-number">10</span>; # 以下两个语句等价地改变一个 <span class="hljs-keyword">Global</span> 变量 <span class="hljs-keyword">SET</span> @<span class="hljs-variable">@global</span>.tidb_distsql_scan_concurrency <span class="hljs-operator">=</span> <span class="hljs-number">10</span>; <span class="hljs-keyword">SET</span> <span class="hljs-keyword">GLOBAL</span> tidb_distsql_scan_concurrency <span class="hljs-operator">=</span> <span class="hljs-number">10</span>; </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardInfo MuiAlert-standard css-1bzshic" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="InfoOutlinedIcon"><path d="M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">注意</div><p>部分 <code>GLOBAL</code> 作用域的变量会持久化到 TiDB 集群中。文档中的变量有一个“是否持久化到集群”的说明,可以为“是”或者“否”。</p><ul><li>对于持久化到集群的变量,当该全局变量被修改后,会通知所有 TiDB 服务器刷新其系统变量缓存。在集群中增加一个新的 TiDB 服务器时,或者重启现存的 TiDB 服务器时,都将自动使用该持久化变量。</li><li>对于不持久化到集群的变量,对变量的修改只对当前连接的 TiDB 实例生效。如果需要保留设置过的值,需要在 <code>tidb.toml</code> 配置文件中声明。</li></ul><p>此外,由于应用和连接器通常需要读取 MySQL 变量,为了兼容这一需求,在 TiDB 中,部分 MySQL 的变量既可读取也可设置。例如,尽管 JDBC 连接器不依赖于查询缓存 (query cache) 的行为,但仍然可以读取和设置查询缓存。</p></div></div></div><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardInfo MuiAlert-standard css-1bzshic" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="InfoOutlinedIcon"><path d="M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">注意</div><p>变量取较大值并不总会带来更好的性能。由于大部分变量对单个连接生效,设置变量时,还应考虑正在执行语句的并发连接数量。</p><p>确定安全值时,应考虑变量的单位:</p><ul><li>如果单位为线程,安全值通常取决于 CPU 核的数量。</li><li>如果单位为字节,安全值通常小于系统内存的总量。</li><li>如果单位为时间,单位可能为秒或毫秒。</li></ul><p>单位相同的多个变量可能会争夺同一组资源。</p></div></div></div><p>从 v7.4.0 开始,部分 <code>SESSION</code> 作用域的变量可以通过 <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value"><code>SET_VAR</code></a> Hint 在语句执行期间临时修改变量的值。当语句执行完成后,系统变量将在当前会话中自动恢复为原始值。通过这个 Hint 可以修改一部分与优化器、执行器相关的系统变量行为。文档中的变量有一个“是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value"><code>SET_VAR</code></a> 控制”的说明,可以为“是”或者“否”。</p><ul><li>对于受 Hint SET_VAR 控制的变量,你可以在语句中使用 <code>/*+ SET_VAR(...) */</code> 修改语句执行期间变量的值。</li><li>对于不受 Hint SET_VAR 控制的变量,你不能在语句中使用 <code>/*+ SET_VAR(...) */</code> 修改语句执行期间变量的值。</li></ul><p>关于 SET_VAR Hint 的更多说明,参考 <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a>。</p><h2 id="变量参考" style="position:relative">变量参考<a href="#%E5%8F%98%E9%87%8F%E5%8F%82%E8%80%83" aria-label="变量参考 permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h2><h3 id="allow_auto_random_explicit_insert-span-classversion-mark从-v403-版本开始引入span" style="position:relative"><code>allow_auto_random_explicit_insert</code> <span class="version-mark">从 v4.0.3 版本开始引入</span><a href="#allow_auto_random_explicit_insert-span-classversion-mark%E4%BB%8E-v403-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="allow_auto_random_explicit_insert span classversion mark从 v403 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>是否允许在 <code>INSERT</code> 语句中显式指定含有 <code>AUTO_RANDOM</code> 属性的列的值。</li></ul><h3 id="authentication_ldap_sasl_auth_method_name-span-classversion-mark从-v710-版本开始引入span" style="position:relative"><code>authentication_ldap_sasl_auth_method_name</code> <span class="version-mark">从 v7.1.0 版本开始引入</span><a href="#authentication_ldap_sasl_auth_method_name-span-classversion-mark%E4%BB%8E-v710-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="authentication_ldap_sasl_auth_method_name span classversion mark从 v710 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:枚举型</li><li>默认值:<code>SCRAM-SHA-1</code></li><li>可选值:<code>SCRAM-SHA-1</code>、<code>SCRAM-SHA-256</code>、<code>GSSAPI</code></li><li>LDAP SASL 身份验证中,验证方法的名称。</li></ul><h3 id="authentication_ldap_sasl_bind_base_dn-span-classversion-mark从-v710-版本开始引入span" style="position:relative"><code>authentication_ldap_sasl_bind_base_dn</code> <span class="version-mark">从 v7.1.0 版本开始引入</span><a href="#authentication_ldap_sasl_bind_base_dn-span-classversion-mark%E4%BB%8E-v710-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="authentication_ldap_sasl_bind_base_dn span classversion mark从 v710 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:字符串</li><li>默认值:""</li><li>LDAP SASL 身份验证中,搜索用户的范围。如果创建用户时没有通过 <code>AS ...</code> 指定 <code>dn</code>,TiDB 会自动在 LDAP Server 的该范围中根据用户名搜索用户 <code>dn</code>。例如 <code>dc=example,dc=org</code>。</li></ul><h3 id="authentication_ldap_sasl_bind_root_dn-span-classversion-mark从-v710-版本开始引入span" style="position:relative"><code>authentication_ldap_sasl_bind_root_dn</code> <span class="version-mark">从 v7.1.0 版本开始引入</span><a href="#authentication_ldap_sasl_bind_root_dn-span-classversion-mark%E4%BB%8E-v710-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="authentication_ldap_sasl_bind_root_dn span classversion mark从 v710 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:字符串</li><li>默认值:""</li><li>LDAP SASL 身份验证中,TiDB 登录 LDAP Server 搜索用户时使用的 <code>dn</code>。</li></ul><h3 id="authentication_ldap_sasl_bind_root_pwd-span-classversion-mark从-v710-版本开始引入span" style="position:relative"><code>authentication_ldap_sasl_bind_root_pwd</code> <span class="version-mark">从 v7.1.0 版本开始引入</span><a href="#authentication_ldap_sasl_bind_root_pwd-span-classversion-mark%E4%BB%8E-v710-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="authentication_ldap_sasl_bind_root_pwd span classversion mark从 v710 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:字符串</li><li>默认值:""</li><li>LDAP SASL 身份验证中,TiDB 登录 LDAP Server 搜索用户时使用的密码。</li></ul><h3 id="authentication_ldap_sasl_ca_path-span-classversion-mark从-v710-版本开始引入span" style="position:relative"><code>authentication_ldap_sasl_ca_path</code> <span class="version-mark">从 v7.1.0 版本开始引入</span><a href="#authentication_ldap_sasl_ca_path-span-classversion-mark%E4%BB%8E-v710-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="authentication_ldap_sasl_ca_path span classversion mark从 v710 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:字符串</li><li>默认值:""</li><li>LDAP SASL 身份验证中,TiDB 对 StartTLS 连接使用的 CA 证书的路径。</li></ul><h3 id="authentication_ldap_sasl_init_pool_size-span-classversion-mark从-v710-版本开始引入span" style="position:relative"><code>authentication_ldap_sasl_init_pool_size</code> <span class="version-mark">从 v7.1.0 版本开始引入</span><a href="#authentication_ldap_sasl_init_pool_size-span-classversion-mark%E4%BB%8E-v710-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="authentication_ldap_sasl_init_pool_size span classversion mark从 v710 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>10</code></li><li>范围:<code>[1, 32767]</code></li><li>LDAP SASL 身份验证中,TiDB 与 LDAP Server 间连接池的初始连接数。</li></ul><h3 id="authentication_ldap_sasl_max_pool_size-span-classversion-mark从-v710-版本开始引入span" style="position:relative"><code>authentication_ldap_sasl_max_pool_size</code> <span class="version-mark">从 v7.1.0 版本开始引入</span><a href="#authentication_ldap_sasl_max_pool_size-span-classversion-mark%E4%BB%8E-v710-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="authentication_ldap_sasl_max_pool_size span classversion mark从 v710 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>1000</code></li><li>范围:<code>[1, 32767]</code></li><li>LDAP SASL 身份验证中,TiDB 与 LDAP Server 间连接池的最大连接数。</li></ul><h3 id="authentication_ldap_sasl_server_host-span-classversion-mark从-v710-版本开始引入span" style="position:relative"><code>authentication_ldap_sasl_server_host</code> <span class="version-mark">从 v7.1.0 版本开始引入</span><a href="#authentication_ldap_sasl_server_host-span-classversion-mark%E4%BB%8E-v710-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="authentication_ldap_sasl_server_host span classversion mark从 v710 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:字符串</li><li>默认值:""</li><li>LDAP SASL 身份验证中,LDAP Server 的主机名或地址。</li></ul><h3 id="authentication_ldap_sasl_server_port-span-classversion-mark从-v710-版本开始引入span" style="position:relative"><code>authentication_ldap_sasl_server_port</code> <span class="version-mark">从 v7.1.0 版本开始引入</span><a href="#authentication_ldap_sasl_server_port-span-classversion-mark%E4%BB%8E-v710-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="authentication_ldap_sasl_server_port span classversion mark从 v710 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>389</code></li><li>范围:<code>[1, 65535]</code></li><li>LDAP SASL 身份验证中,LDAP Server 的 TCP/IP 端口号。</li></ul><h3 id="authentication_ldap_sasl_tls-span-classversion-mark从-v710-版本开始引入span" style="position:relative"><code>authentication_ldap_sasl_tls</code> <span class="version-mark">从 v7.1.0 版本开始引入</span><a href="#authentication_ldap_sasl_tls-span-classversion-mark%E4%BB%8E-v710-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="authentication_ldap_sasl_tls span classversion mark从 v710 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>LDAP SASL 身份验证中,是否使用 StartTLS 对连接加密。</li></ul><h3 id="authentication_ldap_simple_auth_method_name-span-classversion-mark从-v710-版本开始引入span" style="position:relative"><code>authentication_ldap_simple_auth_method_name</code> <span class="version-mark">从 v7.1.0 版本开始引入</span><a href="#authentication_ldap_simple_auth_method_name-span-classversion-mark%E4%BB%8E-v710-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="authentication_ldap_simple_auth_method_name span classversion mark从 v710 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:枚举型</li><li>默认值:<code>SIMPLE</code></li><li>可选值:<code>SIMPLE</code></li><li>LDAP simple 身份验证中,验证方法的名称。现在仅支持 <code>SIMPLE</code>。</li></ul><h3 id="authentication_ldap_simple_bind_base_dn-span-classversion-mark从-v710-版本开始引入span" style="position:relative"><code>authentication_ldap_simple_bind_base_dn</code> <span class="version-mark">从 v7.1.0 版本开始引入</span><a href="#authentication_ldap_simple_bind_base_dn-span-classversion-mark%E4%BB%8E-v710-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="authentication_ldap_simple_bind_base_dn span classversion mark从 v710 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:字符串</li><li>默认值:""</li><li>LDAP simple 身份验证中,搜索用户的范围。如果创建用户时没有通过 <code>AS ...</code> 指定 <code>dn</code>,TiDB 会自动在 LDAP Server 的该范围中根据用户名搜索用户 <code>dn</code>。例如 <code>dc=example,dc=org</code>。</li></ul><h3 id="authentication_ldap_simple_bind_root_dn-span-classversion-mark从-v710-版本开始引入span" style="position:relative"><code>authentication_ldap_simple_bind_root_dn</code> <span class="version-mark">从 v7.1.0 版本开始引入</span><a href="#authentication_ldap_simple_bind_root_dn-span-classversion-mark%E4%BB%8E-v710-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="authentication_ldap_simple_bind_root_dn span classversion mark从 v710 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:字符串</li><li>默认值:""</li><li>LDAP simple 身份验证中,TiDB 登录 LDAP Server 搜索用户时使用的 <code>dn</code>。</li></ul><h3 id="authentication_ldap_simple_bind_root_pwd-span-classversion-mark从-v710-版本开始引入span" style="position:relative"><code>authentication_ldap_simple_bind_root_pwd</code> <span class="version-mark">从 v7.1.0 版本开始引入</span><a href="#authentication_ldap_simple_bind_root_pwd-span-classversion-mark%E4%BB%8E-v710-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="authentication_ldap_simple_bind_root_pwd span classversion mark从 v710 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:字符串</li><li>默认值:""</li><li>LDAP simple 身份验证中,TiDB 登录 LDAP Server 搜索用户时使用的密码。</li></ul><h3 id="authentication_ldap_simple_ca_path-span-classversion-mark从-v710-版本开始引入span" style="position:relative"><code>authentication_ldap_simple_ca_path</code> <span class="version-mark">从 v7.1.0 版本开始引入</span><a href="#authentication_ldap_simple_ca_path-span-classversion-mark%E4%BB%8E-v710-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="authentication_ldap_simple_ca_path span classversion mark从 v710 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:字符串</li><li>默认值:""</li><li>LDAP simple 身份验证中,TiDB 对 StartTLS 连接使用的 CA 证书的路径。</li></ul><h3 id="authentication_ldap_simple_init_pool_size-span-classversion-mark从-v710-版本开始引入span" style="position:relative"><code>authentication_ldap_simple_init_pool_size</code> <span class="version-mark">从 v7.1.0 版本开始引入</span><a href="#authentication_ldap_simple_init_pool_size-span-classversion-mark%E4%BB%8E-v710-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="authentication_ldap_simple_init_pool_size span classversion mark从 v710 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>10</code></li><li>范围:<code>[1, 32767]</code></li><li>LDAP simple 身份验证中,TiDB 与 LDAP Server 间连接池的初始连接数。</li></ul><h3 id="authentication_ldap_simple_max_pool_size-span-classversion-mark从-v710-版本开始引入span" style="position:relative"><code>authentication_ldap_simple_max_pool_size</code> <span class="version-mark">从 v7.1.0 版本开始引入</span><a href="#authentication_ldap_simple_max_pool_size-span-classversion-mark%E4%BB%8E-v710-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="authentication_ldap_simple_max_pool_size span classversion mark从 v710 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>1000</code></li><li>范围:<code>[1, 32767]</code></li><li>LDAP simple 身份验证中,TiDB 与 LDAP Server 间连接池的最大连接数。</li></ul><h3 id="authentication_ldap_simple_server_host-span-classversion-mark从-v710-版本开始引入span" style="position:relative"><code>authentication_ldap_simple_server_host</code> <span class="version-mark">从 v7.1.0 版本开始引入</span><a href="#authentication_ldap_simple_server_host-span-classversion-mark%E4%BB%8E-v710-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="authentication_ldap_simple_server_host span classversion mark从 v710 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:字符串</li><li>默认值:""</li><li>LDAP simple 身份验证中,LDAP Server 的主机名或地址。</li></ul><h3 id="authentication_ldap_simple_server_port-span-classversion-mark从-v710-版本开始引入span" style="position:relative"><code>authentication_ldap_simple_server_port</code> <span class="version-mark">从 v7.1.0 版本开始引入</span><a href="#authentication_ldap_simple_server_port-span-classversion-mark%E4%BB%8E-v710-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="authentication_ldap_simple_server_port span classversion mark从 v710 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>389</code></li><li>范围:<code>[1, 65535]</code></li><li>LDAP simple 身份验证中,LDAP Server 的 TCP/IP 端口号。</li></ul><h3 id="authentication_ldap_simple_tls-span-classversion-mark从-v710-版本开始引入span" style="position:relative"><code>authentication_ldap_simple_tls</code> <span class="version-mark">从 v7.1.0 版本开始引入</span><a href="#authentication_ldap_simple_tls-span-classversion-mark%E4%BB%8E-v710-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="authentication_ldap_simple_tls span classversion mark从 v710 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>LDAP simple 身份验证中,是否使用 StartTLS 对连接加密。</li></ul><h3 id="auto_increment_increment" style="position:relative"><code>auto_increment_increment</code><a href="#auto_increment_increment" aria-label="auto_increment_increment permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>1</code></li><li>范围:<code>[1, 65535]</code></li><li>控制 <code>AUTO_INCREMENT</code> 自增值字段的自增步长和 <code>AUTO_RANDOM</code> ID 的分配规则。该变量常与 <a href="#auto_increment_offset"><code>auto_increment_offset</code></a> 一起使用。</li></ul><h3 id="auto_increment_offset" style="position:relative"><code>auto_increment_offset</code><a href="#auto_increment_offset" aria-label="auto_increment_offset permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>1</code></li><li>范围:<code>[1, 65535]</code></li><li>控制 <code>AUTO_INCREMENT</code> 自增值字段的初始值和 <code>AUTO_RANDOM</code> ID 的分配规则。该变量常与 <a href="#auto_increment_increment"><code>auto_increment_increment</code></a> 一起使用。示例如下:</li></ul><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia">mysql<span class="hljs-operator">></span> <span class="hljs-keyword">CREATE</span> <span class="hljs-keyword">TABLE</span> t1 (a <span class="hljs-type">int</span> <span class="hljs-keyword">not</span> <span class="hljs-keyword">null</span> <span class="hljs-keyword">primary</span> key auto_increment); Query OK, <span class="hljs-number">0</span> <span class="hljs-keyword">rows</span> affected (<span class="hljs-number">0.10</span> sec) mysql<span class="hljs-operator">></span> <span class="hljs-keyword">set</span> auto_increment_offset<span class="hljs-operator">=</span><span class="hljs-number">1</span>; Query OK, <span class="hljs-number">0</span> <span class="hljs-keyword">rows</span> affected (<span class="hljs-number">0.00</span> sec) mysql<span class="hljs-operator">></span> <span class="hljs-keyword">set</span> auto_increment_increment<span class="hljs-operator">=</span><span class="hljs-number">3</span>; Query OK, <span class="hljs-number">0</span> <span class="hljs-keyword">rows</span> affected (<span class="hljs-number">0.00</span> sec) mysql<span class="hljs-operator">></span> <span class="hljs-keyword">INSERT</span> <span class="hljs-keyword">INTO</span> t1 <span class="hljs-keyword">VALUES</span> (),(),(),(); Query OK, <span class="hljs-number">4</span> <span class="hljs-keyword">rows</span> affected (<span class="hljs-number">0.04</span> sec) Records: <span class="hljs-number">4</span> Duplicates: <span class="hljs-number">0</span> Warnings: <span class="hljs-number">0</span> mysql<span class="hljs-operator">></span> <span class="hljs-keyword">SELECT</span> <span class="hljs-operator">*</span> <span class="hljs-keyword">FROM</span> t1; <span class="hljs-operator">+</span><span class="hljs-comment">----+</span> <span class="hljs-operator">|</span> a <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">----+</span> <span class="hljs-operator">|</span> <span class="hljs-number">1</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> <span class="hljs-number">4</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> <span class="hljs-number">7</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> <span class="hljs-number">10</span> <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">----+</span> <span class="hljs-number">4</span> <span class="hljs-keyword">rows</span> <span class="hljs-keyword">in</span> <span class="hljs-keyword">set</span> (<span class="hljs-number">0.00</span> sec) </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre><h3 id="autocommit" style="position:relative"><code>autocommit</code><a href="#autocommit" aria-label="autocommit permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>用于设置在非显式事务时是否自动提交事务。更多信息,请参见<a href="/zh/tidb/stable/transaction-overview#自动提交">事务概述</a>。</li></ul><h3 id="block_encryption_mode" style="position:relative"><code>block_encryption_mode</code><a href="#block_encryption_mode" aria-label="block_encryption_mode permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:枚举型</li><li>默认值:<code>aes-128-ecb</code></li><li>可选值:<code>aes-128-ecb</code>、<code>aes-192-ecb</code>、<code>aes-256-ecb</code>、<code>aes-128-cbc</code>、<code>aes-192-cbc</code>、<code>aes-256-cbc</code>、<code>aes-128-ofb</code>、<code>aes-192-ofb</code>、<code>aes-256-ofb</code>、<code>aes-128-cfb</code>、<code>aes-192-cfb</code>、<code>aes-256-cfb</code></li><li>该变量用于设置 <a href="/zh/tidb/stable/encryption-and-compression-functions#aes_encrypt"><code>AES_ENCRYPT()</code></a> 和 <a href="/zh/tidb/stable/encryption-and-compression-functions#aes_decrypt"><code>AES_DECRYPT()</code></a> 函数的加密模式。</li></ul><h3 id="character_set_client" style="position:relative"><code>character_set_client</code><a href="#character_set_client" aria-label="character_set_client permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>默认值:<code>utf8mb4</code></li><li>这个变量表示从客户端发出的数据所用的字符集。有关更多 TiDB 支持的字符集和排序规则,参阅<a href="/zh/tidb/stable/character-set-and-collation">字符集和排序规则</a>文档。如果需要更改字符集,建议使用 <a href="/zh/tidb/stable/sql-statement-set-names"><code>SET NAMES</code></a> 语句。</li></ul><h3 id="character_set_connection" style="position:relative"><code>character_set_connection</code><a href="#character_set_connection" aria-label="character_set_connection permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>默认值:<code>utf8mb4</code></li><li>若没有为字符串常量指定字符集,该变量表示这些字符串常量所使用的字符集。</li></ul><h3 id="character_set_database" style="position:relative"><code>character_set_database</code><a href="#character_set_database" aria-label="character_set_database permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>默认值:<code>utf8mb4</code></li><li>该变量表示当前默认在用数据库的字符集,<strong>不建议设置该变量</strong>。选择新的默认数据库后,服务器会更改该变量的值。</li></ul><h3 id="character_set_results" style="position:relative"><code>character_set_results</code><a href="#character_set_results" aria-label="character_set_results permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>默认值:<code>utf8mb4</code></li><li>该变量表示数据发送至客户端时所使用的字符集。</li></ul><h3 id="character_set_server" style="position:relative"><code>character_set_server</code><a href="#character_set_server" aria-label="character_set_server permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>默认值:<code>utf8mb4</code></li><li>当 <code>CREATE SCHEMA</code> 中没有指定字符集时,该变量表示这些新建的表结构所使用的字符集。</li></ul><h3 id="collation_connection" style="position:relative"><code>collation_connection</code><a href="#collation_connection" aria-label="collation_connection permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>默认值:<code>utf8mb4_bin</code></li><li>该变量表示连接中所使用的排序规则。与 MySQL 中的 <code>collation_connection</code> 一致。</li></ul><h3 id="collation_database" style="position:relative"><code>collation_database</code><a href="#collation_database" aria-label="collation_database permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>默认值:<code>utf8mb4_bin</code></li><li>该变量表示当前数据库默认所使用的排序规则。与 MySQL 中的 <code>collation_database</code> 一致。<strong>不建议设置此变量</strong>,当前使用的数据库变动时,此变量会被 TiDB 修改。</li></ul><h3 id="collation_server" style="position:relative"><code>collation_server</code><a href="#collation_server" aria-label="collation_server permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>默认值:<code>utf8mb4_bin</code></li><li>该变量表示创建数据库时默认的排序规则。</li></ul><h3 id="cte_max_recursion_depth" style="position:relative"><code>cte_max_recursion_depth</code><a href="#cte_max_recursion_depth" aria-label="cte_max_recursion_depth permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:整数型</li><li>默认值:<code>1000</code></li><li>范围:<code>[0, 4294967295]</code></li><li>这个变量用于控制公共表表达式的最大递归深度。</li></ul><h3 id="datadir" style="position:relative"><code>datadir</code><a href="#datadir" aria-label="datadir permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:NONE</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>默认值:使用的组件和部署方式不同,默认值也不同。<ul><li><code>/tmp/tidb</code>:如果你将 <a href="/zh/tidb/stable/command-line-flags-for-tidb-configuration#--store"><code>--store</code></a> 设置为 <code>"unistore"</code> 或没有设置 <code>--store</code>,则默认值为 <code>/tmp/tidb</code>。</li><li><code>${pd-ip}:${pd-port}</code>:如果你设置的存储引擎是 TiKV(如果使用 TiUP 和 TiDB Operator 部署,则默认的存储引擎为 TiKV),则默认值为 <code>${pd-ip}:${pd-port}</code>。</li></ul></li><li>这个变量表示数据存储的位置,位置可以是本地路径 <code>/tmp/tidb</code>。如果数据存储在 TiKV 上,则可以是指向 PD 服务器的路径。变量值的格式为 <code>${pd-ip}:${pd-port}</code>,表示 TiDB 在启动时连接到的 PD 服务器。</li></ul><h3 id="ddl_slow_threshold" style="position:relative"><code>ddl_slow_threshold</code><a href="#ddl_slow_threshold" aria-label="ddl_slow_threshold permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:否,仅作用于当前连接的 TiDB 实例</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>300</code></li><li>取值范围:<code>[0, 2147483647]</code></li><li>单位:毫秒</li><li>耗时超过该阈值的 DDL 操作会被输出到日志。</li></ul><h3 id="default_authentication_plugin" style="position:relative"><code>default_authentication_plugin</code><a href="#default_authentication_plugin" aria-label="default_authentication_plugin permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:枚举型</li><li>默认值:<code>mysql_native_password</code></li><li>可选值:<code>mysql_native_password</code>,<code>caching_sha2_password</code>,<code>tidb_sm3_password</code>,<code>tidb_auth_token</code>,<code>authentication_ldap_sasl</code> 或 <code>authentication_ldap_simple</code>。</li><li>服务器和客户端建立连接时,这个变量用于设置服务器对外通告的默认身份验证方式。如要了解该变量的其他可选值,参见<a href="/zh/tidb/stable/security-compatibility-with-mysql#可用的身份验证插件">可用的身份验证插件</a>。</li><li>若要在用户登录时使用 <code>tidb_sm3_password</code> 插件,需要使用 <a href="https://github.com/pingcap/mysql-connector-j/tree/release/8.0-sm3" target="_blank" referrerpolicy="no-referrer-when-downgrade">TiDB-JDBC</a> 进行连接。</li></ul><h3 id="default_collation_for_utf8mb4-span-classversion-mark从-v740-版本开始引入span" style="position:relative"><code>default_collation_for_utf8mb4</code> <span class="version-mark">从 v7.4.0 版本开始引入</span><a href="#default_collation_for_utf8mb4-span-classversion-mark%E4%BB%8E-v740-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="default_collation_for_utf8mb4 span classversion mark从 v740 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL | SESSION</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:字符串</li><li>默认值:<code>utf8mb4_bin</code></li><li>可选值:<code>utf8mb4_bin</code>、<code>utf8mb4_general_ci</code>、<code>utf8mb4_0900_ai_ci</code></li><li>该变量用于设置 utf8mb4 字符集的默认<a href="/zh/tidb/stable/character-set-and-collation">排序规则</a>。它会影响以下语句的行为:<ul><li><a href="/zh/tidb/stable/sql-statement-show-collation"><code>SHOW COLLATION</code></a> 和 <a href="/zh/tidb/stable/sql-statement-show-character-set"><code>SHOW CHARACTER SET</code></a> 语句显示的默认排序规则。</li><li><a href="/zh/tidb/stable/sql-statement-create-table"><code>CREATE TABLE</code></a> 和 <a href="/zh/tidb/stable/sql-statement-alter-table"><code>ALTER TABLE</code></a> 语句中对表或列使用 <code>CHARACTER SET</code> 语法明确指定 utf8mb4 字符集而未指定排序规则时,将使用该变量指定的排序规则。不影响未使用 <code>CHARACTER SET</code> 语法时的行为。</li><li><a href="/zh/tidb/stable/sql-statement-create-database"><code>CREATE DATABASE</code></a> 和 <a href="/zh/tidb/stable/sql-statement-alter-database"><code>ALTER DATABASE</code></a> 语句中使用 <code>CHARACTER SET</code> 语法明确指定 utf8mb4 字符集而未指定排序规则时,将使用该变量指定的排序规则。不影响未使用 <code>CHARACTER SET</code> 语法时的行为。</li><li>任何使用 <code>_utf8mb4'string'</code> 形式的字面量在未使用 <code>COLLATE</code> 语法指定排序规则时,将使用该变量指定的排序规则。</li></ul></li></ul><h3 id="default_password_lifetime-span-classversion-mark从-v650-版本开始引入span" style="position:relative"><code>default_password_lifetime</code> <span class="version-mark">从 v6.5.0 版本开始引入</span><a href="#default_password_lifetime-span-classversion-mark%E4%BB%8E-v650-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="default_password_lifetime span classversion mark从 v650 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>0</code></li><li>取值范围:<code>[0, 65535]</code></li><li>该变量用于设置全局自动密码过期策略,默认值为 <code>0</code>,即禁用全局自动密码过期。如果设置该变量的值为正整数 N,则表示允许的密码生存期为 N,即必须在 N 天之内更改密码。</li></ul><h3 id="default_week_format" style="position:relative"><code>default_week_format</code><a href="#default_week_format" aria-label="default_week_format permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>0</code></li><li>取值范围:<code>[0, 7]</code></li><li>设置 <code>WEEK()</code> 函数使用的周格式。</li></ul><h3 id="disconnect_on_expired_password-span-classversion-mark从-v650-版本开始引入span" style="position:relative"><code>disconnect_on_expired_password</code> <span class="version-mark">从 v6.5.0 版本开始引入</span><a href="#disconnect_on_expired_password-span-classversion-mark%E4%BB%8E-v650-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="disconnect_on_expired_password span classversion mark从 v650 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>该变量是一个只读变量,用来显示 TiDB 是否会直接断开密码已过期用户的连接。当其值为 <code>ON</code>,表示 TiDB 会断开密码已过期用户的连接。当其值为 <code>OFF</code>,表示 TiDB 会将密码已过期用户的连接置于“沙盒模式”,允许该用户建立连接并执行密码重置操作。</li><li>如果需要改变 TiDB 对密码已过期用户连接的处理方式,请在 TiDB 配置文件中的 <code>[security]</code> 部分修改 <a href="/zh/tidb/stable/tidb-configuration-file#disconnect-on-expired-password-从-v650-版本开始引入"><code>disconnect-on-expired-password</code></a> 选项。</li></ul><h3 id="div_precision_increment-span-classversion-mark从-v800-版本开始引入span" style="position:relative"><code>div_precision_increment</code> <span class="version-mark">从 v8.0.0 版本开始引入</span><a href="#div_precision_increment-span-classversion-mark%E4%BB%8E-v800-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="div_precision_increment span classversion mark从 v800 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:整数型</li><li>默认值:<code>4</code></li><li>范围:<code>[0, 30]</code></li><li>这个变量用于控制使用运算符 <code>/</code> 执行除法操作时,结果增加的小数位数。该功能与 MySQL 保持一致。</li></ul><h3 id="error_count" style="position:relative"><code>error_count</code><a href="#error_count" aria-label="error_count permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION</li><li>默认值:<code>0</code></li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>表示上一条生成消息的 SQL 语句中的错误数。该变量为只读变量。</li></ul><h3 id="foreign_key_checks" style="position:relative"><code>foreign_key_checks</code><a href="#foreign_key_checks" aria-label="foreign_key_checks permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:在 v6.6.0 之前版本中为 <code>OFF</code>,在 v6.6.0 及之后的版本中为 <code>ON</code>。</li><li>表示是否开启外键约束检查。</li></ul><h3 id="group_concat_max_len" style="position:relative"><code>group_concat_max_len</code><a href="#group_concat_max_len" aria-label="group_concat_max_len permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>1024</code></li><li>取值范围:<code>[4, 18446744073709551615]</code></li><li>表示 <code>GROUP_CONCAT()</code> 函数缓冲区的最大长度。</li></ul><h3 id="have_openssl" style="position:relative"><code>have_openssl</code><a href="#have_openssl" aria-label="have_openssl permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:NONE</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>DISABLED</code></li><li>用于 MySQL 兼容性的只读变量。当服务器启用 TLS 时,服务器将其设置为 <code>YES</code>。</li></ul><h3 id="have_ssl" style="position:relative"><code>have_ssl</code><a href="#have_ssl" aria-label="have_ssl permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:NONE</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>DISABLED</code></li><li>用于 MySQL 兼容性的只读变量。当服务器启用 TLS 时,服务器将其设置为 <code>YES</code>。</li></ul><h3 id="hostname" style="position:relative"><code>hostname</code><a href="#hostname" aria-label="hostname permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:NONE</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>默认值:(系统主机名)</li><li>这个变量为只读变量,表示 TiDB server 的主机名。</li></ul><h3 id="identity-span-classversion-mark从-v530-版本开始引入span" style="position:relative"><code>identity</code> <span class="version-mark">从 v5.3.0 版本开始引入</span><a href="#identity-span-classversion-mark%E4%BB%8E-v530-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="identity span classversion mark从 v530 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>该变量为变量 <a href="#last_insert_id-%E4%BB%8E-v530-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5"><code>last_insert_id</code></a> 的别名。</li></ul><h3 id="init_connect" style="position:relative"><code>init_connect</code><a href="#init_connect" aria-label="init_connect permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>默认值:""</li><li>用户首次连接到 TiDB 服务器时,<code>init_connect</code> 特性允许 TiDB 自动执行一条或多条 SQL 语句。如果你有 <code>CONNECTION_ADMIN</code> 或者 <code>SUPER</code> 权限,这些 SQL 语句将不会被自动执行。如果这些语句执行报错,你的用户连接将被终止。</li></ul><h3 id="innodb_lock_wait_timeout" style="position:relative"><code>innodb_lock_wait_timeout</code><a href="#innodb_lock_wait_timeout" aria-label="innodb_lock_wait_timeout permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>50</code></li><li>范围:<code>[1, 3600]</code></li><li>单位:秒</li><li>悲观事务语句等锁时间。</li></ul><h3 id="interactive_timeout" style="position:relative"><code>interactive_timeout</code><a href="#interactive_timeout" aria-label="interactive_timeout permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>28800</code></li><li>范围:<code>[1, 31536000]</code></li><li>单位:秒</li><li>该变量表示交互式用户会话的空闲超时。交互式用户会话是指使用 <code>CLIENT_INTERACTIVE</code> 选项调用 <a href="https://dev.mysql.com/doc/c-api/5.7/en/mysql-real-connect.html" target="_blank" referrerpolicy="no-referrer-when-downgrade"><code>mysql_real_connect()</code></a> API 建立的会话(例如:MySQL shell 和 MySQL client)。该变量与 MySQL 完全兼容。</li></ul><h3 id="last_insert_id-span-classversion-mark从-v530-版本开始引入span" style="position:relative"><code>last_insert_id</code> <span class="version-mark">从 v5.3.0 版本开始引入</span><a href="#last_insert_id-span-classversion-mark%E4%BB%8E-v530-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="last_insert_id span classversion mark从 v530 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>0</code></li><li>取值范围:<code>[0, 18446744073709551615]</code></li><li>返回由 <code>INSERT</code> 语句产生的最新 <code>AUTO_INSCRENT</code> 或者 <code>AUTO_RANDOM</code> 值,与 <code>LAST_INSERT_ID()</code> 的返回的结果相同。与 MySQL 中的 <code>last_insert_id</code> 一致。</li></ul><h3 id="last_plan_from_binding-span-classversion-mark从-v40-版本开始引入span" style="position:relative"><code>last_plan_from_binding</code> <span class="version-mark">从 v4.0 版本开始引入</span><a href="#last_plan_from_binding-span-classversion-mark%E4%BB%8E-v40-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="last_plan_from_binding span classversion mark从 v40 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>该变量用来显示上一条执行的语句所使用的执行计划是否来自 binding 的<a href="/zh/tidb/stable/sql-plan-management">执行计划</a>。</li></ul><h3 id="last_plan_from_cache-span-classversion-mark从-v40-版本开始引入span" style="position:relative"><code>last_plan_from_cache</code> <span class="version-mark">从 v4.0 版本开始引入</span><a href="#last_plan_from_cache-span-classversion-mark%E4%BB%8E-v40-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="last_plan_from_cache span classversion mark从 v40 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>这个变量用来显示上一个 <code>execute</code> 语句所使用的执行计划是不是直接从 plan cache 中取出来的。</li></ul><h3 id="last_sql_use_alloc-span-classversion-mark从-v640-版本开始引入span" style="position:relative"><code>last_sql_use_alloc</code> <span class="version-mark">从 v6.4.0 版本开始引入</span><a href="#last_sql_use_alloc-span-classversion-mark%E4%BB%8E-v640-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="last_sql_use_alloc span classversion mark从 v640 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>默认值:<code>OFF</code></li><li>这个变量是一个只读变量,用来显示上一个语句是否使用了缓存的 Chunk 对象 (Chunk allocation)。</li></ul><h3 id="license" style="position:relative"><code>license</code><a href="#license" aria-label="license permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:NONE</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>默认值:<code>Apache License 2.0</code></li><li>这个变量表示 TiDB 服务器的安装许可证。</li></ul><h3 id="log_bin" style="position:relative"><code>log_bin</code><a href="#log_bin" aria-label="log_bin permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:NONE</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>该变量表示是否使用 <a href="/zh/tidb/stable/tidb-binlog-overview">TiDB Binlog</a>。</li></ul><h3 id="max_connections" style="position:relative"><code>max_connections</code><a href="#max_connections" aria-label="max_connections permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:否,仅作用于当前连接的 TiDB 实例</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>0</code></li><li>取值范围:<code>[0, 100000]</code></li><li>该变量表示 TiDB 中同时允许的最大客户端连接数,用于资源控制。</li><li>默认情况下,该变量值为 <code>0</code> 表示不限制客户端连接数。当本变量的值大于 <code>0</code> 且客户端连接数到达此值时,TiDB 服务端将会拒绝新的客户端连接。</li></ul><h3 id="max_execution_time" style="position:relative"><code>max_execution_time</code><a href="#max_execution_time" aria-label="max_execution_time permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:整数型</li><li>默认值:<code>0</code></li><li>范围:<code>[0, 2147483647]</code></li><li>单位:毫秒</li><li>语句最长执行时间。默认值 (0) 表示无限制。</li></ul><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardInfo MuiAlert-standard css-1bzshic" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="InfoOutlinedIcon"><path d="M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">注意</div><ul><li>在 v6.4.0 之前,<code>max_execution_time</code> 对所有类型的语句生效。从 v6.4.0 开始,该变量只用于控制只读语句的最大执行时长。实际精度在 100ms 级别,而非更准确的毫秒级别。</li><li>对于使用了 <a href="/zh/tidb/stable/optimizer-hints#max_execution_timen"><code>MAX_EXECUTION_TIME</code></a> Hint 的 SQL 语句,这些语句的最长执行时间将不受该变量限制,而是由该 Hint 进行限制。你也可以使用该 Hint 来创建 SQL 绑定,详情请参考 <a href="/zh/tidb/stable/sql-faq#如何阻止特定的-sql-语句执行或者将某个-sql-语句加入黑名单">SQL 操作常见问题</a>。</li></ul></div></div></div><h3 id="max_prepared_stmt_count" style="position:relative"><code>max_prepared_stmt_count</code><a href="#max_prepared_stmt_count" aria-label="max_prepared_stmt_count permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>-1</code></li><li>范围:<code>[-1, 1048576]</code></li><li>指定当前实例中 <a href="/zh/tidb/stable/sql-statement-prepare"><code>PREPARE</code></a> 语句的最大数量。</li><li>值为 <code>-1</code> 时表示不对实例中的 <code>PREPARE</code> 语句数量进行限制。</li><li>如果将变量值设为超过上限 <code>1048576</code>,则使用上限值 <code>1048576</code>:</li></ul><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia">mysql<span class="hljs-operator">></span> <span class="hljs-keyword">SET</span> <span class="hljs-keyword">GLOBAL</span> max_prepared_stmt_count <span class="hljs-operator">=</span> <span class="hljs-number">1048577</span>; Query OK, <span class="hljs-number">0</span> <span class="hljs-keyword">rows</span> affected, <span class="hljs-number">1</span> warning (<span class="hljs-number">0.01</span> sec) mysql<span class="hljs-operator">></span> <span class="hljs-keyword">SHOW</span> WARNINGS; <span class="hljs-operator">+</span><span class="hljs-comment">---------+------+--------------------------------------------------------------+</span> <span class="hljs-operator">|</span> Level <span class="hljs-operator">|</span> Code <span class="hljs-operator">|</span> Message <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">---------+------+--------------------------------------------------------------+</span> <span class="hljs-operator">|</span> Warning <span class="hljs-operator">|</span> <span class="hljs-number">1292</span> <span class="hljs-operator">|</span> Truncated incorrect max_prepared_stmt_count <span class="hljs-keyword">value</span>: <span class="hljs-string">'1048577'</span> <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">---------+------+--------------------------------------------------------------+</span> <span class="hljs-number">1</span> <span class="hljs-type">row</span> <span class="hljs-keyword">in</span> <span class="hljs-keyword">set</span> (<span class="hljs-number">0.00</span> sec) mysql<span class="hljs-operator">></span> <span class="hljs-keyword">SHOW</span> <span class="hljs-keyword">GLOBAL</span> VARIABLES <span class="hljs-keyword">LIKE</span> <span class="hljs-string">'max_prepared_stmt_count'</span>; <span class="hljs-operator">+</span><span class="hljs-comment">-------------------------+---------+</span> <span class="hljs-operator">|</span> Variable_name <span class="hljs-operator">|</span> <span class="hljs-keyword">Value</span> <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">-------------------------+---------+</span> <span class="hljs-operator">|</span> max_prepared_stmt_count <span class="hljs-operator">|</span> <span class="hljs-number">1048576</span> <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">-------------------------+---------+</span> <span class="hljs-number">1</span> <span class="hljs-type">row</span> <span class="hljs-keyword">in</span> <span class="hljs-keyword">set</span> (<span class="hljs-number">0.00</span> sec) </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre><h3 id="max_allowed_packet-span-classversion-mark从-v610-版本开始引入span" style="position:relative"><code>max_allowed_packet</code> <span class="version-mark">从 v6.1.0 版本开始引入</span><a href="#max_allowed_packet-span-classversion-mark%E4%BB%8E-v610-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="max_allowed_packet span classversion mark从 v610 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>67108864</code></li><li>取值范围:<code>[1024, 1073741824]</code></li><li>该变量取值应为 1024 的整数倍。若取值无法被 1024 整除,则会提示 warning 并向下取整。例如设置为 1025 时,则 TiDB 中的实际取值为 1024。</li><li>服务器端和客户端在一次传送数据包的过程中所允许最大的数据包大小,单位为字节。</li><li>在 <code>SESSION</code> 作用域下,该变量为只读变量。</li><li>该变量的行为与 MySQL 兼容。</li></ul><h3 id="mpp_exchange_compression_mode-span-classversion-mark从-v660-版本开始引入span" style="position:relative"><code>mpp_exchange_compression_mode</code> <span class="version-mark">从 v6.6.0 版本开始引入</span><a href="#mpp_exchange_compression_mode-span-classversion-mark%E4%BB%8E-v660-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="mpp_exchange_compression_mode span classversion mark从 v660 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>默认值:<code>UNSPECIFIED</code></li><li>可选值:<code>NONE</code>,<code>FAST</code>,<code>HIGH_COMPRESSION</code>,<code>UNSPECIFIED</code></li><li>该变量用于选择 MPP Exchange 算子的数据压缩模式,当 TiDB 选择版本号为 <code>1</code> 的 MPP 执行计划时生效。该变量值的含义如下:<ul><li><code>UNSPECIFIED</code>:表示未指定,TiDB 将自动选择压缩模式,当前 TiDB 自动选择 <code>FAST</code> 模式</li><li><code>NONE</code>:不使用数据压缩</li><li><code>FAST</code>:快速模式,整体性能较好,压缩比小于 <code>HIGH_COMPRESSION</code></li><li><code>HIGH_COMPRESSION</code>:高压缩比模式</li></ul></li></ul><h3 id="mpp_version-span-classversion-mark从-v660-版本开始引入span" style="position:relative"><code>mpp_version</code> <span class="version-mark">从 v6.6.0 版本开始引入</span><a href="#mpp_version-span-classversion-mark%E4%BB%8E-v660-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="mpp_version span classversion mark从 v660 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>默认值:<code>UNSPECIFIED</code></li><li>可选值:<code>UNSPECIFIED</code>,<code>0</code>,<code>1</code></li><li>该变量用于指定不同版本的 MPP 执行计划。指定后,TiDB 会选择指定版本的 MPP 执行计划。该变量值含义如下:<ul><li><code>UNSPECIFIED</code>:表示未指定,此时 TiDB 自动选择最新版本 <code>1</code>。</li><li><code>0</code>:兼容所有 TiDB 集群版本,MPP 版本大于 <code>0</code> 的新特性均不会生效。</li><li><code>1</code>:从 v6.6.0 版本开始引入,用于开启 TiFlash 带压缩的数据交换,详情参见 <a href="/zh/tidb/stable/explain-mpp#mpp-version-和-exchange-数据压缩">MPP Version 和 Exchange 数据压缩</a>。</li></ul></li></ul><h3 id="password_history-span-classversion-mark从-v650-版本开始引入span" style="position:relative"><code>password_history</code> <span class="version-mark">从 v6.5.0 版本开始引入</span><a href="#password_history-span-classversion-mark%E4%BB%8E-v650-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="password_history span classversion mark从 v650 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>0</code></li><li>范围:<code>[0, 4294967295]</code></li><li>该变量用于建立密码重用策略,使 TiDB 基于密码更改次数限制密码的重复使用。该变量默认值为 <code>0</code>,表示禁用基于密码更改次数的密码重用策略。当设置该变量为一个正整数 N 时,表示不允许重复使用最近 N 次使用过的密码。</li></ul><h3 id="password_reuse_interval-span-classversion-mark从-v650-版本开始引入span" style="position:relative"><code>password_reuse_interval</code> <span class="version-mark">从 v6.5.0 版本开始引入</span><a href="#password_reuse_interval-span-classversion-mark%E4%BB%8E-v650-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="password_reuse_interval span classversion mark从 v650 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>0</code></li><li>范围:<code>[0, 4294967295]</code></li><li>该变量用于建立密码重用策略,使 TiDB 基于经过时间限制密码重复使用。该变量默认值为 0,表示禁用基于密码经过时间的密码重用策略。当设置该变量为一个正整数 N 时,表示不允许重复使用最近 N 天内使用过的密码。</li></ul><h3 id="pd_enable_follower_handle_region-span-classversion-mark从-v760-版本开始引入span" style="position:relative"><code>pd_enable_follower_handle_region</code> <span class="version-mark">从 v7.6.0 版本开始引入</span><a href="#pd_enable_follower_handle_region-span-classversion-mark%E4%BB%8E-v760-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="pd_enable_follower_handle_region span classversion mark从 v760 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardError MuiAlert-standard css-kdwypz" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ErrorOutlineIcon"><path d="M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">警告</div><p><a href="/zh/tidb/stable/tune-region-performance#通过-active-pd-follower-提升-pd-region-信息查询服务的扩展能力">Active PD Follower</a> 目前为实验特性,不建议在生产环境中使用。该功能可能会在未事先通知的情况下发生变化或删除。如果发现 bug,请在 GitHub 上提 <a href="https://github.com/pingcap/tidb/issues" target="_blank" referrerpolicy="no-referrer-when-downgrade">issue</a> 反馈。</p></div></div></div><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>这个变量用于控制是否开启 Active PD Follower 特性(目前该特性只适用于处理获取 Region 信息的相关请求)。当该值为 <code>OFF</code> 时,TiDB 仅从 PD leader 获取 Region 信息。当该值为 <code>ON</code> 时,TiDB 在获取 Region 信息时会将请求均匀地发送到所有 PD 节点上,因此 PD follower 也可以处理 Region 信息请求,从而减轻 PD leader 的 CPU 压力。</li><li>适合开启 Active PD Follower 的场景:<ul><li>集群 Region 数量较多,PD leader 由于处理心跳和调度任务的开销大,导致 CPU 资源紧张。</li><li>集群中 TiDB 实例数量较多,Region 信息请求并发量较大,PD leader CPU 压力大。</li></ul></li></ul><h3 id="plugin_dir" style="position:relative"><code>plugin_dir</code><a href="#plugin_dir" aria-label="plugin_dir permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:否,仅作用于当前连接的 TiDB 实例</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>默认值:""</li><li>指定加载插件的目录。</li></ul><h3 id="plugin_load" style="position:relative"><code>plugin_load</code><a href="#plugin_load" aria-label="plugin_load permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:否,仅作用于当前连接的 TiDB 实例</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>默认值:""</li><li>指定 TiDB 启动时加载的插件,多个插件之间用逗号(,)分隔。</li></ul><h3 id="port" style="position:relative"><code>port</code><a href="#port" aria-label="port permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:NONE</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>4000</code></li><li>范围:<code>[0, 65535]</code></li><li>使用 MySQL 协议时 tidb-server 监听的端口。</li></ul><h3 id="rand_seed1" style="position:relative"><code>rand_seed1</code><a href="#rand_seed1" aria-label="rand_seed1 permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>0</code></li><li>范围:<code>[0, 2147483647]</code></li><li>该变量用于为 SQL 函数 <code>RAND()</code> 中使用的随机值生成器添加种子。</li><li>该变量的行为与 MySQL 兼容。</li></ul><h3 id="rand_seed2" style="position:relative"><code>rand_seed2</code><a href="#rand_seed2" aria-label="rand_seed2 permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>0</code></li><li>范围:<code>[0, 2147483647]</code></li><li>该变量用于为 SQL 函数 <code>RAND()</code> 中使用的随机值生成器添加种子。</li><li>该变量的行为与 MySQL 兼容。</li></ul><h3 id="require_secure_transport-span-classversion-mark从-v610-版本开始引入span" style="position:relative"><code>require_secure_transport</code> <span class="version-mark">从 v6.1.0 版本开始引入</span><a href="#require_secure_transport-span-classversion-mark%E4%BB%8E-v610-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="require_secure_transport span classversion mark从 v610 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>该变量控制是否所有 TiDB 的连接都在本地 socket 上进行通信,或使用 TLS。详情见<a href="/zh/tidb/stable/enable-tls-between-clients-and-servers">为 TiDB 客户端服务端间通信开启加密传输</a>。</li><li>该变量设置为 <code>ON</code> 时,必须使用开启 TLS 的会话连接到 TiDB,防止在 TLS 配置不正确时出现锁定的情况。</li><li>在 v6.1.0 之前这个开关通过 TiDB 配置文件 (<code>security.require-secure-transport</code>) 进行配置,升级到 v6.1.0 时会自动继承原有设置。</li><li>从 v6.5.6、v7.1.2、v7.5.1 和 v8.0.0 起,当启用了安全增强模式 (SEM) 时,禁止将 <code>security.require-secure-transport</code> 设置为 <code>ON</code>。</li></ul><h3 id="skip_name_resolve-span-classversion-mark从-v520-版本开始引入span" style="position:relative"><code>skip_name_resolve</code> <span class="version-mark">从 v5.2.0 版本开始引入</span><a href="#skip_name_resolve-span-classversion-mark%E4%BB%8E-v520-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="skip_name_resolve span classversion mark从 v520 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>该变量控制 <code>tidb-server</code> 实例是否将主机名作为连接握手的一部分来解析。</li><li>当 DNS 不可靠时,可以启用该变量来提高网络性能。</li></ul><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardInfo MuiAlert-standard css-1bzshic" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="InfoOutlinedIcon"><path d="M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">注意</div><p>当 <code>skip_name_resolve</code> 设置为 <code>ON</code> 时,身份信息中包含主机名的用户将无法登录服务器。例如:</p><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia"><span class="hljs-keyword">CREATE</span> <span class="hljs-keyword">USER</span> <span class="hljs-string">'appuser'</span>@<span class="hljs-string">'apphost'</span> IDENTIFIED <span class="hljs-keyword">BY</span> <span class="hljs-string">'app-password'</span>; </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre><p>该示例中,建议将 <code>apphost</code> 替换为 IP 地址或通配符(<code>%</code>)。</p></div></div></div><h3 id="socket" style="position:relative"><code>socket</code><a href="#socket" aria-label="socket permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:NONE</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>默认值:""</li><li>使用 MySQL 协议时,tidb-server 所监听的本地 unix 套接字文件。</li></ul><h3 id="sql_log_bin" style="position:relative"><code>sql_log_bin</code><a href="#sql_log_bin" aria-label="sql_log_bin permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>表示是否将更改写入 TiDB Binlog。</li></ul><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardInfo MuiAlert-standard css-1bzshic" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="InfoOutlinedIcon"><path d="M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">注意</div><p>不建议将 <code>sql_log_bin</code> 设置为全局变量,因为 TiDB 的未来版本可能只允许将其设置为会话变量。</p></div></div></div><h3 id="sql_mode" style="position:relative"><code>sql_mode</code><a href="#sql_mode" aria-label="sql_mode permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>默认值:<code>ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION</code></li><li>这个变量控制许多 MySQL 兼容行为。详情见 <a href="/zh/tidb/stable/sql-mode">SQL 模式</a>。</li></ul><h3 id="sql_require_primary_key-span-classversion-mark从-v630-版本开始引入span" style="position:relative"><code>sql_require_primary_key</code> <span class="version-mark">从 v6.3.0 版本开始引入</span><a href="#sql_require_primary_key-span-classversion-mark%E4%BB%8E-v630-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="sql_require_primary_key span classversion mark从 v630 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>这个变量用于控制表是否必须有主键。启用该变量后,如果在没有主键的情况下创建或修改表,将返回错误。</li><li>该功能基于 MySQL 8.0 的特性 <a href="https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_sql_require_primary_key" target="_blank" referrerpolicy="no-referrer-when-downgrade"><code>sql_require_primary_key</code></a>。</li><li>强烈推荐在使用 TiCDC 时启用该变量,因为同步数据变更至 MySQL sink 时要求表必须有主键。</li><li>如果启用了该变量,且使用了 TiDB Data Migration (DM) 来迁移数据,建议在 <a href="/zh/tidb/stable/task-configuration-file-full#完整配置文件示例">DM 任务配置文件</a>里的 <code>session</code> 中添加该系统变量 <code>sql_require_primary_key</code> 并设置为 <code>OFF</code>,否则会导致 DM 任务创建失败。</li></ul><h3 id="sql_select_limit-span-classversion-mark从-v402-版本开始引入span" style="position:relative"><code>sql_select_limit</code> <span class="version-mark">从 v4.0.2 版本开始引入</span><a href="#sql_select_limit-span-classversion-mark%E4%BB%8E-v402-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="sql_select_limit span classversion mark从 v402 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>18446744073709551615</code></li><li>范围:<code>[0, 18446744073709551615]</code></li><li>单位:行</li><li><code>SELECT</code> 语句返回的最大行数。</li></ul><h3 id="ssl_ca" style="position:relative"><code>ssl_ca</code><a href="#ssl_ca" aria-label="ssl_ca permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:NONE</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>默认值:""</li><li>证书颁发机构 (CA) 文件的位置。若文件不存在,则变量值为空。该变量的值由 TiDB 配置项 <a href="/zh/tidb/stable/tidb-configuration-file#ssl-ca"><code>ssl-ca</code></a> 定义。</li></ul><h3 id="ssl_cert" style="position:relative"><code>ssl_cert</code><a href="#ssl_cert" aria-label="ssl_cert permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:NONE</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>默认值:""</li><li>用于 SSL/TLS 连接的证书文件的位置。若文件不存在,则变量值为空。该变量的值由 TiDB 配置项 <a href="/zh/tidb/stable/tidb-configuration-file#ssl-cert"><code>ssl-cert</code></a> 定义。</li></ul><h3 id="ssl_key" style="position:relative"><code>ssl_key</code><a href="#ssl_key" aria-label="ssl_key permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:NONE</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>默认值:""</li><li>用于 SSL/TLS 连接的私钥文件的位置。若文件不存在,则变量值为空。该变量的值由 TiDB 配置项 <a href="/zh/tidb/stable/tidb-configuration-file#ssl-cert"><code>ssl-key</code></a> 定义。</li></ul><h3 id="system_time_zone" style="position:relative"><code>system_time_zone</code><a href="#system_time_zone" aria-label="system_time_zone permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:NONE</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>默认值:(随系统)</li><li>该变量显示首次引导启动 TiDB 时的系统时区。另请参阅 <a href="#time_zone"><code>time_zone</code></a>。</li></ul><h3 id="tidb_adaptive_closest_read_threshold-span-classversion-mark从-v630-版本开始引入span" style="position:relative"><code>tidb_adaptive_closest_read_threshold</code> <span class="version-mark">从 v6.3.0 版本开始引入</span><a href="#tidb_adaptive_closest_read_threshold-span-classversion-mark%E4%BB%8E-v630-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_adaptive_closest_read_threshold span classversion mark从 v630 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>4096</code></li><li>取值范围:<code>[0, 9223372036854775807]</code></li><li>单位:字节</li><li>这个变量用于控制当 <a href="#tidb_replica_read-%E4%BB%8E-v40-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5"><code>replica-read</code></a> 设置为 <code>closest-adaptive</code> 时,优先将读请求发送至 TiDB server 所在区域副本的阈值。当读请求预估的返回结果的大小超过此阈值时,TiDB 会将读请求优先发送至同一可用区的副本,否则会发送至 leader 副本。</li></ul><h3 id="tidb_allow_tiflash_cop-span-classversion-mark从-v730-版本开始引入span" style="position:relative"><code>tidb_allow_tiflash_cop</code> <span class="version-mark">从 v7.3.0 版本开始引入</span><a href="#tidb_allow_tiflash_cop-span-classversion-mark%E4%BB%8E-v730-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_allow_tiflash_cop span classversion mark从 v730 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li><p>作用域:SESSION | GLOBAL</p></li><li><p>是否持久化到集群:是</p></li><li><p>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</p></li><li><p>类型:布尔型</p></li><li><p>默认值:<code>OFF</code></p></li><li><p>当 TiDB 给 TiFlash 下推计算任务时,有三种方法(或协议)可供选择:Cop、BatchCop 和 MPP。相比于 Cop 和 BatchCop,MPP 协议更加成熟,提供更好的任务和资源管理。因此,更推荐使用 MPP 协议。</p><ul><li><code>0</code> 或 <code>OFF</code>:优化器仅生成使用 TiFlash MPP 协议的计划。</li><li><code>1</code> 或 <code>ON</code>:优化器根据成本估算从 Cop、BatchCop 和 MPP 协议中选择一个用于生成执行计划。</li></ul></li></ul><h3 id="tidb_allow_batch_cop-span-classversion-mark从-v40-版本开始引入span" style="position:relative"><code>tidb_allow_batch_cop</code> <span class="version-mark">从 v4.0 版本开始引入</span><a href="#tidb_allow_batch_cop-span-classversion-mark%E4%BB%8E-v40-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_allow_batch_cop span classversion mark从 v40 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li><p>作用域:SESSION | GLOBAL</p></li><li><p>是否持久化到集群:是</p></li><li><p>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</p></li><li><p>类型:整数型</p></li><li><p>默认值:<code>1</code></p></li><li><p>范围:<code>[0, 2]</code></p></li><li><p>这个变量用于控制 TiDB 向 TiFlash 发送 coprocessor 请求的方式,有以下几种取值:</p><ul><li>0:从不批量发送请求</li><li>1:aggregation 和 join 的请求会进行批量发送</li><li>2:所有的 cop 请求都会批量发送</li></ul></li></ul><h3 id="tidb_allow_fallback_to_tikv-span-classversion-mark从-v50-版本开始引入span" style="position:relative"><code>tidb_allow_fallback_to_tikv</code> <span class="version-mark">从 v5.0 版本开始引入</span><a href="#tidb_allow_fallback_to_tikv-span-classversion-mark%E4%BB%8E-v50-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_allow_fallback_to_tikv span classversion mark从 v50 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>默认值:""</li><li>这个变量表示将 TiKV 作为备用存储引擎的存储引擎列表。当该列表中的存储引擎发生故障导致 SQL 语句执行失败时,TiDB 会使用 TiKV 作为存储引擎再次执行该 SQL 语句。目前支持设置该变量为 "" 或者 "tiflash"。如果设置该变量为 "tiflash",当 TiFlash 返回超时错误(对应的错误码为 ErrTiFlashServerTimeout)时,TiDB 会使用 TiKV 作为存储引擎再次执行该 SQL 语句。</li></ul><h3 id="tidb_allow_function_for_expression_index-span-classversion-mark从-v520-版本开始引入span" style="position:relative"><code>tidb_allow_function_for_expression_index</code> <span class="version-mark">从 v5.2.0 版本开始引入</span><a href="#tidb_allow_function_for_expression_index-span-classversion-mark%E4%BB%8E-v520-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_allow_function_for_expression_index span classversion mark从 v520 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:NONE</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>默认值:<code>json_array, json_array_append, json_array_insert, json_contains, json_contains_path, json_depth, json_extract, json_insert, json_keys, json_length, json_merge_patch, json_merge_preserve, json_object, json_pretty, json_quote, json_remove, json_replace, json_search, json_set, json_storage_size, json_type, json_unquote, json_valid, lower, md5, reverse, tidb_shard, upper, vitess_hash</code></li><li>这个只读变量用于显示创建<a href="/zh/tidb/stable/sql-statement-create-index#表达式索引">表达式索引</a>所允许使用的函数。</li></ul><h3 id="tidb_allow_mpp-span-classversion-mark从-v50-版本开始引入span" style="position:relative"><code>tidb_allow_mpp</code> <span class="version-mark">从 v5.0 版本开始引入</span><a href="#tidb_allow_mpp-span-classversion-mark%E4%BB%8E-v50-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_allow_mpp span classversion mark从 v50 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>这个变量用于控制是否使用 TiFlash 的 MPP 模式执行查询,可以设置的值包括:<ul><li><code>0</code> 或 <code>OFF</code>,代表从不使用 MPP 模式。如果在 v7.3.0 及之后的版本将该变量值设置为 <code>0</code> 或 <code>OFF</code>,你需要同时开启 <a href="/zh/tidb/stable/system-variables#tidb_allow_tiflash_cop-从-v730-版本开始引入"><code>tidb_allow_tiflash_cop</code></a> 变量,否则可能遇到查询报错。</li><li><code>1</code> 或 <code>ON</code>,代表由优化器根据代价估算选择是否使用 MPP 模式(默认)。</li></ul></li></ul><p>MPP 是 TiFlash 引擎提供的分布式计算框架,允许节点之间的数据交换并提供高性能、高吞吐的 SQL 算法。MPP 模式选择的详细说明参见<a href="/zh/tidb/stable/use-tiflash-mpp-mode#控制是否选择-mpp-模式">控制是否选择 MPP 模式</a>。</p><h3 id="tidb_allow_remove_auto_inc-span-classversion-mark从-v2118-和-v304-版本开始引入span" style="position:relative"><code>tidb_allow_remove_auto_inc</code> <span class="version-mark">从 v2.1.18 和 v3.0.4 版本开始引入</span><a href="#tidb_allow_remove_auto_inc-span-classversion-mark%E4%BB%8E-v2118-%E5%92%8C-v304-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_allow_remove_auto_inc span classversion mark从 v2118 和 v304 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>这个变量用来控制是否允许通过 <code>ALTER TABLE MODIFY</code> 或 <code>ALTER TABLE CHANGE</code> 来移除某个列的 <code>AUTO_INCREMENT</code> 属性。默认 (<code>OFF</code>) 为不允许。</li></ul><h3 id="tidb_analyze_distsql_scan_concurrency-span-classversion-mark从-v760-版本开始引入span" style="position:relative"><code>tidb_analyze_distsql_scan_concurrency</code> <span class="version-mark">从 v7.6.0 版本开始引入</span><a href="#tidb_analyze_distsql_scan_concurrency-span-classversion-mark%E4%BB%8E-v760-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_analyze_distsql_scan_concurrency span classversion mark从 v760 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>4</code></li><li>范围:<code>[1, 4294967295]</code></li><li>这个变量用来设置执行 <code>ANALYZE</code> 时 <code>scan</code> 操作的并发度。</li></ul><h3 id="tidb_analyze_partition_concurrency" style="position:relative"><code>tidb_analyze_partition_concurrency</code><a href="#tidb_analyze_partition_concurrency" aria-label="tidb_analyze_partition_concurrency permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>默认值:<code>2</code>。TiDB v7.4.0 及其之前版本默认值为 <code>1</code>。</li><li>这个变量用于 TiDB analyze 分区表时,对分区表统计信息进行读写的并发度。</li></ul><h3 id="tidb_analyze_version-span-classversion-mark从-v510-版本开始引入span" style="position:relative"><code>tidb_analyze_version</code> <span class="version-mark">从 v5.1.0 版本开始引入</span><a href="#tidb_analyze_version-span-classversion-mark%E4%BB%8E-v510-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_analyze_version span classversion mark从 v510 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>2</code></li><li>范围:<code>[1, 2]</code></li><li>这个变量用于控制 TiDB 收集统计信息的行为。</li><li>在 v5.3.0 及之后的版本中,该变量的默认值为 <code>2</code>,具体可参照<a href="/zh/tidb/stable/statistics">常规统计信息</a>文档。如果从 v5.3.0 之前版本的集群升级至 v5.3.0 及之后的版本,<code>tidb_analyze_version</code> 的默认值不发生变化。</li></ul><h3 id="tidb_analyze_skip_column_types-span-classversion-mark从-v720-版本开始引入span" style="position:relative"><code>tidb_analyze_skip_column_types</code> <span class="version-mark">从 v7.2.0 版本开始引入</span><a href="#tidb_analyze_skip_column_types-span-classversion-mark%E4%BB%8E-v720-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_analyze_skip_column_types span classversion mark从 v720 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>默认值:"json,blob,mediumblob,longblob"</li><li>可选值:"json,blob,mediumblob,longblob,text,mediumtext,longtext"</li><li>这个变量表示在执行 <code>ANALYZE</code> 命令收集统计信息时,跳过哪些类型的列的统计信息收集。该变量仅适用于 <a href="#tidb_analyze_version-%E4%BB%8E-v510-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5"><code>tidb_analyze_version = 2</code></a> 的情况。即使使用 <code>ANALYZE TABLE t COLUMNS c1, ..., cn</code> 语法指定列,如果指定的列的类型在 <code>tidb_analyze_skip_column_types</code> 中,也不会收集该列的统计信息。</li></ul><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia">mysql<span class="hljs-operator">></span> <span class="hljs-keyword">SHOW</span> <span class="hljs-keyword">CREATE</span> <span class="hljs-keyword">TABLE</span> t; <span class="hljs-operator">+</span><span class="hljs-comment">-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+</span> <span class="hljs-operator">|</span> <span class="hljs-keyword">Table</span> <span class="hljs-operator">|</span> <span class="hljs-keyword">Create</span> <span class="hljs-keyword">Table</span> <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+</span> <span class="hljs-operator">|</span> t <span class="hljs-operator">|</span> <span class="hljs-keyword">CREATE</span> <span class="hljs-keyword">TABLE</span> `t` ( `a` <span class="hljs-type">int</span>(<span class="hljs-number">11</span>) <span class="hljs-keyword">DEFAULT</span> <span class="hljs-keyword">NULL</span>, `b` <span class="hljs-type">varchar</span>(<span class="hljs-number">10</span>) <span class="hljs-keyword">DEFAULT</span> <span class="hljs-keyword">NULL</span>, `c` json <span class="hljs-keyword">DEFAULT</span> <span class="hljs-keyword">NULL</span>, `d` <span class="hljs-type">blob</span> <span class="hljs-keyword">DEFAULT</span> <span class="hljs-keyword">NULL</span>, `e` longblob <span class="hljs-keyword">DEFAULT</span> <span class="hljs-keyword">NULL</span> ) ENGINE<span class="hljs-operator">=</span>InnoDB <span class="hljs-keyword">DEFAULT</span> CHARSET<span class="hljs-operator">=</span>utf8mb4 <span class="hljs-keyword">COLLATE</span><span class="hljs-operator">=</span>utf8mb4_bin <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+</span> <span class="hljs-number">1</span> <span class="hljs-type">row</span> <span class="hljs-keyword">in</span> <span class="hljs-keyword">set</span> (<span class="hljs-number">0.00</span> sec) mysql<span class="hljs-operator">></span> <span class="hljs-keyword">SELECT</span> @<span class="hljs-variable">@tidb</span>_analyze_skip_column_types; <span class="hljs-operator">+</span><span class="hljs-comment">----------------------------------+</span> <span class="hljs-operator">|</span> @<span class="hljs-variable">@tidb</span>_analyze_skip_column_types <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">----------------------------------+</span> <span class="hljs-operator">|</span> json,<span class="hljs-type">blob</span>,mediumblob,longblob <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">----------------------------------+</span> <span class="hljs-number">1</span> <span class="hljs-type">row</span> <span class="hljs-keyword">in</span> <span class="hljs-keyword">set</span> (<span class="hljs-number">0.00</span> sec) mysql<span class="hljs-operator">></span> ANALYZE <span class="hljs-keyword">TABLE</span> t; Query OK, <span class="hljs-number">0</span> <span class="hljs-keyword">rows</span> affected, <span class="hljs-number">1</span> warning (<span class="hljs-number">0.05</span> sec) mysql<span class="hljs-operator">></span> <span class="hljs-keyword">SELECT</span> job_info <span class="hljs-keyword">FROM</span> mysql.analyze_jobs <span class="hljs-keyword">ORDER</span> <span class="hljs-keyword">BY</span> end_time <span class="hljs-keyword">DESC</span> LIMIT <span class="hljs-number">1</span>; <span class="hljs-operator">+</span><span class="hljs-comment">---------------------------------------------------------------------+</span> <span class="hljs-operator">|</span> job_info <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">---------------------------------------------------------------------+</span> <span class="hljs-operator">|</span> analyze <span class="hljs-keyword">table</span> columns a, b <span class="hljs-keyword">with</span> <span class="hljs-number">256</span> buckets, <span class="hljs-number">500</span> topn, <span class="hljs-number">1</span> samplerate <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">---------------------------------------------------------------------+</span> <span class="hljs-number">1</span> <span class="hljs-type">row</span> <span class="hljs-keyword">in</span> <span class="hljs-keyword">set</span> (<span class="hljs-number">0.00</span> sec) mysql<span class="hljs-operator">></span> ANALYZE <span class="hljs-keyword">TABLE</span> t COLUMNS a, c; Query OK, <span class="hljs-number">0</span> <span class="hljs-keyword">rows</span> affected, <span class="hljs-number">1</span> warning (<span class="hljs-number">0.04</span> sec) mysql<span class="hljs-operator">></span> <span class="hljs-keyword">SELECT</span> job_info <span class="hljs-keyword">FROM</span> mysql.analyze_jobs <span class="hljs-keyword">ORDER</span> <span class="hljs-keyword">BY</span> end_time <span class="hljs-keyword">DESC</span> LIMIT <span class="hljs-number">1</span>; <span class="hljs-operator">+</span><span class="hljs-comment">------------------------------------------------------------------+</span> <span class="hljs-operator">|</span> job_info <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">------------------------------------------------------------------+</span> <span class="hljs-operator">|</span> analyze <span class="hljs-keyword">table</span> columns a <span class="hljs-keyword">with</span> <span class="hljs-number">256</span> buckets, <span class="hljs-number">500</span> topn, <span class="hljs-number">1</span> samplerate <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">------------------------------------------------------------------+</span> <span class="hljs-number">1</span> <span class="hljs-type">row</span> <span class="hljs-keyword">in</span> <span class="hljs-keyword">set</span> (<span class="hljs-number">0.00</span> sec) </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre><h3 id="tidb_auto_analyze_end_time" style="position:relative"><code>tidb_auto_analyze_end_time</code><a href="#tidb_auto_analyze_end_time" aria-label="tidb_auto_analyze_end_time permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li><p>作用域:GLOBAL</p></li><li><p>是否持久化到集群:是</p></li><li><p>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</p></li><li><p>类型:时间</p></li><li><p>默认值:<code>23:59 +0000</code></p></li><li><p>这个变量用来设置一天中允许自动 ANALYZE 更新统计信息的结束时间。例如,只允许在 UTC 时间的凌晨 1:00 至 3:00 之间自动更新统计信息,可以设置如下:</p><ul><li><code>tidb_auto_analyze_start_time='01:00 +0000'</code></li><li><code>tidb_auto_analyze_end_time='03:00 +0000'</code></li></ul></li></ul><h3 id="tidb_auto_analyze_partition_batch_size-span-classversion-mark从-v640-版本开始引入span" style="position:relative"><code>tidb_auto_analyze_partition_batch_size</code> <span class="version-mark">从 v6.4.0 版本开始引入</span><a href="#tidb_auto_analyze_partition_batch_size-span-classversion-mark%E4%BB%8E-v640-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_auto_analyze_partition_batch_size span classversion mark从 v640 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>默认值:<code>128</code>。对于 TiDB v7.6.0 之前的版本,默认值为 <code>1</code>。</li><li>范围:<code>[1, 1024]</code></li><li>用于设置 TiDB <a href="/zh/tidb/stable/statistics#自动更新">自动 analyze</a> 分区表(即自动收集分区表上的统计信息)时,每次同时 analyze 分区的个数。</li><li>若该变量值小于分区表的分区数,则 TiDB 会分多批自动 analyze 该分区表的所有分区。若该变量值大于等于分区表的分区数,则 TiDB 会同时 analyze 该分区表的所有分区。</li><li>若分区表个数远大于该变量值,且自动 analyze 花费时间较长,可调大该参数的值以减少耗时。</li></ul><h3 id="tidb_auto_analyze_ratio" style="position:relative"><code>tidb_auto_analyze_ratio</code><a href="#tidb_auto_analyze_ratio" aria-label="tidb_auto_analyze_ratio permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:浮点数</li><li>默认值:<code>0.5</code></li><li>范围:<code>(0, 1]</code>,v8.0.0 及之前版本范围为 <code>[0, 18446744073709551615]</code>。</li><li>这个变量用来设置 TiDB 在后台自动执行 <a href="/zh/tidb/stable/sql-statement-analyze-table"><code>ANALYZE TABLE</code></a> 更新统计信息的阈值。<code>0.5</code> 指的是当表中超过 50% 的行被修改时,触发自动 ANALYZE 更新。可以指定 <code>tidb_auto_analyze_start_time</code> 和 <code>tidb_auto_analyze_end_time</code> 来限制自动 ANALYZE 的时间。</li></ul><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardInfo MuiAlert-standard css-1bzshic" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="InfoOutlinedIcon"><path d="M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">注意</div><p>当系统变量 <code>tidb_enable_auto_analyze</code> 设置为 <code>ON</code> 时,TiDB 才会触发 <code>auto_analyze</code>。</p></div></div></div><h3 id="tidb_auto_analyze_start_time" style="position:relative"><code>tidb_auto_analyze_start_time</code><a href="#tidb_auto_analyze_start_time" aria-label="tidb_auto_analyze_start_time permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li><p>作用域:GLOBAL</p></li><li><p>是否持久化到集群:是</p></li><li><p>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</p></li><li><p>类型:时间</p></li><li><p>默认值:<code>00:00 +0000</code></p></li><li><p>这个变量用来设置一天中允许自动 ANALYZE 更新统计信息的开始时间。例如,只允许在 UTC 时间的凌晨 1:00 至 3:00 之间自动更新统计信息,可以设置如下:</p><ul><li><code>tidb_auto_analyze_start_time='01:00 +0000'</code></li><li><code>tidb_auto_analyze_end_time='03:00 +0000'</code></li></ul></li></ul><h3 id="tidb_auto_build_stats_concurrency-span-classversion-mark从-v650-版本开始引入span" style="position:relative"><code>tidb_auto_build_stats_concurrency</code> <span class="version-mark">从 v6.5.0 版本开始引入</span><a href="#tidb_auto_build_stats_concurrency-span-classversion-mark%E4%BB%8E-v650-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_auto_build_stats_concurrency span classversion mark从 v650 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>1</code></li><li>范围:<code>[1, 256]</code></li><li>这个变量用来设置执行统计信息自动更新的并发度。</li></ul><h3 id="tidb_backoff_lock_fast" style="position:relative"><code>tidb_backoff_lock_fast</code><a href="#tidb_backoff_lock_fast" aria-label="tidb_backoff_lock_fast permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>10</code></li><li>范围:<code>[1, 2147483647]</code></li><li>这个变量用来设置读请求遇到锁的 backoff 时间。</li></ul><h3 id="tidb_backoff_weight" style="position:relative"><code>tidb_backoff_weight</code><a href="#tidb_backoff_weight" aria-label="tidb_backoff_weight permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li><p>作用域:SESSION | GLOBAL</p></li><li><p>是否持久化到集群:是</p></li><li><p>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</p></li><li><p>类型:整数型</p></li><li><p>默认值:<code>2</code></p></li><li><p>范围:<code>[0, 2147483647]</code></p></li><li><p>这个变量用来给 TiDB 的 <code>backoff</code> 最大时间增加权重,即内部遇到网络或其他组件 (TiKV, PD) 故障时,发送重试请求的最大重试时间。可以通过这个变量来调整最大重试时间,最小值为 1。</p><p> 例如,TiDB 向 PD 取 TSO 的基础超时时间是 15 秒,当 <code>tidb_backoff_weight = 2</code> 时,取 TSO 的最大超时时间为:基础时间 <!-- -->*<!-- --> 2 等于 30 秒。</p><p> 在网络环境较差的情况下,适当增大该变量值可以有效缓解因为超时而向应用端报错的情况;而如果应用端希望更快地接到报错信息,则应该尽量减小该变量的值。</p></li></ul><h3 id="tidb_batch_commit" style="position:relative"><code>tidb_batch_commit</code><a href="#tidb_batch_commit" aria-label="tidb_batch_commit permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardError MuiAlert-standard css-kdwypz" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ErrorOutlineIcon"><path d="M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">警告</div><p><strong>不建议</strong>开启此变量。</p></div></div></div><ul><li>作用域:SESSION</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>该变量控制是否启用已废弃的 batch-commit 特性。当该变量开启时,事务可能会通过分组一些语句被拆分为多个事务,并被非原子地提交。不推荐使用这种方式。</li></ul><h3 id="tidb_batch_delete" style="position:relative"><code>tidb_batch_delete</code><a href="#tidb_batch_delete" aria-label="tidb_batch_delete permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardError MuiAlert-standard css-kdwypz" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ErrorOutlineIcon"><path d="M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">警告</div><p>该变量与废弃的 batch-dml 特性相关,可能会导致数据损坏。因此,不建议开启该变量来使用 batch-dml。作为替代,请使用<a href="/zh/tidb/stable/non-transactional-dml">非事务 DML 语句</a>。</p></div></div></div><ul><li>作用域:SESSION</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>该变量控制是否启用已废弃的 batch-dml 特性中的 batch-delete 特性。当该变量开启时,<code>DELETE</code> 语句可能会被拆分为多个事务,并被非原子地提交。要使该特性生效,还需要开启 <code>tidb_enable_batch_dml</code> 并将 <code>tidb_dml_batch_size</code> 的值设置为正数。不推荐使用这种方式。</li></ul><h3 id="tidb_batch_insert" style="position:relative"><code>tidb_batch_insert</code><a href="#tidb_batch_insert" aria-label="tidb_batch_insert permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardError MuiAlert-standard css-kdwypz" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ErrorOutlineIcon"><path d="M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">警告</div><p>该变量与废弃的 batch-dml 特性相关,可能会导致数据损坏。因此,不建议开启该变量来使用 batch-dml。作为替代,请使用<a href="/zh/tidb/stable/non-transactional-dml">非事务 DML 语句</a>。</p></div></div></div><ul><li>作用域:SESSION</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>该变量控制是否启用已废弃的 batch-dml 特性中的 batch-insert 特性。当该变量开启时,<code>INSERT</code> 语句可能会被拆分为多个事务,并被非原子地提交。要使该特性生效,还需要开启 <code>tidb_enable_batch_dml</code> 并将 <code>tidb_dml_batch_size</code> 的值设置为正数。不推荐使用这种方式。</li></ul><h3 id="tidb_batch_pending_tiflash_count-span-classversion-mark从-v60-版本开始引入span" style="position:relative"><code>tidb_batch_pending_tiflash_count</code> <span class="version-mark">从 v6.0 版本开始引入</span><a href="#tidb_batch_pending_tiflash_count-span-classversion-mark%E4%BB%8E-v60-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_batch_pending_tiflash_count span classversion mark从 v60 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>4000</code></li><li>范围:<code>[0, 4294967295]</code></li><li>使用 <code>ALTER DATABASE SET TIFLASH REPLICA</code> 语句为 TiFlash 添加副本时,能容许的不可用表的个数上限。如果超过该上限,则会停止或者以非常慢的速度为库中的剩余表设置 TiFlash 副本。</li></ul><h3 id="tidb_broadcast_join_threshold_count-span-classversion-mark从-v50-版本开始引入span" style="position:relative"><code>tidb_broadcast_join_threshold_count</code> <span class="version-mark">从 v5.0 版本开始引入</span><a href="#tidb_broadcast_join_threshold_count-span-classversion-mark%E4%BB%8E-v50-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_broadcast_join_threshold_count span classversion mark从 v50 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:整数型</li><li>默认值:<code>10240</code></li><li>范围:<code>[0, 9223372036854775807]</code></li><li>单位:行</li><li>如果 join 的对象为子查询,优化器无法估计子查询结果集大小,在这种情况下通过结果集行数判断。如果子查询的行数估计值小于该变量,则选择 Broadcast Hash Join 算法。否则选择 Shuffled Hash Join 算法。</li><li>开启 <a href="/zh/tidb/stable/system-variables#tidb_prefer_broadcast_join_by_exchange_data_size-从-v710-版本开始引入"><code>tidb_prefer_broadcast_join_by_exchange_data_size</code></a> 功能后,该变量将不再生效。</li></ul><h3 id="tidb_broadcast_join_threshold_size-span-classversion-mark从-v50-版本开始引入span" style="position:relative"><code>tidb_broadcast_join_threshold_size</code> <span class="version-mark">从 v5.0 版本开始引入</span><a href="#tidb_broadcast_join_threshold_size-span-classversion-mark%E4%BB%8E-v50-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_broadcast_join_threshold_size span classversion mark从 v50 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:整数型</li><li>默认值:<code>104857600</code> (100 MiB)</li><li>范围:<code>[0, 9223372036854775807]</code></li><li>单位:字节</li><li>如果表大小(字节数)小于该值,则选择 Broadcast Hash Join 算法。否则选择 Shuffled Hash Join 算法。</li><li>开启 <a href="/zh/tidb/stable/system-variables#tidb_prefer_broadcast_join_by_exchange_data_size-从-v710-版本开始引入"><code>tidb_prefer_broadcast_join_by_exchange_data_size</code></a> 功能后,该变量将不再生效。</li></ul><h3 id="tidb_build_stats_concurrency" style="position:relative"><code>tidb_build_stats_concurrency</code><a href="#tidb_build_stats_concurrency" aria-label="tidb_build_stats_concurrency permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>单位:线程</li><li>默认值:<code>2</code>。TiDB v7.4.0 及其之前版本默认值为 <code>4</code>。</li><li>取值范围:<code>[1, 256]</code></li><li>这个变量用来设置 ANALYZE 语句执行时并发度。</li><li>当这个变量被设置得更大时,会对其它的查询语句执行性能产生一定影响。</li></ul><h3 id="tidb_build_sampling_stats_concurrency-span-classversion-mark从-v750-版本开始引入span" style="position:relative"><code>tidb_build_sampling_stats_concurrency</code> <span class="version-mark">从 v7.5.0 版本开始引入</span><a href="#tidb_build_sampling_stats_concurrency-span-classversion-mark%E4%BB%8E-v750-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_build_sampling_stats_concurrency span classversion mark从 v750 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>单位:线程</li><li>默认值:<code>2</code></li><li>取值范围:<code>[1, 256]</code></li><li>这个变量用来设置 <code>ANALYZE</code> 过程中的采样并发度。</li><li>当这个变量被设置得更大时,会对其它的查询语句执行性能产生一定影响。</li></ul><h3 id="tidb_capture_plan_baselines-span-classversion-mark从-v40-版本开始引入span" style="position:relative"><code>tidb_capture_plan_baselines</code> <span class="version-mark">从 v4.0 版本开始引入</span><a href="#tidb_capture_plan_baselines-span-classversion-mark%E4%BB%8E-v40-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_capture_plan_baselines span classversion mark从 v40 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>这个变量用于控制是否开启<a href="/zh/tidb/stable/sql-plan-management#自动捕获绑定-baseline-capturing">自动捕获绑定</a>功能。该功能依赖 Statement Summary,因此在使用自动绑定之前需打开 Statement Summary 开关。</li><li>开启该功能后会定期遍历一次 Statement Summary 中的历史 SQL 语句,并为至少出现两次的 SQL 语句自动创建绑定。</li></ul><h3 id="tidb_cdc_write_source-span-classversion-mark从-v650-版本开始引入span" style="position:relative"><code>tidb_cdc_write_source</code> <span class="version-mark">从 v6.5.0 版本开始引入</span><a href="#tidb_cdc_write_source-span-classversion-mark%E4%BB%8E-v650-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_cdc_write_source span classversion mark从 v650 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION</li><li>是否持久化到集群:否</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值: <code>0</code></li><li>范围:<code>[0, 15]</code></li><li>当变量非 <code>0</code> 时,该 SESSION 写入的数据将被视为是由 TiCDC 写入的。这个变量仅由 TiCDC 设置,任何时候都不应该手动调整该变量。</li></ul><h3 id="tidb_check_mb4_value_in_utf8" style="position:relative"><code>tidb_check_mb4_value_in_utf8</code><a href="#tidb_check_mb4_value_in_utf8" aria-label="tidb_check_mb4_value_in_utf8 permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:否,仅作用于当前连接的 TiDB 实例</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>设置该变量为 <code>ON</code> 可强制只存储<a href="https://zh.wikipedia.org/zh-hans/Unicode字符平面映射" target="_blank" referrerpolicy="no-referrer-when-downgrade">基本多文种平面 (BMP)</a> 编码区段内的 <code>utf8</code> 字符值。若要存储 BMP 区段外的 <code>utf8</code> 值,推荐使用 <code>utf8mb4</code> 字符集。</li><li>早期版本的 TiDB 中 (v2.1.x),<code>utf8</code> 检查更为宽松。如果你的 TiDB 集群是从早期版本升级的,推荐关闭该变量,详情参阅<a href="/zh/tidb/stable/upgrade-faq">升级与升级后常见问题</a>。</li></ul><h3 id="tidb_committer_concurrency-span-classversion-mark从-v610-版本开始引入span" style="position:relative"><code>tidb_committer_concurrency</code> <span class="version-mark">从 v6.1.0 版本开始引入</span><a href="#tidb_committer_concurrency-span-classversion-mark%E4%BB%8E-v610-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_committer_concurrency span classversion mark从 v610 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>128</code></li><li>范围:<code>[1, 10000]</code></li><li>在单个事务的提交阶段,用于执行提交操作相关请求的 goroutine 数量。</li><li>若提交的事务过大,事务提交时的流控队列等待耗时可能会过长。此时,可以通过调大该配置项来加速提交。</li><li>在 v6.1.0 之前这个开关通过 TiDB 配置文件 (<code>performance.committer-concurrency</code>) 进行配置,升级到 v6.1.0 时会自动继承原有设置。</li></ul><h3 id="tidb_checksum_table_concurrency" style="position:relative"><code>tidb_checksum_table_concurrency</code><a href="#tidb_checksum_table_concurrency" aria-label="tidb_checksum_table_concurrency permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>4</code></li><li>取值范围:<code>[1, 256]</code></li><li>单位:线程</li><li>这个变量用来设置 <a href="/zh/tidb/stable/sql-statement-admin-checksum-table"><code>ADMIN CHECKSUM TABLE</code></a> 语句执行时扫描索引的并发度。当这个变量被设置得更大时,会对其它的查询语句执行性能产生一定影响。</li></ul><h3 id="tidb_config" style="position:relative"><code>tidb_config</code><a href="#tidb_config" aria-label="tidb_config permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:否,仅作用于当前连接的 TiDB 实例</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>默认值:""</li><li>这个变量是一个只读变量,用来获取当前 TiDB Server 的配置信息。</li></ul><h3 id="tidb_constraint_check_in_place" style="position:relative"><code>tidb_constraint_check_in_place</code><a href="#tidb_constraint_check_in_place" aria-label="tidb_constraint_check_in_place permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li><p>作用域:SESSION | GLOBAL</p></li><li><p>是否持久化到集群:是</p></li><li><p>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</p></li><li><p>类型:布尔型</p></li><li><p>默认值:<code>OFF</code></p></li><li><p>该变量仅适用于乐观事务模型。悲观事务模式中的行为由 <a href="#tidb_constraint_check_in_place_pessimistic-%E4%BB%8E-v630-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5"><code>tidb_constraint_check_in_place_pessimistic</code></a> 控制。</p></li><li><p>当这个变量设置为 <code>OFF</code> 时,唯一索引的重复值检查会被推迟到事务提交时才进行。这有助于提高性能,但对于某些应用,可能导致非预期的行为。详情见<a href="/zh/tidb/stable/constraints#乐观事务">约束</a>。</p><ul><li><p>乐观事务模型下将 <code>tidb_constraint_check_in_place</code> 设置为 <code>OFF</code>:</p><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia"><span class="hljs-keyword">create</span> <span class="hljs-keyword">table</span> t (i <span class="hljs-type">int</span> key); <span class="hljs-keyword">insert</span> <span class="hljs-keyword">into</span> t <span class="hljs-keyword">values</span> (<span class="hljs-number">1</span>); <span class="hljs-keyword">begin</span> optimistic; <span class="hljs-keyword">insert</span> <span class="hljs-keyword">into</span> t <span class="hljs-keyword">values</span> (<span class="hljs-number">1</span>); </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre><pre><code class="hljs language-plaintext"><div class="MuiBox-root css-1qhimia">Query OK, 1 row affected </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia">tidb<span class="hljs-operator">></span> <span class="hljs-keyword">commit</span>; <span class="hljs-comment">-- 事务提交时才检查</span> </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre><pre><code class="hljs language-plaintext"><div class="MuiBox-root css-1qhimia">ERROR 1062 : Duplicate entry '1' for key 't.PRIMARY' </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre></li><li><p>乐观事务模型下将 <code>tidb_constraint_check_in_place</code> 设置为 <code>ON</code>:</p><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia"><span class="hljs-keyword">set</span> @<span class="hljs-variable">@tidb</span>_constraint_check_in_place<span class="hljs-operator">=</span><span class="hljs-keyword">ON</span>; <span class="hljs-keyword">begin</span> optimistic; <span class="hljs-keyword">insert</span> <span class="hljs-keyword">into</span> t <span class="hljs-keyword">values</span> (<span class="hljs-number">1</span>); </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre><pre><code class="hljs language-plaintext"><div class="MuiBox-root css-1qhimia">ERROR 1062 : Duplicate entry '1' for key 't.PRIMARY' </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre></li></ul></li></ul><h3 id="tidb_constraint_check_in_place_pessimistic-span-classversion-mark从-v630-版本开始引入span" style="position:relative"><code>tidb_constraint_check_in_place_pessimistic</code> <span class="version-mark">从 v6.3.0 版本开始引入</span><a href="#tidb_constraint_check_in_place_pessimistic-span-classversion-mark%E4%BB%8E-v630-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_constraint_check_in_place_pessimistic span classversion mark从 v630 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li><p>作用域:SESSION</p></li><li><p>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</p></li><li><p>类型:布尔型</p></li><li><p>默认值:当配置项 <a href="/zh/tidb/stable/tidb-configuration-file#constraint-check-in-place-pessimistic-从-v640-版本开始引入"><code>pessimistic-txn.constraint-check-in-place-pessimistic</code></a> 为默认值 <code>true</code> 时,该变量的默认值为 <code>ON</code>。当配置项 <a href="/zh/tidb/stable/tidb-configuration-file#constraint-check-in-place-pessimistic-从-v640-版本开始引入"><code>pessimistic-txn.constraint-check-in-place-pessimistic</code></a> 为 <code>false</code> 时,该变量的默认值为 <code>OFF</code>。</p></li><li><p>该变量仅适用于悲观事务模型。乐观事务模式中的行为由 <a href="#tidb_constraint_check_in_place"><code>tidb_constraint_check_in_place</code></a> 控制。</p></li><li><p>当这个变量设置为 <code>OFF</code> 时,唯一约束检查会被推迟到下一次需要对这个索引加锁的语句执行时,或事务提交时才进行。这有助于提高性能,但对于某些应用,可能导致非预期的行为。详情见<a href="/zh/tidb/stable/constraints#悲观事务">约束</a>。</p></li><li><p>关闭该变量可能会导致悲观事务中返回 <code>LazyUniquenessCheckFailure</code> 报错。返回该错误时,TiDB 将会回滚当前事务。</p></li><li><p>关闭该变量后,悲观事务中不支持使用 <a href="/zh/tidb/stable/sql-statement-savepoint"><code>SAVEPOINT</code></a> 功能。</p></li><li><p>关闭该变量时,commit 语句可能会报出 <code>Write conflict</code> 错误或 <code>Duplicate entry</code> 错误,两种错误都意味着事务回滚。</p><ul><li><p>悲观事务模型下将 <code>tidb_constraint_check_in_place_pessimistic</code> 设置为 <code>OFF</code>:</p><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia"><span class="hljs-keyword">set</span> @<span class="hljs-variable">@tidb</span>_constraint_check_in_place_pessimistic<span class="hljs-operator">=</span>OFF; <span class="hljs-keyword">create</span> <span class="hljs-keyword">table</span> t (i <span class="hljs-type">int</span> key); <span class="hljs-keyword">insert</span> <span class="hljs-keyword">into</span> t <span class="hljs-keyword">values</span> (<span class="hljs-number">1</span>); <span class="hljs-keyword">begin</span> pessimistic; <span class="hljs-keyword">insert</span> <span class="hljs-keyword">into</span> t <span class="hljs-keyword">values</span> (<span class="hljs-number">1</span>); </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre><pre><code class="hljs language-plaintext"><div class="MuiBox-root css-1qhimia">Query OK, 1 row affected </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia">tidb<span class="hljs-operator">></span> <span class="hljs-keyword">commit</span>; <span class="hljs-comment">-- 事务提交时才检查</span> </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre><pre><code class="hljs language-plaintext"><div class="MuiBox-root css-1qhimia">ERROR 1062 : Duplicate entry '1' for key 't.PRIMARY' </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre></li><li><p>悲观事务模型下将 <code>tidb_constraint_check_in_place_pessimistic</code> 设置为 <code>ON</code>:</p><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia"><span class="hljs-keyword">set</span> @<span class="hljs-variable">@tidb</span>_constraint_check_in_place_pessimistic<span class="hljs-operator">=</span><span class="hljs-keyword">ON</span>; <span class="hljs-keyword">begin</span> pessimistic; <span class="hljs-keyword">insert</span> <span class="hljs-keyword">into</span> t <span class="hljs-keyword">values</span> (<span class="hljs-number">1</span>); </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre><pre><code class="hljs language-plaintext"><div class="MuiBox-root css-1qhimia">ERROR 1062 : Duplicate entry '1' for key 't.PRIMARY' </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre></li></ul></li></ul><h3 id="tidb_cost_model_version-span-classversion-mark从-v620-版本开始引入span" style="position:relative"><code>tidb_cost_model_version</code> <span class="version-mark">从 v6.2.0 版本开始引入</span><a href="#tidb_cost_model_version-span-classversion-mark%E4%BB%8E-v620-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_cost_model_version span classversion mark从 v620 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardInfo MuiAlert-standard css-1bzshic" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="InfoOutlinedIcon"><path d="M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">注意</div><ul><li>自 v6.5.0 开始,新创建的 TiDB 集群默认使用 Cost Model Version 2。如果从 v6.4.0 及之前版本的集群升级到 v6.5.0 及之后的版本,<code>tidb_cost_model_version</code> 的值不发生变化。</li><li>切换代价模型版本可能会引起查询计划的变动。</li></ul></div></div></div><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:整数型</li><li>默认值:<code>2</code></li><li>取值范围:<code>[1, 2]</code></li><li>可选值:<ul><li><code>1</code>:使用 Cost Model Version 1 代价模型。TiDB v6.4.0 及之前的版本默认使用 Cost Model Version 1。</li><li><code>2</code>:使用 Cost Model Version 2 代价模型。TiDB v6.5.0 正式发布了代价模型 <a href="/zh/tidb/stable/cost-model#cost-model-version-2">Cost Model Version 2</a>,在内部测试中比 Version 1 版本的代价模型更加准确。</li></ul></li><li>代价模型会影响优化器对计划的选择,具体可见<a href="/zh/tidb/stable/cost-model">代价模型</a>。</li></ul><h3 id="tidb_current_ts" style="position:relative"><code>tidb_current_ts</code><a href="#tidb_current_ts" aria-label="tidb_current_ts permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>0</code></li><li>取值范围:<code>[0, 9223372036854775807]</code></li><li>这个变量是一个只读变量,用来获取当前事务的时间戳。</li></ul><h3 id="tidb_ddl_disk_quota-span-classversion-mark从-v630-版本开始引入span" style="position:relative"><code>tidb_ddl_disk_quota</code> <span class="version-mark">从 v6.3.0 版本开始引入</span><a href="#tidb_ddl_disk_quota-span-classversion-mark%E4%BB%8E-v630-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_ddl_disk_quota span classversion mark从 v630 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>默认值:<code>107374182400</code> (100 GiB)</li><li>范围:<code>[107374182400, 1125899906842624]</code> (<!-- -->[100 GiB, 1 PiB]<!-- -->)</li><li>单位:字节</li><li>这个变量仅在 <a href="#tidb_ddl_enable_fast_reorg-%E4%BB%8E-v630-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5"><code>tidb_ddl_enable_fast_reorg</code></a> 开启的情况下生效,用于设置创建索引的回填过程中本地存储空间的使用限制。</li></ul><h3 id="tidb_ddl_enable_fast_reorg-span-classversion-mark从-v630-版本开始引入span" style="position:relative"><code>tidb_ddl_enable_fast_reorg</code> <span class="version-mark">从 v6.3.0 版本开始引入</span><a href="#tidb_ddl_enable_fast_reorg-span-classversion-mark%E4%BB%8E-v630-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_ddl_enable_fast_reorg span classversion mark从 v630 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>这个变量用来控制是否开启添加索引加速功能,来提升创建索引回填过程的速度。开启该变量对于数据量较大的表有一定的性能提升。</li><li>TiDB v7.1.0 引入了快速加索引功能的检查点机制,即使 TiDB owner 因故障重启或者切换,也能够通过自动定期保存的检查点恢复部分进度。</li><li>要验证已经完成的 <code>ADD INDEX</code> 操作是否使用了添加索引加速功能,可以执行 <a href="/zh/tidb/stable/sql-statement-admin-show-ddl#admin-show-ddl-jobs"><code>ADMIN SHOW DDL JOBS</code></a> 语句查看 <code>JOB_TYPE</code> 一列中是否含有 <code>ingest</code> 字样。</li></ul><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardInfo MuiAlert-standard css-1bzshic" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="InfoOutlinedIcon"><path d="M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">注意</div><ul><li><p>要使用索引加速功能,你需要提供一个可写且具有足够空余空间的临时路径 <a href="/zh/tidb/stable/tidb-configuration-file#temp-dir-从-v630-版本开始引入"><code>temp-dir</code></a>。如果 <code>temp-dir</code> 无法使用,TiDB 会退回到非加速的索引创建方式。建议将 <code>temp-dir</code> 挂载在 SSD 磁盘上。</p></li><li><p>在升级到 v6.5.0 及以上版本时,请确保 TiDB 的 <a href="/zh/tidb/stable/tidb-configuration-file#temp-dir-从-v630-版本开始引入"><code>temp-dir</code></a> 路径已正确挂载了 SSD 磁盘,并确保运行 TiDB 的操作系统用户对该目录有读写权限,否则在运行时可能产生不可预知的问题。该参数是 TiDB 的配置参数,设置后需要重启 TiDB 才能生效。因此,在升级前提前进行设置,可以避免再次重启。</p></li></ul></div></div></div><h3 id="tidb_enable_dist_task-span-classversion-mark从-v710-版本开始引入span" style="position:relative"><code>tidb_enable_dist_task</code> <span class="version-mark">从 v7.1.0 版本开始引入</span><a href="#tidb_enable_dist_task-span-classversion-mark%E4%BB%8E-v710-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_dist_task span classversion mark从 v710 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>默认值:<code>ON</code></li><li>这个变量用于控制是否开启 <a href="/zh/tidb/stable/tidb-distributed-execution-framework">TiDB 分布式执行框架</a>。开启分布式执行框架后,DDL 和 Import 等将会由集群中多个 TiDB 节点共同完成。</li><li>从 TiDB v7.1.0 开始,支持分布式执行分区表的 <a href="/zh/tidb/stable/sql-statement-add-index"><code>ADD INDEX</code></a>。</li><li>从 TiDB v7.2.0 开始,支持分布式导入任务 <a href="/zh/tidb/stable/sql-statement-import-into"><code>IMPORT INTO</code></a>。</li><li>从 TiDB v8.1.0 开始,该变量默认开启。如果要从低版本的集群升级到 v8.1.0 或更高版本,且该集群已开启分布式执行框架,为了避免升级期间 <code>ADD INDEX</code> 操作可能导致数据索引不一致的问题,请在升级前关闭分布式执行框架(即将 <code>tidb_enable_dist_task</code> 设置为 <code>OFF</code>),升级后再手动开启。</li><li>该变量由 <code>tidb_ddl_distribute_reorg</code> 改名而来。</li></ul><h3 id="tidb_cloud_storage_uri-span-classversion-mark从-v740-版本开始引入span" style="position:relative"><code>tidb_cloud_storage_uri</code> <span class="version-mark">从 v7.4.0 版本开始引入</span><a href="#tidb_cloud_storage_uri-span-classversion-mark%E4%BB%8E-v740-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_cloud_storage_uri span classversion mark从 v740 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardInfo MuiAlert-standard css-1bzshic" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="InfoOutlinedIcon"><path d="M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">注意</div><p>目前,<a href="/zh/tidb/stable/tidb-global-sort">全局排序</a>会使用大量 TiDB 节点的计算与内存资源。对于在线增加索引等同时有用户业务在运行的场景,建议为集群添加新的 TiDB 节点,为这些 TiDB 节点设置 <a href="/zh/tidb/stable/system-variables#tidb_service_scope-从-v740-版本开始引入"><code>tidb_service_scope</code></a>,并连接到这些节点上创建任务。这样分布式框架就会将任务调度到这些节点上,将工作负载与其他 TiDB 节点隔离,以减少执行后端任务(如 <code>ADD INDEX</code> 和 <code>IMPORT INTO</code>)对用户业务的影响。</p></div></div></div><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>默认值:<code>""</code></li><li>该变量用来指定<a href="/zh/tidb/stable/tidb-global-sort">全局排序</a>中使用的 Amazon S3 云存储的 URI。在开启 <a href="/zh/tidb/stable/tidb-distributed-execution-framework">TiDB 分布式执行框架</a>后,你可以配置 URI 指向具有访问存储所需权限的云存储路径,以此来实现全局排序的功能。更多详情,参考 <a href="/zh/tidb/stable/external-storage-uri#amazon-s3-uri-格式">Amazon S3 的 URI 格式</a>。</li><li>以下语句支持全局排序功能:<ul><li><a href="/zh/tidb/stable/sql-statement-add-index"><code>ADD INDEX</code></a> 语句。</li><li>用于将数据导入本地部署的 TiDB 的 <a href="/zh/tidb/stable/sql-statement-import-into"><code>IMPORT INTO</code></a> 语句。对于 TiDB Cloud,<code>IMPORT INTO</code> 语句不适用全局排序。</li></ul></li></ul><h3 id="tidb_ddl_error_count_limit" style="position:relative"><code>tidb_ddl_error_count_limit</code><a href="#tidb_ddl_error_count_limit" aria-label="tidb_ddl_error_count_limit permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>512</code></li><li>范围:<code>[0, 9223372036854775807]</code></li><li>这个变量用来控制 DDL 操作失败重试的次数。失败重试次数超过该参数的值后,会取消出错的 DDL 操作。</li></ul><h3 id="tidb_ddl_flashback_concurrency-span-classversion-mark从-v630-版本开始引入span" style="position:relative"><code>tidb_ddl_flashback_concurrency</code> <span class="version-mark">从 v6.3.0 版本开始引入</span><a href="#tidb_ddl_flashback_concurrency-span-classversion-mark%E4%BB%8E-v630-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_ddl_flashback_concurrency span classversion mark从 v630 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>64</code></li><li>范围:<code>[1, 256]</code></li><li>这个变量用来控制 <a href="/zh/tidb/stable/sql-statement-flashback-cluster"><code>FLASHBACK CLUSTER</code></a> 的并发数。</li></ul><h3 id="tidb_ddl_reorg_batch_size" style="position:relative"><code>tidb_ddl_reorg_batch_size</code><a href="#tidb_ddl_reorg_batch_size" aria-label="tidb_ddl_reorg_batch_size permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li><p>作用域:GLOBAL</p></li><li><p>是否持久化到集群:是</p></li><li><p>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</p></li><li><p>类型:整数型</p></li><li><p>默认值:<code>256</code></p></li><li><p>范围:<code>[32, 10240]</code></p></li><li><p>单位:行</p></li><li><p>这个变量用来设置 DDL 操作 <code>re-organize</code> 阶段的 batch size。比如 <code>ADD INDEX</code> 操作,需要回填索引数据,通过并发 <code>tidb_ddl_reorg_worker_cnt</code> 个 worker 一起回填数据,每个 worker 以 batch 为单位进行回填。</p><ul><li>当设置 <code>tidb_ddl_enable_fast_reorg</code> 为 <code>OFF</code> 时,<code>ADD INDEX</code> 会通过事务的方式执行,执行时如果 <code>ADD INDEX</code> 的目标列有较多 <code>UPDATE</code> 或者 <code>REPLACE</code> 等更新操作,batch size 设置的值越大,事务冲突的概率也会越大。此时建议调小 batch size 的值,最小值是 32。</li><li>在没有事务冲突的情况下,或者当 <code>tidb_ddl_enable_fast_reorg</code> 为 <code>ON</code> 时,batch size 可设为较大值,这样回填数据的速度更快,但是 TiKV 的写入压力也会变大。设置 batch size 时需要参考 <code>tidb_ddl_reorg_worker_cnt</code> 的设置值,详情见<a href="/zh/tidb/stable/online-workloads-and-add-index-operations">线上负载与 <code>ADD INDEX</code> 相互影响测试</a>。</li></ul></li></ul><h3 id="tidb_ddl_reorg_priority" style="position:relative"><code>tidb_ddl_reorg_priority</code><a href="#tidb_ddl_reorg_priority" aria-label="tidb_ddl_reorg_priority permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:枚举型</li><li>默认值:<code>PRIORITY_LOW</code></li><li>可选值:<code>PRIORITY_LOW</code>、<code>PRIORITY_NORMAL</code>、<code>PRIORITY_HIGH</code></li><li>这个变量用来设置 <code>ADD INDEX</code> 操作 <code>re-organize</code> 阶段的执行优先级,可设置为 <code>PRIORITY_LOW</code>/<code>PRIORITY_NORMAL</code>/<code>PRIORITY_HIGH</code>。</li></ul><h3 id="tidb_ddl_reorg_worker_cnt" style="position:relative"><code>tidb_ddl_reorg_worker_cnt</code><a href="#tidb_ddl_reorg_worker_cnt" aria-label="tidb_ddl_reorg_worker_cnt permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>4</code></li><li>范围:<code>[1, 256]</code></li><li>单位:线程</li><li>这个变量用来设置 DDL 操作 <code>re-organize</code> 阶段的并发度。</li></ul><h3 id="tidb_enable_fast_create_table-span-classversion-mark从-v800-版本开始引入span" style="position:relative"><code>tidb_enable_fast_create_table</code> <span class="version-mark">从 v8.0.0 版本开始引入</span><a href="#tidb_enable_fast_create_table-span-classversion-mark%E4%BB%8E-v800-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_fast_create_table span classversion mark从 v800 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardError MuiAlert-standard css-kdwypz" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ErrorOutlineIcon"><path d="M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">警告</div><p>该变量目前为实验特性,不建议在生产环境中使用。该功能可能会在未事先通知的情况下发生变化或删除。如果发现 bug,请在 GitHub 上提 <a href="https://github.com/pingcap/tidb/issues" target="_blank" referrerpolicy="no-referrer-when-downgrade">issue</a> 反馈。</p></div></div></div><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>这个变量用于控制是否开启 <a href="/zh/tidb/stable/accelerated-table-creation">TiDB 加速建表</a>。</li><li>从 TiDB v8.0.0 开始,支持使用 <code>tidb_enable_fast_create_table</code> 加速建表 <a href="/zh/tidb/stable/sql-statement-create-table"><code>CREATE TABLE</code></a>。</li><li>该变量是由 v7.6.0 中引入的 <a href="https://docs.pingcap.com/zh/tidb/v7.6/system-variables#tidb_ddl_version-从-v760-版本开始引入" target="_blank" referrerpolicy="no-referrer-when-downgrade"><code>tidb_ddl_version</code></a> 更名而来。从 v8.0.0 开始,<code>tidb_ddl_version</code> 不再生效。</li></ul><h3 id="tidb_default_string_match_selectivity-span-classversion-mark从-v620-版本开始引入span" style="position:relative"><code>tidb_default_string_match_selectivity</code> <span class="version-mark">从 v6.2.0 版本开始引入</span><a href="#tidb_default_string_match_selectivity-span-classversion-mark%E4%BB%8E-v620-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_default_string_match_selectivity span classversion mark从 v620 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:浮点型</li><li>默认值:<code>0.8</code></li><li>范围:<code>[0, 1]</code></li><li>这个变量用来设置过滤条件中的 <code>like</code>、<code>rlike</code>、<code>regexp</code> 函数在行数估算时的默认选择率,以及是否对这些函数启用 TopN 辅助估算。</li><li>TiDB 总是会尝试利用统计信息对过滤条件中的 <code>like</code> 进行估算,但是当 <code>like</code> 匹配的字符串太复杂时,或者面对 <code>rlike</code> 或 <code>regexp</code> 时,往往无法充分利用统计信息,转而使用 <code>0.8</code> 作为选择率,造成行数估算的误差较大。</li><li>该变量可以用于修改这个行为,当变量被设为 <code>0</code> 以外的值时,会使用变量的值而不是默认的 <code>0.8</code> 作为选择率。</li><li>如果将该变量的值设为 <code>0</code>,TiDB 在对上述三个函数进行行数估算时,会尝试利用统计信息中的 TopN 进行求值来提高估算精度,同时也会考虑统计信息中的 NULL 数。求值操作预计会造成少量性能损耗。这个功能生效的前提是统计信息是在 <a href="#tidb_analyze_version-%E4%BB%8E-v510-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5"><code>tidb_analyze_version</code></a> 设为 <code>2</code> 时收集的。</li><li>当该变量的值被设为默认值以外的值的时候,会对 <code>not like</code>、<code>not rlike</code>、<code>not regexp</code> 的行数估算也进行相应的调整。</li></ul><h3 id="tidb_disable_txn_auto_retry" style="position:relative"><code>tidb_disable_txn_auto_retry</code><a href="#tidb_disable_txn_auto_retry" aria-label="tidb_disable_txn_auto_retry permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardError MuiAlert-standard css-kdwypz" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ErrorOutlineIcon"><path d="M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">警告</div><p>从 v8.0.0 开始,该变量被废弃。废弃后,TiDB 不再支持乐观事务的自动重试。作为替代,当使用乐观事务模式发生冲突时,请在应用里捕获错误并重试,或改用<a href="/zh/tidb/stable/pessimistic-transaction">悲观事务模式</a>。</p></div></div></div><ul><li><p>作用域:SESSION | GLOBAL</p></li><li><p>是否持久化到集群:是</p></li><li><p>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</p></li><li><p>类型:布尔型</p></li><li><p>默认值:<code>ON</code></p></li><li><p>这个变量用来设置是否禁用显式的乐观事务自动重试,设置为 <code>ON</code> 时,不会自动重试,如果遇到事务冲突需要在应用层重试。</p><p> 如果将该变量的值设为 <code>OFF</code>,TiDB 将会自动重试事务,这样在事务提交时遇到的错误更少。需要注意的是,这样可能会导致数据更新丢失。</p><p> 这个变量不会影响自动提交的隐式事务和 TiDB 内部执行的事务,它们依旧会根据 <code>tidb_retry_limit</code> 的值来决定最大重试次数。</p><p> 关于是否需要禁用自动重试,请参考<a href="/zh/tidb/stable/optimistic-transaction#重试的局限性">重试的局限性</a>。</p><p> 该变量只适用于乐观事务,不适用于悲观事务。悲观事务的重试次数由 <a href="/zh/tidb/stable/tidb-configuration-file#max-retry-count"><code>max_retry_count</code></a> 控制。</p></li></ul><h3 id="tidb_distsql_scan_concurrency" style="position:relative"><code>tidb_distsql_scan_concurrency</code><a href="#tidb_distsql_scan_concurrency" aria-label="tidb_distsql_scan_concurrency permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:整数型</li><li>默认值:<code>15</code></li><li>范围:<code>[1, 256]</code></li><li>单位:线程</li><li>这个变量用来设置 scan 操作的并发度。</li><li>AP 类应用适合较大的值,TP 类应用适合较小的值。对于 AP 类应用,最大值建议不要超过所有 TiKV 节点的 CPU 核数。</li><li>若表的分区较多可以适当调小该参数(取决于扫描数据量的大小以及扫描频率),避免 TiKV 内存溢出 (OOM)。</li><li>对于仅包含 <code>LIMIT</code> 子句的简单查询,如果 <code>LIMIT</code> 行数小于 100000,该查询的 scan 操作被下推到 TiKV 时,会将该变量的值视为 <code>1</code> 进行处理,以提升执行效率。</li><li>对于查询语句 <code>SELECT MAX/MIN(col) FROM ...</code>,如果 <code>col</code> 列有索引且该索引的顺序与 <code>MAX(col)</code> 或 <code>MIN(col)</code> 函数所需的顺序一致,TiDB 会将该查询改写为 <code>SELECT col FROM ... LIMIT 1</code> 进行处理,该变量的值也将视为 <code>1</code> 进行处理。例如,对于 <code>SELECT MIN(col) FROM ...</code>,如果 <code>col</code> 列有升序排列的索引,TiDB 通过将该查询改写为 <code>SELECT col FROM ... LIMIT 1</code>,可以直接读取该索引中第一条数据,从而快速得到 <code>MIN(col)</code> 值。</li></ul><h3 id="tidb_dml_batch_size" style="position:relative"><code>tidb_dml_batch_size</code><a href="#tidb_dml_batch_size" aria-label="tidb_dml_batch_size permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardError MuiAlert-standard css-kdwypz" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ErrorOutlineIcon"><path d="M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">警告</div><p>该变量与废弃的 batch-dml 特性相关,可能会导致数据损坏。因此,不建议开启该变量来使用 batch-dml。作为替代,请使用<a href="/zh/tidb/stable/non-transactional-dml">非事务 DML 语句</a>。</p></div></div></div><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>0</code></li><li>范围:<code>[0, 2147483647]</code></li><li>单位:行</li><li>这个变量的值大于 <code>0</code> 时,TiDB 会将 <code>INSERT</code> 语句在更小的事务中批量提交。这样可减少内存使用,确保大批量修改时事务大小不会达到 <code>txn-total-size-limit</code> 限制。</li><li>只有变量值为 <code>0</code> 时才符合 ACID 要求。否则无法保证 TiDB 的原子性和隔离性要求。</li><li>要使该特性生效,还需要开启 <code>tidb_enable_batch_dml</code>,以及至少开启 <code>tidb_batch_insert</code> 和 <code>tidb_batch_delete</code> 中的一个。</li></ul><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardInfo MuiAlert-standard css-1bzshic" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="InfoOutlinedIcon"><path d="M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">注意</div><p>自 v7.0.0 起,<code>tidb_dml_batch_size</code> 对 <a href="/zh/tidb/stable/sql-statement-load-data"><code>LOAD DATA</code> 语句</a>不再生效。</p></div></div></div><h3 id="tidb_dml_type-span-classversion-mark从-v800-版本开始引入span" style="position:relative"><code>tidb_dml_type</code> <span class="version-mark">从 v8.0.0 版本开始引入</span><a href="#tidb_dml_type-span-classversion-mark%E4%BB%8E-v800-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_dml_type span classversion mark从 v800 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardError MuiAlert-standard css-kdwypz" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ErrorOutlineIcon"><path d="M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">警告</div><p>批量 DML 执行方式 (<code>tidb_dml_type = "bulk"</code>) 目前为实验特性,不建议在生产环境中使用。该功能可能会在未事先通知的情况下发生变化或删除。如果发现 bug,请在 GitHub 上提 <a href="https://github.com/pingcap/tidb/issues" target="_blank" referrerpolicy="no-referrer-when-downgrade">issue</a> 反馈。在当前版本中,使用批量 DML 执行方式执行超大事务时,可能会影响 TiCDC、TiFlash 和 TiKV 的 resolved-ts 模块的内存使用和执行效率,可能引发 OOM 问题。此外,BR 在遇到锁时也可能被阻塞无法继续执行。因此,不建议在启用这些组件和功能时使用。</p></div></div></div><ul><li>作用域:SESSION</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:字符串</li><li>默认值:<code>"standard"</code></li><li>可选值:<code>"standard"</code>、<code>"bulk"</code></li><li>该变量用来设置 DML 语句的执行方式。<ul><li><code>"standard"</code> 表示使用标准的 DML 执行方式,TiDB 事务在提交前缓存在内存中。适用于处理高并发且可能存在冲突的事务场景,为默认推荐使用的执行方式。</li><li><code>"bulk"</code> 表示使用批量 DML 执行方式,适合于处理因大量数据写入导致 TiDB 内存使用过多的情况。<ul><li>在 TiDB 事务执行过程中,数据不是完全缓存在 TiDB 内存中,而是持续写入 TiKV,以减少内存的占用,同时平滑写入压力。</li><li>只有 <code>INSERT</code>、<code>UPDATE</code>、<code>REPLACE</code> 和 <code>DELETE</code> 语句受 <code>"bulk"</code> 方式的影响。由于 <code>"bulk"</code> 模式流水线执行的方式,其中 <code>INSERT IGNORE ... ON DUPLICATE UPDATE ...</code> 的用法可能会在更新造成冲突时报出 <code>Duplicate entry</code> 的错误;而在 <code>"standard"</code> 模式下,由于设置了 <code>IGNORE</code> 关键字,该错误会被忽略,不会返回给用户。</li><li><code>"bulk"</code> 方式仅适用于大批量<strong>无冲突数据写入</strong>的场景,不能高效处理写入冲突的场景,写写冲突可能会导致大批量事务提交失败并被回滚。</li><li><code>"bulk"</code> 方式只对自动提交 (auto-commit) 的语句生效。当设置为 <code>"bulk"</code> 时,<a href="/zh/tidb/stable/tidb-configuration-file#pessimistic-auto-commit"><code>pessimistic-auto-commit</code></a> 配置项的效果等同于设置为 <code>false</code>。</li><li>使用 <code>"bulk"</code> 方式执行语句时,需要确保在语句执行过程中保持<a href="/zh/tidb/stable/metadata-lock">元数据锁</a>处于开启状态。</li><li><code>"bulk"</code> 方式不可以在<a href="/zh/tidb/stable/temporary-tables">临时表</a>、<a href="/zh/tidb/stable/cached-tables">缓存表</a>上使用。</li><li><code>"bulk"</code> 方式不可以在开启外键约束检查时 (<code>foreign_key_checks = ON</code>) 对包含外键的表和被外键引用的表使用。</li><li>当遇到不支持或不兼容的情况时,<code>"bulk"</code> 方式会回退到 <code>"standard"</code> 方式执行,并返回一条警告信息。你可以通过 <a href="#tidb_last_txn_info-%E4%BB%8E-v409-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5"><code>tidb_last_txn_info</code></a> 查看 <code>pipelined</code> 字段,如果为 <code>true</code> 则表示是使用 <code>"bulk"</code> 方式执行。</li><li>以 <code>"bulk"</code> 方式执行超大事务时,事务耗时可能较长。对于这种模式的事务,其事务锁的最大 TTL 为 <a href="/zh/tidb/stable/tidb-configuration-file#max-txn-ttl"><code>max-txn-ttl</code></a> 与 24 小时中的较大值。此外,当事务执行时间超过 <a href="#tidb_gc_max_wait_time-%E4%BB%8E-v610-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5"><code>tidb_gc_max_wait_time</code></a> 设定值后,GC 可能会强制回滚事务,导致事务失败。</li><li>以 <code>"bulk"</code> 方式执行事务时,事务的大小不受 TiDB 配置项 <a href="/zh/tidb/stable/tidb-configuration-file#txn-total-size-limit"><code>txn-total-size-limit</code></a> 的限制。</li><li><code>"bulk"</code> 方式由 Pipelined DML 特性实现,详细设计和 GitHub issue 可见 <a href="https://github.com/pingcap/tidb/blob/release-8.1/docs/design/2024-01-09-pipelined-DML.md" target="_blank" referrerpolicy="no-referrer-when-downgrade">Pipelined DML</a> 和 <a href="https://github.com/pingcap/tidb/issues/50215" target="_blank" referrerpolicy="no-referrer-when-downgrade">#50215</a>。</li></ul></li></ul></li></ul><h3 id="tidb_enable_1pc-span-classversion-mark从-v50-版本开始引入span" style="position:relative"><code>tidb_enable_1pc</code> <span class="version-mark">从 v5.0 版本开始引入</span><a href="#tidb_enable_1pc-span-classversion-mark%E4%BB%8E-v50-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_1pc span classversion mark从 v50 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>指定是否在只涉及一个 Region 的事务上启用一阶段提交特性。比起传统两阶段提交,一阶段提交能大幅降低事务提交延迟并提升吞吐。</li></ul><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardInfo MuiAlert-standard css-1bzshic" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="InfoOutlinedIcon"><path d="M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">注意</div><ul><li>对于新创建的集群,默认值为 ON。对于升级版本的集群,如果升级前是 v5.0 以下版本,升级后默认值为 <code>OFF</code>。</li><li>启用 TiDB Binlog 后,开启该选项无法获得性能提升。要获得性能提升,建议使用 <a href="/zh/tidb/stable/ticdc-overview">TiCDC</a> 替代 TiDB Binlog。</li><li>启用该参数仅意味着一阶段提交成为可选的事务提交模式,实际由 TiDB 自行判断选择最合适的提交模式进行事务提交。</li></ul></div></div></div><h3 id="tidb_enable_analyze_snapshot-span-classversion-mark从-v620-版本开始引入span" style="position:relative"><code>tidb_enable_analyze_snapshot</code> <span class="version-mark">从 v6.2.0 版本开始引入</span><a href="#tidb_enable_analyze_snapshot-span-classversion-mark%E4%BB%8E-v620-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_analyze_snapshot span classversion mark从 v620 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>该变量控制 <code>ANALYZE</code> 读取历史时刻的数据还是读取最新的数据。当该变量设置为 <code>ON</code> 时,<code>ANALYZE</code> 读取 <code>ANALYZE</code> 开始时刻的历史数据。当该变量设置为 <code>OFF</code> 时,<code>ANALYZE</code> 读取最新的数据。</li><li>在 v5.2 之前,<code>ANALYZE</code> 读取最新的数据。v5.2 至 v6.1 版本 <code>ANALYZE</code> 读取 <code>ANALYZE</code> 开始时刻的历史数据。</li></ul><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardError MuiAlert-standard css-kdwypz" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ErrorOutlineIcon"><path d="M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">警告</div><p>如果 <code>ANALYZE</code> 读取 <code>ANALYZE</code> 开始时刻的历史数据,长时间的 <code>AUTO ANALYZE</code> 可能会因为历史数据被 GC 而出现 <code>GC life time is shorter than transaction duration</code> 的报错。</p></div></div></div><h3 id="tidb_enable_async_commit-span-classversion-mark从-v50-版本开始引入span" style="position:relative"><code>tidb_enable_async_commit</code> <span class="version-mark">从 v5.0 版本开始引入</span><a href="#tidb_enable_async_commit-span-classversion-mark%E4%BB%8E-v50-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_async_commit span classversion mark从 v50 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>该变量控制是否启用 Async Commit 特性,使事务两阶段提交的第二阶段于后台异步进行。开启本特性能降低事务提交的延迟。</li></ul><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardInfo MuiAlert-standard css-1bzshic" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="InfoOutlinedIcon"><path d="M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">注意</div><ul><li>对于新创建的集群,默认值为 ON。对于升级版本的集群,如果升级前是 v5.0 以下版本,升级后默认值为 <code>OFF</code>。</li><li>启用 TiDB Binlog 后,开启该选项无法获得性能提升。要获得性能提升,建议使用 <a href="/zh/tidb/stable/ticdc-overview">TiCDC</a> 替代 TiDB Binlog。</li><li>启用该参数仅意味着 Async Commit 成为可选的事务提交模式,实际由 TiDB 自行判断选择最合适的提交模式进行事务提交。</li></ul></div></div></div><h3 id="tidb_enable_auto_analyze-span-classversion-mark从-v610-版本开始引入span" style="position:relative"><code>tidb_enable_auto_analyze</code> <span class="version-mark">从 v6.1.0 版本开始引入</span><a href="#tidb_enable_auto_analyze-span-classversion-mark%E4%BB%8E-v610-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_auto_analyze span classversion mark从 v610 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>该变量控制 TiDB 是否以后台操作自动更新表的统计信息。</li><li>在 v6.1.0 之前这个开关通过 TiDB 配置文件 (<code>performance.run-auto-analyze</code>) 进行配置,升级到 v6.1.0 时会自动继承原有设置。</li></ul><h3 id="tidb_enable_auto_analyze_priority_queue-span-classversion-mark从-v800-版本开始引入span" style="position:relative"><code>tidb_enable_auto_analyze_priority_queue</code> <span class="version-mark">从 v8.0.0 版本开始引入</span><a href="#tidb_enable_auto_analyze_priority_queue-span-classversion-mark%E4%BB%8E-v800-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_auto_analyze_priority_queue span classversion mark从 v800 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>该变量控制是否启用优先队列来调度自动收集统计信息的任务。开启该变量后,TiDB 会优先收集那些更有收集价值的表,例如新创建的索引、发生分区变更的分区表等。同时,TiDB 也会优先处理那些健康度较低的表,将它们安排在队列的前端。</li></ul><h3 id="tidb_enable_auto_increment_in_generated" style="position:relative"><code>tidb_enable_auto_increment_in_generated</code><a href="#tidb_enable_auto_increment_in_generated" aria-label="tidb_enable_auto_increment_in_generated permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>这个变量用于控制是否允许在创建生成列或者表达式索引时引用自增列。</li></ul><h3 id="tidb_enable_batch_dml" style="position:relative"><code>tidb_enable_batch_dml</code><a href="#tidb_enable_batch_dml" aria-label="tidb_enable_batch_dml permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardError MuiAlert-standard css-kdwypz" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ErrorOutlineIcon"><path d="M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">警告</div><p>该变量与废弃的 batch-dml 特性相关,可能会导致数据损坏。因此,不建议开启该变量来使用 batch-dml。作为替代,请使用<a href="/zh/tidb/stable/non-transactional-dml">非事务 DML 语句</a>。</p></div></div></div><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>该变量控制是否启用废弃的 batch-dml 特性。启用该变量后,部分语句可能会被拆分为多个事务执行,这是非原子性的,使用时需谨慎。使用 batch-dml 时,必须确保正在操作的数据没有并发操作。要使该变量生效,还需要为 <code>tidb_batch_dml_size</code> 指定一个正值,并启用 <code>tidb_batch_insert</code> 和 <code>tidb_batch_delete</code> 中的至少一个。</li></ul><h3 id="tidb_enable_cascades_planner" style="position:relative"><code>tidb_enable_cascades_planner</code><a href="#tidb_enable_cascades_planner" aria-label="tidb_enable_cascades_planner permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardError MuiAlert-standard css-kdwypz" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ErrorOutlineIcon"><path d="M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">警告</div><p>目前 cascades planner 为实验特性,不建议在生产环境中使用。</p></div></div></div><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>这个变量用于控制是否开启 cascades planner。</li></ul><h3 id="tidb_enable_check_constraint-span-classversion-mark从-v720-版本开始引入span" style="position:relative"><code>tidb_enable_check_constraint</code> <span class="version-mark">从 v7.2.0 版本开始引入</span><a href="#tidb_enable_check_constraint-span-classversion-mark%E4%BB%8E-v720-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_check_constraint span classversion mark从 v720 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>这个变量用于控制是否启用 <a href="/zh/tidb/stable/constraints#check-约束"><code>CHECK</code> 约束</a>。</li></ul><h3 id="tidb_enable_chunk_rpc-span-classversion-mark从-v40-版本开始引入span" style="position:relative"><code>tidb_enable_chunk_rpc</code> <span class="version-mark">从 v4.0 版本开始引入</span><a href="#tidb_enable_chunk_rpc-span-classversion-mark%E4%BB%8E-v40-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_chunk_rpc span classversion mark从 v40 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>这个变量用来设置是否启用 Coprocessor 的 <code>Chunk</code> 数据编码格式。</li></ul><h3 id="tidb_enable_clustered_index-span-classversion-mark从-v50-版本开始引入span" style="position:relative"><code>tidb_enable_clustered_index</code> <span class="version-mark">从 v5.0 版本开始引入</span><a href="#tidb_enable_clustered_index-span-classversion-mark%E4%BB%8E-v50-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_clustered_index span classversion mark从 v50 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:枚举型</li><li>默认值:<code>ON</code></li><li>可选值:<code>OFF</code>,<code>ON</code>,<code>INT_ONLY</code></li><li>这个变量用于控制默认情况下表的主键是否使用<a href="/zh/tidb/stable/clustered-indexes">聚簇索引</a>。“默认情况”即不显式指定 <code>CLUSTERED</code>/<code>NONCLUSTERED</code> 关键字的情况。可设置为 <code>OFF</code>/<code>ON</code>/<code>INT_ONLY</code>。<ul><li><code>OFF</code> 表示所有主键默认使用非聚簇索引。</li><li><code>ON</code> 表示所有主键默认使用聚簇索引。</li><li><code>INT_ONLY</code> 此时的行为受配置项 <code>alter-primary-key</code> 控制。如果该配置项取值为 <code>true</code>,则所有主键默认使用非聚簇索引;如果该配置项取值为 <code>false</code>,则由单个整数类型的列构成的主键默认使用聚簇索引,其他类型的主键默认使用非聚簇索引。</li></ul></li></ul><h3 id="tidb_enable_collect_execution_info" style="position:relative"><code>tidb_enable_collect_execution_info</code><a href="#tidb_enable_collect_execution_info" aria-label="tidb_enable_collect_execution_info permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:否,仅作用于当前连接的 TiDB 实例</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>这个变量用于控制是否同时将各个执行算子的执行信息记录入 slow query log 中,以及是否维护<a href="/zh/tidb/stable/information-schema-tidb-index-usage">访问索引有关的统计信息</a>。</li></ul><h3 id="tidb_enable_column_tracking-span-classversion-mark从-v540-版本开始引入span" style="position:relative"><code>tidb_enable_column_tracking</code> <span class="version-mark">从 v5.4.0 版本开始引入</span><a href="#tidb_enable_column_tracking-span-classversion-mark%E4%BB%8E-v540-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_column_tracking span classversion mark从 v540 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardError MuiAlert-standard css-kdwypz" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ErrorOutlineIcon"><path d="M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">警告</div><p>收集 <code>PREDICATE COLUMNS</code> 的统计信息目前为实验特性,不建议在生产环境中使用。</p></div></div></div><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>这个变量用于控制是否开启 TiDB 对 <code>PREDICATE COLUMNS</code> 的收集。关闭该变量后,之前收集的 <code>PREDICATE COLUMNS</code> 会被清除。详情见<a href="/zh/tidb/stable/statistics#收集部分列的统计信息">收集部分列的统计信息</a>。</li></ul><h3 id="tidb_enable_ddl-span-classversion-mark从-v630-版本开始引入span" style="position:relative"><code>tidb_enable_ddl</code> <span class="version-mark">从 v6.3.0 版本开始引入</span><a href="#tidb_enable_ddl-span-classversion-mark%E4%BB%8E-v630-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_ddl span classversion mark从 v630 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:否,仅作用于当前连接的 TiDB 实例</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>默认值:<code>ON</code></li><li>可选值:<code>OFF</code>,<code>ON</code></li><li>用于设置该 TiDB 实例是否可以成为 DDL owner。若当前 TiDB 集群中只有一台 TiDB 实例,则不能禁止该实例成为 DDL owner,即不能设置为 <code>OFF</code>。</li></ul><h3 id="tidb_enable_enhanced_security" style="position:relative"><code>tidb_enable_enhanced_security</code><a href="#tidb_enable_enhanced_security" aria-label="tidb_enable_enhanced_security permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:NONE</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>这个变量表示所连接的 TiDB 服务器是否启用了安全增强模式 (SEM)。若要改变该变量值,你需要在 TiDB 服务器的配置文件中修改 <code>enable-sem</code> 项的值,并重启 TiDB 服务器。</li><li>安全增强模式受<a href="https://zh.wikipedia.org/wiki/安全增强式Linux" target="_blank" referrerpolicy="no-referrer-when-downgrade">安全增强式 Linux</a> 等系统设计的启发,削减拥有 MySQL <code>SUPER</code> 权限的用户能力,转而使用细粒度的 <code>RESTRICTED</code> 权限作为替代。这些细粒度的 <code>RESTRICTED</code> 权限如下:<ul><li><code>RESTRICTED_TABLES_ADMIN</code>:能够写入 <code>mysql</code> 库中的系统表,能查看 <code>information_schema</code> 表上的敏感列。</li><li><code>RESTRICTED_STATUS_ADMIN</code>:能够在 <code>SHOW STATUS</code> 命令中查看敏感内容。</li><li><code>RESTRICTED_VARIABLES_ADMIN</code>:能够在 <code>SHOW [GLOBAL] VARIABLES</code> 和 <code>SET</code> 命令中查看和设置包含敏感内容的变量。</li><li><code>RESTRICTED_USER_ADMIN</code>:能够阻止其他用户更改或删除用户帐户。</li><li><code>RESTRICTED_CONNECTION_ADMIN</code>:能够阻止其它用户使用 <code>KILL</code> 语句终止连接。</li></ul></li></ul><h3 id="tidb_enable_exchange_partition" style="position:relative"><code>tidb_enable_exchange_partition</code><a href="#tidb_enable_exchange_partition" aria-label="tidb_enable_exchange_partition permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>该变量用于设置是否启用 <a href="/zh/tidb/stable/partitioned-table#分区管理"><code>exchange partitions with tables</code></a> 特性。默认值为 <code>ON</code>,即默认开启该功能。</li><li>该变量自 v6.3.0 开始废弃,其取值将固定为默认值 <code>ON</code>,即默认开启 <code>exchange partitions with tables</code>。</li></ul><h3 id="tidb_enable_extended_stats" style="position:relative"><code>tidb_enable_extended_stats</code><a href="#tidb_enable_extended_stats" aria-label="tidb_enable_extended_stats permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>该变量指定 TiDB 是否收集<a href="/zh/tidb/stable/extended-statistics">扩展统计信息</a>来指导优化器。</li></ul><h3 id="tidb_enable_external_ts_read-span-classversion-mark从-v640-版本开始引入span" style="position:relative"><code>tidb_enable_external_ts_read</code> <span class="version-mark">从 v6.4.0 版本开始引入</span><a href="#tidb_enable_external_ts_read-span-classversion-mark%E4%BB%8E-v640-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_external_ts_read span classversion mark从 v640 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>当此变量设置为 <code>ON</code> 时,TiDB 会读取 <a href="#tidb_external_ts-%E4%BB%8E-v640-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5"><code>tidb_external_ts</code></a> 指定时间戳前的历史数据。</li></ul><h3 id="tidb_external_ts-span-classversion-mark从-v640-版本开始引入span" style="position:relative"><code>tidb_external_ts</code> <span class="version-mark">从 v6.4.0 版本开始引入</span><a href="#tidb_external_ts-span-classversion-mark%E4%BB%8E-v640-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_external_ts span classversion mark从 v640 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>0</code></li><li>当 <a href="#tidb_enable_external_ts_read-%E4%BB%8E-v640-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5"><code>tidb_enable_external_ts_read</code></a> 设置为 <code>ON</code> 时,TiDB 会依据该变量指定的时间戳读取历史数据。</li></ul><h3 id="tidb_restricted_read_only-span-classversion-mark从-v520-版本开始引入span" style="position:relative"><code>tidb_restricted_read_only</code> <span class="version-mark">从 v5.2.0 版本开始引入</span><a href="#tidb_restricted_read_only-span-classversion-mark%E4%BB%8E-v520-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_restricted_read_only span classversion mark从 v520 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li><p>作用域:GLOBAL</p></li><li><p>是否持久化到集群:是</p></li><li><p>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</p></li><li><p>类型:布尔型</p></li><li><p>默认值:<code>OFF</code></p></li><li><p>可选值:<code>OFF</code> 和 <code>ON</code></p></li><li><p><code>tidb_restricted_read_only</code>和 <a href="#tidb_super_read_only-%E4%BB%8E-v531-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5"><code>tidb_super_read_only</code></a> 的作用相似。在大多数情况下,你只需要使用 <a href="#tidb_super_read_only-%E4%BB%8E-v531-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5"><code>tidb_super_read_only</code></a> 即可。</p></li><li><p>拥有 <code>SUPER</code> 或 <code>SYSTEM_VARIABLES_ADMIN</code> 权限的用户可以修改该变量。如果 TiDB 开启了<a href="#tidb_enable_enhanced_security">安全增强模式</a>,你还需要额外的 <code>RESTRICTED_VARIABLES_ADMIN</code> 权限才能读取或修改该变量。</p></li><li><p><code>tidb_restricted_read_only</code> 的设置将影响 <a href="#tidb_super_read_only-%E4%BB%8E-v531-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5"><code>tidb_super_read_only</code></a> 的值:</p><ul><li>当设置 <code>tidb_restricted_read_only</code> 为 <code>ON</code> 时,<a href="#tidb_super_read_only-%E4%BB%8E-v531-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5"><code>tidb_super_read_only</code></a> 的将自动被设置为 <code>ON</code>。</li><li>当设置 <code>tidb_restricted_read_only</code> 为 <code>OFF</code> 时,<a href="#tidb_super_read_only-%E4%BB%8E-v531-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5"><code>tidb_super_read_only</code></a> 的值将不受影响。</li><li>当 <code>tidb_restricted_read_only</code> 为 <code>ON</code> 时,<a href="#tidb_super_read_only-%E4%BB%8E-v531-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5"><code>tidb_super_read_only</code></a> 的值无法设置为 <code>OFF</code>。</li></ul></li><li><p>对于 TiDB 的 DBaaS 供应商,当 TiDB 为另一个数据库的下游数据库时,如果要将整个 TiDB 集群设置为只读模式,你需要开启<a href="#tidb_enable_enhanced_security">安全增强模式</a> 并将 <code>tidb_restricted_read_only</code> 设置为 <code>ON</code>,从而防止你的用户通过 <a href="#tidb_super_read_only-%E4%BB%8E-v531-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5"><code>tidb_super_read_only</code></a> 将 TiDB 集群设置为可写。实现方法:首先开启<a href="#tidb_enable_enhanced_security">安全增强模式</a>,然后由你(作为 DBaaS 的控制面)使用一个 admin 用户控制 <code>tidb_restricted_read_only</code>(需要拥有 <code>SYSTEM_VARIABLES_ADMIN</code> 和 <code>RESTRICTED_VARIABLES_ADMIN</code> 权限),由你的数据库用户使用 root 用户控制 <a href="#tidb_super_read_only-%E4%BB%8E-v531-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5"><code>tidb_super_read_only</code></a>(需要拥有 <code>SUPER</code> 权限)。</p></li><li><p>该变量可以控制整个集群的只读状态。开启后(即该值为 <code>ON</code>),整个集群中的 TiDB 服务器都将进入只读状态,只有 <code>SELECT</code>、<code>USE</code>、<code>SHOW</code> 等不会修改数据的语句才能被执行,其他如 <code>INSERT</code>、<code>UPDATE</code> 等语句会被拒绝执行。</p></li><li><p>该变量开启只读模式只保证整个集群最终进入只读模式,当变量修改状态还没被同步到其他 TiDB 服务器时,尚未同步的 TiDB 仍然停留在非只读模式。</p></li><li><p>在执行 SQL 语句之前,TiDB 会检查集群的只读标志。从 v6.2.0 起,在提交 SQL 语句之前,TiDB 也会检查该标志,从而防止在服务器被置于只读模式后某些长期运行的 <a href="/zh/tidb/stable/transaction-overview#自动提交">auto commit</a> 语句可能修改数据的情况。</p></li><li><p>在变量开启时,对于尚未提交的事务:</p><ul><li>如果有尚未提交的只读事务,可正常提交该事务。</li><li>如果尚未提交的事务为非只读事务,在事务内执行写入的 SQL 语句会被拒绝。</li><li>如果尚未提交的事务已经有数据改动,其提交也会被拒绝。</li></ul></li><li><p>当集群开启只读模式后,所有用户(包括 <code>SUPER</code> 用户)都无法执行可能写入数据的 SQL 语句,除非该用户被显式地授予了 <code>RESTRICTED_REPLICA_WRITER_ADMIN</code> 权限。</p></li></ul><h3 id="tidb_enable_fast_analyze" style="position:relative"><code>tidb_enable_fast_analyze</code><a href="#tidb_enable_fast_analyze" aria-label="tidb_enable_fast_analyze permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardError MuiAlert-standard css-kdwypz" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ErrorOutlineIcon"><path d="M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">警告</div><p>从 v7.5.0 开始,该变量被废弃。</p></div></div></div><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>这个变量用来控制是否启用统计信息快速分析功能。默认值 0 表示不开启。</li><li>快速分析功能开启后,TiDB 会随机采样约 10000 行的数据来构建统计信息。因此在数据分布不均匀或者数据量比较少的情况下,统计信息的准确度会比较低。这可能导致执行计划不优,比如选错索引。如果可以接受普通 <code>ANALYZE</code> 语句的执行时间,则推荐关闭快速分析功能。</li></ul><h3 id="tidb_enable_fast_table_check-span-classversion-mark从-v720-版本开始引入span" style="position:relative"><code>tidb_enable_fast_table_check</code> <span class="version-mark">从 v7.2.0 版本开始引入</span><a href="#tidb_enable_fast_table_check-span-classversion-mark%E4%BB%8E-v720-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_fast_table_check span classversion mark从 v720 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardInfo MuiAlert-standard css-1bzshic" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="InfoOutlinedIcon"><path d="M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">注意</div><p>该功能对<a href="/zh/tidb/stable/sql-statement-create-index#多值索引">多值索引</a>和前缀索引不生效。</p></div></div></div><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>这个变量用于控制是否使用基于校验和的方式来快速检查表中数据和索引的一致性。默认值 <code>ON</code> 表示该功能默认开启。</li><li>开启后,TiDB 执行 <a href="/zh/tidb/stable/sql-statement-admin-check-table-index"><code>ADMIN CHECK [TABLE|INDEX]</code></a> 语句的速度更快。</li></ul><h3 id="tidb_enable_foreign_key-span-classversion-mark从-v630-版本开始引入span" style="position:relative"><code>tidb_enable_foreign_key</code> <span class="version-mark">从 v6.3.0 版本开始引入</span><a href="#tidb_enable_foreign_key-span-classversion-mark%E4%BB%8E-v630-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_foreign_key span classversion mark从 v630 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:在 v6.6.0 之前版本中为 <code>OFF</code>,在 v6.6.0 及之后的版本中为 <code>ON</code>。</li><li>这个变量用于控制是否开启 <code>FOREIGN KEY</code> 特性。</li></ul><h3 id="tidb_enable_gc_aware_memory_track" style="position:relative"><code>tidb_enable_gc_aware_memory_track</code><a href="#tidb_enable_gc_aware_memory_track" aria-label="tidb_enable_gc_aware_memory_track permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardError MuiAlert-standard css-kdwypz" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ErrorOutlineIcon"><path d="M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">警告</div><p>该变量为 TiDB 内部调试变量,可能会在未来版本中删除,<strong>请勿</strong>设置该变量。</p></div></div></div><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>这个变量用于控制是否开启可感知到垃圾回收的内存追踪 (GC-Aware memory track)。</li></ul><h3 id="tidb_enable_global_index-span-classversion-mark从-v760-版本开始引入span" style="position:relative"><code>tidb_enable_global_index</code> <span class="version-mark">从 v7.6.0 版本开始引入</span><a href="#tidb_enable_global_index-span-classversion-mark%E4%BB%8E-v760-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_global_index span classversion mark从 v760 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>可选值:<code>OFF</code>,<code>ON</code></li><li>这个变量用于控制是否支持对分区表创建 <code>Global index</code>。<code>Global index</code> 当前正处于开发阶段,<strong>不推荐修改该变量值</strong>。</li></ul><h3 id="tidb_enable_non_prepared_plan_cache" style="position:relative"><code>tidb_enable_non_prepared_plan_cache</code><a href="#tidb_enable_non_prepared_plan_cache" aria-label="tidb_enable_non_prepared_plan_cache permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>这个变量用来控制是否开启<a href="/zh/tidb/stable/sql-non-prepared-plan-cache">非 Prepare 语句执行计划缓存</a>。</li><li>开启此功能可能会带来额外的内存和 CPU 开销,并不一定适用于所有场景,请根据具体的使用情况决定是否开启该功能。</li></ul><h3 id="tidb_enable_non_prepared_plan_cache_for_dml-span-classversion-mark从-v710-版本开始引入span" style="position:relative"><code>tidb_enable_non_prepared_plan_cache_for_dml</code> <span class="version-mark">从 v7.1.0 版本开始引入</span><a href="#tidb_enable_non_prepared_plan_cache_for_dml-span-classversion-mark%E4%BB%8E-v710-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_non_prepared_plan_cache_for_dml span classversion mark从 v710 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardError MuiAlert-standard css-kdwypz" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ErrorOutlineIcon"><path d="M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">警告</div><p>针对 DML 语句的非 Prepare 语句执行计划缓存目前为实验特性,不建议在生产环境中使用。该功能可能会在未事先通知的情况下发生变化或删除。如果发现 bug,请在 GitHub 上提 <a href="https://github.com/pingcap/tidb/issues" target="_blank" referrerpolicy="no-referrer-when-downgrade">issue</a> 反馈。</p></div></div></div><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>这个变量用来控制<a href="/zh/tidb/stable/sql-non-prepared-plan-cache">非 Prepare 语句执行计划缓存</a>是否支持 DML 语句。</li></ul><h3 id="tidb_enable_gogc_tuner-span-classversion-mark从-v640-版本开始引入span" style="position:relative"><code>tidb_enable_gogc_tuner</code> <span class="version-mark">从 v6.4.0 版本开始引入</span><a href="#tidb_enable_gogc_tuner-span-classversion-mark%E4%BB%8E-v640-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_gogc_tuner span classversion mark从 v640 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>该变量来用控制是否开启 GOGC Tuner。</li></ul><h3 id="tidb_enable_historical_stats" style="position:relative"><code>tidb_enable_historical_stats</code><a href="#tidb_enable_historical_stats" aria-label="tidb_enable_historical_stats permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>这个变量用来控制是否开启历史统计信息。默认值为 <code>ON</code> 表示默认开启历史统计信息。</li></ul><h3 id="tidb_enable_historical_stats_for_capture" style="position:relative"><code>tidb_enable_historical_stats_for_capture</code><a href="#tidb_enable_historical_stats_for_capture" aria-label="tidb_enable_historical_stats_for_capture permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardError MuiAlert-standard css-kdwypz" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ErrorOutlineIcon"><path d="M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">警告</div><p>当前版本中该变量控制的功能尚未完全生效,请保留默认值。</p></div></div></div><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>这个变量用来控制 <code>PLAN REPLAYER CAPTURE</code> 抓取的内容是否默认带历史统计信息。默认值为 <code>OFF</code>,表示默认不带历史统计信息。</li></ul><h3 id="tidb_enable_index_merge-span-classversion-mark从-v40-版本开始引入span" style="position:relative"><code>tidb_enable_index_merge</code> <span class="version-mark">从 v4.0 版本开始引入</span><a href="#tidb_enable_index_merge-span-classversion-mark%E4%BB%8E-v40-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_index_merge span classversion mark从 v40 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardInfo MuiAlert-standard css-1bzshic" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="InfoOutlinedIcon"><path d="M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">注意</div><ul><li>当集群从 v4.0.0 以下版本升级到 v5.4.0 及以上版本时,该变量开关默认关闭,防止升级后计划发生变化导致回退。</li><li>当集群从 v4.0.0 及以上版本升级到 v5.4.0 及以上版本时,该变量开关保持升级前的状态。</li><li>对于 v5.4.0 及以上版本的新建集群,该变量开关默认开启。</li></ul></div></div></div><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>这个变量用于控制是否开启 index merge 功能。</li></ul><h3 id="tidb_enable_index_merge_join" style="position:relative"><code>tidb_enable_index_merge_join</code><a href="#tidb_enable_index_merge_join" aria-label="tidb_enable_index_merge_join permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>表示是否启用 <code>IndexMergeJoin</code> 算子。</li><li>该变量为 TiDB 内部变量,<strong>不推荐使用</strong>,否则可能会造成数据正确性问题。</li></ul><h3 id="tidb_enable_legacy_instance_scope-span-classversion-mark从-v600-版本开始引入span" style="position:relative"><code>tidb_enable_legacy_instance_scope</code> <span class="version-mark">从 v6.0.0 版本开始引入</span><a href="#tidb_enable_legacy_instance_scope-span-classversion-mark%E4%BB%8E-v600-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_legacy_instance_scope span classversion mark从 v600 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>这个变量用于允许使用 <code>SET SESSION</code> 对 <code>INSTANCE</code> 作用域的变量进行设置,用法同 <code>SET GLOBAL</code>。</li><li>为了兼容之前的 TiDB 版本,该变量值默认为 <code>ON</code>。</li></ul><h3 id="tidb_enable_list_partition-span-classversion-mark从-v50-版本开始引入span" style="position:relative"><code>tidb_enable_list_partition</code> <span class="version-mark">从 v5.0 版本开始引入</span><a href="#tidb_enable_list_partition-span-classversion-mark%E4%BB%8E-v50-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_list_partition span classversion mark从 v50 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>这个变量用来设置是否开启 <code>LIST (COLUMNS) TABLE PARTITION</code> 特性。</li></ul><h3 id="tidb_enable_local_txn" style="position:relative"><code>tidb_enable_local_txn</code><a href="#tidb_enable_local_txn" aria-label="tidb_enable_local_txn permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>该变量用于一个未发布的特性,<strong>请勿修改该变量值</strong>。</li></ul><h3 id="tidb_enable_metadata_lock-span-classversion-mark从-v630-版本开始引入span" style="position:relative"><code>tidb_enable_metadata_lock</code> <span class="version-mark">从 v6.3.0 版本开始引入</span><a href="#tidb_enable_metadata_lock-span-classversion-mark%E4%BB%8E-v630-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_metadata_lock span classversion mark从 v630 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>这个变量用来设置是否开启<a href="/zh/tidb/stable/metadata-lock">元数据锁</a>特性。需要注意,在设置该变量时,集群中不能有 DDL 任务,以免造成非预期数据正确性、一致性问题。</li></ul><h3 id="tidb_enable_mutation_checker-span-classversion-mark从-v600-版本开始引入span" style="position:relative"><code>tidb_enable_mutation_checker</code> <span class="version-mark">从 v6.0.0 版本开始引入</span><a href="#tidb_enable_mutation_checker-span-classversion-mark%E4%BB%8E-v600-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_mutation_checker span classversion mark从 v600 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>这个变量用于设置是否开启 mutation checker。mutation checker 是一项在 DML 语句执行过程中进行的数据索引一致性校验,校验报错会回滚当前语句。开启该校验会导致 CPU 使用轻微上升。详见<a href="/zh/tidb/stable/troubleshoot-data-inconsistency-errors">数据索引一致性报错</a>。</li><li>对于新创建的 v6.0.0 及以上的集群,默认值为 <code>ON</code>。对于升级版本的集群,如果升级前是低于 v6.0.0 的版本,升级后默认值为 <code>OFF</code>。</li></ul><h3 id="tidb_enable_new_cost_interface-span-classversion-mark从-v620-版本开始引入span" style="position:relative"><code>tidb_enable_new_cost_interface</code> <span class="version-mark">从 v6.2.0 版本开始引入</span><a href="#tidb_enable_new_cost_interface-span-classversion-mark%E4%BB%8E-v620-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_new_cost_interface span classversion mark从 v620 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>TiDB v6.2.0 对代价模型的实现进行了代码层面的重构,这个变量用来控制是否使用重构后的代价模型 <a href="/zh/tidb/stable/cost-model#cost-model-version-2">Cost Model Version 2</a>。</li><li>重构后的代价模型使用完全一样的代价公式,因此不会引起计划选择的变动,此开关默认打开。</li><li>从 v6.1 升级至 v6.2 的用户,此开关保持升级前的 <code>OFF</code> 状态,此时建议直接打开;对于从 v6.1 之前版本升级至 v6.2 的用户,此开关默认为 <code>ON</code>。</li></ul><h3 id="tidb_enable_new_only_full_group_by_check-span-classversion-mark从-v610-版本开始引入span" style="position:relative"><code>tidb_enable_new_only_full_group_by_check</code> <span class="version-mark">从 v6.1.0 版本开始引入</span><a href="#tidb_enable_new_only_full_group_by_check-span-classversion-mark%E4%BB%8E-v610-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_new_only_full_group_by_check span classversion mark从 v610 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>该变量用于控制 TiDB 执行 <code>ONLY_FULL_GROUP_BY</code> 检查时的行为。有关 <code>ONLY_FULL_GROUP_BY</code> 的信息可以参考 <a href="https://dev.mysql.com/doc/refman/8.0/en/sql-mode.html#sqlmode_only_full_group_by" target="_blank" referrerpolicy="no-referrer-when-downgrade">MySQL 文档</a>。在 v6.1 中 TiDB 对该项检查做了更严格正确的处理。</li><li>由于可能存在版本升级造成的兼容性问题,在 v6.1 中该变量默认值是 <code>OFF</code>,即默认关闭。</li></ul><h3 id="tidb_enable_noop_functions-span-classversion-mark从-v40-版本开始引入span" style="position:relative"><code>tidb_enable_noop_functions</code> <span class="version-mark">从 v4.0 版本开始引入</span><a href="#tidb_enable_noop_functions-span-classversion-mark%E4%BB%8E-v40-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_noop_functions span classversion mark从 v40 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:枚举型</li><li>默认值:<code>OFF</code></li><li>可选值:<code>ON</code>、<code>OFF</code>、<code>WARN</code></li><li>默认情况下,用户尝试将某些语法用于尚未实现的功能时,TiDB 会报错。若将该变量值设为 <code>ON</code>,TiDB 则自动忽略此类功能不可用的情况,即不会报错。若用户无法更改 SQL 代码,可考虑将变量值设为 <code>ON</code>。</li><li>启用 <code>noop</code> 函数可以控制以下行为:<ul><li><code>LOCK IN SHARE MODE</code> 语法</li><li><code>SQL_CALC_FOUND_ROWS</code> 语法</li><li><code>START TRANSACTION READ ONLY</code> 和 <code>SET TRANSACTION READ ONLY</code> 语法</li><li><code>tx_read_only</code>、<code>transaction_read_only</code>、<code>offline_mode</code>、<code>super_read_only</code>、<code>read_only</code> 以及 <code>sql_auto_is_null</code> 系统变量</li><li><code>GROUP BY <expr> ASC|DESC</code> 语法</li></ul></li></ul><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardError MuiAlert-standard css-kdwypz" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ErrorOutlineIcon"><path d="M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">警告</div><p>该变量只有在默认值 <code>OFF</code> 时,才算是安全的。因为设置 <code>tidb_enable_noop_functions=1</code> 后,TiDB 会自动忽略某些语法而不报错,这可能会导致应用程序出现异常行为。例如,允许使用语法 <code>START TRANSACTION READ ONLY</code> 时,事务仍会处于读写模式。</p></div></div></div><h3 id="tidb_enable_noop_variables-span-classversion-mark从-v620-版本开始引入span" style="position:relative"><code>tidb_enable_noop_variables</code> <span class="version-mark">从 v6.2.0 版本开始引入</span><a href="#tidb_enable_noop_variables-span-classversion-mark%E4%BB%8E-v620-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_noop_variables span classversion mark从 v620 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>若该变量值为 <code>OFF</code>,TiDB 具有以下行为:<ul><li>使用 <code>SET</code> 设置 <code>noop</code> 的系统变量时会报 <code>"setting *variable_name* has no effect in TiDB"</code> 的警告。</li><li><code>SHOW [SESSION | GLOBAL] VARIABLES</code> 的结果不显示 <code>noop</code> 的系统变量。</li><li>使用 <code>SELECT</code> 读取 <code>noop</code> 的系统变量时会报 <code>"variable *variable_name* has no effect in TiDB"</code> 的警告。</li></ul></li><li>你可以通过 <code>SELECT * FROM INFORMATION_SCHEMA.CLIENT_ERRORS_SUMMARY_GLOBAL;</code> 语句来检查 TiDB 实例是否曾设置和读取 <code>noop</code> 系统变量。</li></ul><h3 id="tidb_enable_null_aware_anti_join-span-classversion-mark从-v630-版本开始引入span" style="position:relative"><code>tidb_enable_null_aware_anti_join</code> <span class="version-mark">从 v6.3.0 版本开始引入</span><a href="#tidb_enable_null_aware_anti_join-span-classversion-mark%E4%BB%8E-v630-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_null_aware_anti_join span classversion mark从 v630 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:布尔型</li><li>默认值:在 v7.0.0 之前版本中为 <code>OFF</code>,即默认关闭。在 v7.0.0 及之后的版本中为 <code>ON</code>,即默认开启。</li><li>这个变量用于控制 TiDB 对特殊集合算子 <code>NOT IN</code> 和 <code>!= ALL</code> 引导的子查询产生的 ANTI JOIN 是否采用 Null Aware Hash Join 的执行方式。</li><li>从旧版本升级到 v7.0.0 及之后版本,该功能自动开启,即该变量的值修改为默认值 <code>ON</code>。</li></ul><h3 id="tidb_enable_outer_join_reorder-span-classversion-mark从-v610-版本开始引入span" style="position:relative"><code>tidb_enable_outer_join_reorder</code> <span class="version-mark">从 v6.1.0 版本开始引入</span><a href="#tidb_enable_outer_join_reorder-span-classversion-mark%E4%BB%8E-v610-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_outer_join_reorder span classversion mark从 v610 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li><p>作用域:SESSION | GLOBAL</p></li><li><p>是否持久化到集群:是</p></li><li><p>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</p></li><li><p>类型:布尔型</p></li><li><p>默认值:<code>ON</code></p></li><li><p>自 v6.1.0 起,TiDB 的 <a href="/zh/tidb/stable/join-reorder">Join Reorder 算法</a>开始支持 Outer Join。该变量用于控制是否启用 Outer Join 的 Join Reorder。</p></li><li><p>对于从较低版本升级到当前版本的 TiDB:</p><ul><li>如果升级前 TiDB 的版本低于 v6.1.0,升级后该变量的默认值为 <code>ON</code>。</li><li>如果升级前 TiDB 的版本等于或大于 v6.1.0,升级后该变量的默认值跟随升级前的设定值。</li></ul></li></ul><h3 id="tidb_enable_inl_join_inner_multi_pattern-span-classversion-mark从-v700-版本开始引入span" style="position:relative"><code>tidb_enable_inl_join_inner_multi_pattern</code> <span class="version-mark">从 v7.0.0 版本开始引入</span><a href="#tidb_enable_inl_join_inner_multi_pattern-span-classversion-mark%E4%BB%8E-v700-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_inl_join_inner_multi_pattern span classversion mark从 v700 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>该变量用于控制当内表上有 <code>Selection</code>/<code>Projection</code> 算子时是否支持 Index Join。<code>OFF</code> 表示不支持。</li></ul><h3 id="tidb_enable_ordered_result_mode" style="position:relative"><code>tidb_enable_ordered_result_mode</code><a href="#tidb_enable_ordered_result_mode" aria-label="tidb_enable_ordered_result_mode permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>指定是否对最终的输出结果进行自动排序。</li><li>例如,开启该变量后,TiDB 会将 <code>SELECT a, MAX(b) FROM t GROUP BY a</code> 处理为 <code>SELECT a, MAX(b) FROM t GROUP BY a ORDER BY a, MAX(b)</code>。</li></ul><h3 id="tidb_enable_paging-span-classversion-mark从-v540-版本开始引入span" style="position:relative"><code>tidb_enable_paging</code> <span class="version-mark">从 v5.4.0 版本开始引入</span><a href="#tidb_enable_paging-span-classversion-mark%E4%BB%8E-v540-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_paging span classversion mark从 v540 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li><p>作用域:SESSION | GLOBAL</p></li><li><p>是否持久化到集群:是</p></li><li><p>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</p></li><li><p>类型:布尔型</p></li><li><p>默认值:<code>ON</code></p></li><li><p>这个变量用于控制是否使用分页 (paging) 方式发送 Coprocessor 请求。对于 [v5.4.0, v6.2.0) 区间的 TiDB 版本,该变量只对 <code>IndexLookup</code> 算子生效;对于 v6.2.0 以及之后的版本,该变量对全局生效。从 v6.4.0 版本开始,该变量默认值由 <code>OFF</code> 改成 <code>ON</code>。</p></li><li><p>适用场景:</p><ul><li>推荐在所有偏 OLTP 的场景下使用 paging。</li><li>对于使用 <code>IndexLookUp</code> 和 <code>Limit</code> 并且 <code>Limit</code> 无法下推到 <code>IndexScan</code> 上的读请求,可能会出现读请求的延迟高、TiKV 的 Unified read pool CPU 使用率高的情况。在这种情况下,由于 <code>Limit</code> 算子只需要少部分数据,开启 <a href="#tidb_enable_paging-%E4%BB%8E-v540-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5"><code>tidb_enable_paging</code></a> 能够减少处理数据的数量,从而降低延迟、减少资源消耗。</li><li>对于 <a href="/zh/tidb/stable/dumpling-overview">Dumpling</a> 数据导出或者全表扫描这类的场景,开启 paging 后可以有效降低 TiDB 进程的内存消耗。</li></ul></li></ul><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardInfo MuiAlert-standard css-1bzshic" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="InfoOutlinedIcon"><path d="M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">注意</div><p>对于偏 OLAP 的场景,并且以 TiKV 而非 TiFlash 作为存储引擎时,开启 paging 可能导致部分场景下性能回退。此时,你可以考虑通过该变量关闭 paging 或者通过系统变量 <a href="/zh/tidb/stable/system-variables#tidb_min_paging_size-从-v620-版本开始引入"><code>tidb_min_paging_size</code></a> 和 <a href="/zh/tidb/stable/system-variables#tidb_max_paging_size-从-v630-版本开始引入"><code>tidb_max_paging_size</code></a> 调整 paging size 的行数范围。</p></div></div></div><h3 id="tidb_enable_parallel_apply-span-classversion-mark从-v50-版本开始引入span" style="position:relative"><code>tidb_enable_parallel_apply</code> <span class="version-mark">从 v5.0 版本开始引入</span><a href="#tidb_enable_parallel_apply-span-classversion-mark%E4%BB%8E-v50-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_parallel_apply span classversion mark从 v50 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>这个变量用于控制是否开启 Apply 算子并发,并发数由 <code>tidb_executor_concurrency</code> 变量控制。Apply 算子用来处理关联子查询且默认无并发,所以执行速度较慢。打开 Apply 并发开关可增加并发度,提高执行速度。目前默认关闭。</li></ul><h3 id="tidb_enable_parallel_hashagg_spill-span-classversion-mark从-v800-版本开始引入span" style="position:relative"><code>tidb_enable_parallel_hashagg_spill</code> <span class="version-mark">从 v8.0.0 版本开始引入</span><a href="#tidb_enable_parallel_hashagg_spill-span-classversion-mark%E4%BB%8E-v800-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_parallel_hashagg_spill span classversion mark从 v800 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardError MuiAlert-standard css-kdwypz" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ErrorOutlineIcon"><path d="M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">警告</div><p>该变量控制的功能为实验特性,不建议在生产环境上使用。如果发现 bug,请在 GitHub 上提 <a href="https://github.com/pingcap/tidb/issues" target="_blank" referrerpolicy="no-referrer-when-downgrade">issue</a> 反馈。</p></div></div></div><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:在 v8.1.0 中为 <code>ON</code>,在 v8.1.1 及后续的 8.1 补丁版本中为 <code>OFF</code></li><li>这个变量用来控制 TiDB 是否支持并行 HashAgg 进行落盘。当该变量设置为 <code>ON</code> 时,并行 HashAgg 将支持落盘。该变量将在功能正式发布后废弃。</li></ul><h3 id="tidb_enable_pipelined_window_function" style="position:relative"><code>tidb_enable_pipelined_window_function</code><a href="#tidb_enable_pipelined_window_function" aria-label="tidb_enable_pipelined_window_function permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>该变量指定是否对<a href="/zh/tidb/stable/window-functions">窗口函数</a>采用流水线的执行算法。</li></ul><h3 id="tidb_enable_plan_cache_for_param_limit-span-classversion-mark从-v660-版本开始引入span" style="position:relative"><code>tidb_enable_plan_cache_for_param_limit</code> <span class="version-mark">从 v6.6.0 版本开始引入</span><a href="#tidb_enable_plan_cache_for_param_limit-span-classversion-mark%E4%BB%8E-v660-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_plan_cache_for_param_limit span classversion mark从 v660 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>这个变量用来控制 Prepared Plan Cache 是否缓存 <code>LIMIT</code> 后面带变量 (<code>LIMIT ?</code>) 的执行计划。目前不支持缓存 <code>LIMIT</code> 后面带变量且变量值大于 10000 的执行计划。</li></ul><h3 id="tidb_enable_plan_cache_for_subquery-span-classversion-mark从-v700-版本开始引入span" style="position:relative"><code>tidb_enable_plan_cache_for_subquery</code> <span class="version-mark">从 v7.0.0 版本开始引入</span><a href="#tidb_enable_plan_cache_for_subquery-span-classversion-mark%E4%BB%8E-v700-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_plan_cache_for_subquery span classversion mark从 v700 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>这个变量用来控制 Prepared Plan Cache 是否缓存包含子查询的查询。</li></ul><h3 id="tidb_enable_plan_replayer_capture" style="position:relative"><code>tidb_enable_plan_replayer_capture</code><a href="#tidb_enable_plan_replayer_capture" aria-label="tidb_enable_plan_replayer_capture permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>这个变量用来控制是否开启 <a href="/zh/tidb/stable/sql-plan-replayer#使用-plan-replayer-capture-抓取目标计划"><code>PLAN REPLAYER CAPTURE</code> 功能</a>。默认值 <code>ON</code> 代表开启 <code>PLAN REPLAYER CAPTURE</code> 功能。</li></ul><h3 id="tidb_enable_plan_replayer_continuous_capture-span-classversion-mark从-v700-版本开始引入span" style="position:relative"><code>tidb_enable_plan_replayer_continuous_capture</code> <span class="version-mark">从 v7.0.0 版本开始引入</span><a href="#tidb_enable_plan_replayer_continuous_capture-span-classversion-mark%E4%BB%8E-v700-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_plan_replayer_continuous_capture span classversion mark从 v700 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>这个变量用来控制是否开启 <a href="/zh/tidb/stable/sql-plan-replayer#使用-plan-replayer-continuous-capture"><code>PLAN REPLAYER CONTINUOUS CAPTURE</code> 功能</a>。默认值 <code>OFF</code> 代表关闭功能。</li></ul><h3 id="tidb_enable_prepared_plan_cache-span-classversion-mark从-v610-版本开始引入span" style="position:relative"><code>tidb_enable_prepared_plan_cache</code> <span class="version-mark">从 v6.1.0 版本开始引入</span><a href="#tidb_enable_prepared_plan_cache-span-classversion-mark%E4%BB%8E-v610-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_prepared_plan_cache span classversion mark从 v610 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>这个变量用来控制是否开启 <a href="/zh/tidb/stable/sql-prepared-plan-cache">Prepared Plan Cache</a>。开启后,对 <code>Prepare</code>、<code>Execute</code> 请求的执行计划会进行缓存,以便在后续执行时跳过查询计划优化这个步骤,获得性能上的提升。</li><li>在 v6.1.0 之前这个开关通过 TiDB 配置文件 (<code>prepared-plan-cache.enabled</code>) 进行配置,升级到 v6.1.0 时会自动继承原有设置。</li></ul><h3 id="tidb_enable_prepared_plan_cache_memory_monitor-span-classversion-mark从-v640-版本开始引入span" style="position:relative"><code>tidb_enable_prepared_plan_cache_memory_monitor</code> <span class="version-mark">从 v6.4.0 版本开始引入</span><a href="#tidb_enable_prepared_plan_cache_memory_monitor-span-classversion-mark%E4%BB%8E-v640-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_prepared_plan_cache_memory_monitor span classversion mark从 v640 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>这个变量用来控制是否统计 Prepared Plan Cache 中所缓存的执行计划占用的内存。具体可见 <a href="/zh/tidb/stable/sql-prepared-plan-cache#prepared-plan-cache-的内存管理">Prepared Plan Cache 的内存管理</a>。</li></ul><h3 id="tidb_enable_pseudo_for_outdated_stats-span-classversion-mark从-v530-版本开始引入span" style="position:relative"><code>tidb_enable_pseudo_for_outdated_stats</code> <span class="version-mark">从 v5.3.0 版本开始引入</span><a href="#tidb_enable_pseudo_for_outdated_stats-span-classversion-mark%E4%BB%8E-v530-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_pseudo_for_outdated_stats span classversion mark从 v530 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>这个变量用来控制优化器在一张表上的统计信息过期时的行为。</li><li>统计信息过期的判断标准:最近一次对某张表执行 <code>ANALYZE</code> 获得统计信息后,该表数据被修改的行数大于该表总行数的 80%,便可判定该表的统计信息已过期。该比例可通过 <a href="/zh/tidb/stable/tidb-configuration-file#pseudo-estimate-ratio"><code>pseudo-estimate-ratio</code></a> 配置参数调整。</li><li>默认情况下(即该变量值为 <code>OFF</code> 时),某张表上的统计信息过期后,优化器仍会使用该表上的统计信息。将该变量值设为 <code>ON</code> 时,当统计信息过期后,优化器认为该表上除总行数以外的统计信息不再可靠,转而使用 pseudo 统计信息。</li><li>如果表数据修改较频繁,没有及时对表执行 <code>ANALYZE</code>,但又希望执行计划保持稳定,推荐将该变量值设为 <code>OFF</code>。</li></ul><h3 id="tidb_enable_rate_limit_action" style="position:relative"><code>tidb_enable_rate_limit_action</code><a href="#tidb_enable_rate_limit_action" aria-label="tidb_enable_rate_limit_action permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>这个变量控制是否为读数据的算子开启动态内存控制功能。读数据的算子默认启用 <a href="/zh/tidb/stable/system-variables#tidb_distsql_scan_concurrency"><code>tidb_distsql_scan_concurrency</code></a> 所允许的最大线程数来读取数据。当单条 SQL 语句的内存使用每超过 <a href="/zh/tidb/stable/system-variables#tidb_mem_quota_query"><code>tidb_mem_quota_query</code></a> 一次,读数据的算子会停止一个线程。</li><li>当读数据的算子只剩 1 个线程且当单条 SQL 语句的内存使用继续超过 <a href="/zh/tidb/stable/system-variables#tidb_mem_quota_query"><code>tidb_mem_quota_query</code></a> 时,该 SQL 语句会触发其它的内存控制行为,例如<a href="/zh/tidb/stable/system-variables#tidb_enable_tmp_storage_on_oom">落盘</a>。</li><li>该变量在单条查询仅涉及读数据的情况下,对内存控制效果较好。若还存在额外的计算操作(如连接、聚合等),打开该变量可能会导致内存不受 <code>tidb_mem_quota_query</code> 控制,加剧 OOM 风险。</li></ul><h3 id="tidb_enable_resource_control-span-classversion-mark从-v660-版本开始引入span" style="position:relative"><code>tidb_enable_resource_control</code> <span class="version-mark">从 v6.6.0 版本开始引入</span><a href="#tidb_enable_resource_control-span-classversion-mark%E4%BB%8E-v660-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_resource_control span classversion mark从 v660 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>默认值:<code>ON</code></li><li>类型:布尔型</li><li>该变量是<a href="/zh/tidb/stable/tidb-resource-control">资源管控特性</a>的开关。该变量设置为 <code>ON</code> 时,集群支持应用按照资源组做资源隔离。</li></ul><h3 id="tidb_enable_reuse_chunk-span-classversion-mark从-v640-版本开始引入span" style="position:relative"><code>tidb_enable_reuse_chunk</code> <span class="version-mark">从 v6.4.0 版本开始引入</span><a href="#tidb_enable_reuse_chunk-span-classversion-mark%E4%BB%8E-v640-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_reuse_chunk span classversion mark从 v640 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>可选值:<code>OFF</code>,<code>ON</code></li><li>该变量用于控制 TiDB 是否启用 Chunk 对象缓存。如果为 <code>ON</code>,则优先使用缓存中的 Chunk 对象,缓存中找不到申请的对象时才会从系统内存中申请。如果为 <code>OFF</code>,则直接从系统内存中申请 Chunk 对象。</li></ul><h3 id="tidb_enable_slow_log" style="position:relative"><code>tidb_enable_slow_log</code><a href="#tidb_enable_slow_log" aria-label="tidb_enable_slow_log permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:否,仅作用于当前连接的 TiDB 实例</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>这个变量用于控制是否开启 slow log 功能。</li></ul><h3 id="tidb_enable_stmt_summary-span-classversion-mark从-v304-版本开始引入span" style="position:relative"><code>tidb_enable_stmt_summary</code> <span class="version-mark">从 v3.0.4 版本开始引入</span><a href="#tidb_enable_stmt_summary-span-classversion-mark%E4%BB%8E-v304-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_stmt_summary span classversion mark从 v304 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>这个变量用来控制是否开启 statement summary 功能。如果开启,SQL 的耗时等执行信息将被记录到系统表 <code>information_schema.STATEMENTS_SUMMARY</code> 中,用于定位和排查 SQL 性能问题。</li></ul><h3 id="tidb_enable_strict_double_type_check-span-classversion-mark从-v50-版本开始引入span" style="position:relative"><code>tidb_enable_strict_double_type_check</code> <span class="version-mark">从 v5.0 版本开始引入</span><a href="#tidb_enable_strict_double_type_check-span-classversion-mark%E4%BB%8E-v50-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_strict_double_type_check span classversion mark从 v50 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>这个变量用来控制是否可以用 <code>DOUBLE</code> 类型的无效定义创建表。该设置的目的是提供一个从 TiDB 早期版本升级的方法,因为早期版本在验证类型方面不太严格。</li><li>该变量的默认值 <code>ON</code> 与 MySQL 兼容。</li></ul><p>例如,由于无法保证浮点类型的精度,现在将 <code>DOUBLE(10)</code> 类型视为无效。将 <code>tidb_enable_strict_double_type_check</code> 更改为 <code>OFF</code> 后,将会创建表。如下所示:</p><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia"><span class="hljs-keyword">CREATE</span> <span class="hljs-keyword">TABLE</span> t1 (id <span class="hljs-type">int</span>, c <span class="hljs-keyword">double</span>(<span class="hljs-number">10</span>)); ERROR <span class="hljs-number">1149</span> (<span class="hljs-number">42000</span>): You have an error <span class="hljs-keyword">in</span> your <span class="hljs-keyword">SQL</span> syntax; <span class="hljs-keyword">check</span> the manual that corresponds <span class="hljs-keyword">to</span> your MySQL server version <span class="hljs-keyword">for</span> the <span class="hljs-keyword">right</span> syntax <span class="hljs-keyword">to</span> use <span class="hljs-keyword">SET</span> tidb_enable_strict_double_type_check <span class="hljs-operator">=</span> <span class="hljs-string">'OFF'</span>; Query OK, <span class="hljs-number">0</span> <span class="hljs-keyword">rows</span> affected (<span class="hljs-number">0.00</span> sec) <span class="hljs-keyword">CREATE</span> <span class="hljs-keyword">TABLE</span> t1 (id <span class="hljs-type">int</span>, c <span class="hljs-keyword">double</span>(<span class="hljs-number">10</span>)); Query OK, <span class="hljs-number">0</span> <span class="hljs-keyword">rows</span> affected (<span class="hljs-number">0.09</span> sec) </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardInfo MuiAlert-standard css-1bzshic" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="InfoOutlinedIcon"><path d="M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">注意</div><p>该设置仅适用于 <code>DOUBLE</code> 类型,因为 MySQL 允许为 <code>FLOAT</code> 类型指定精度。从 MySQL 8.0.17 开始已弃用此行为,不建议为 <code>FLOAT</code> 或 <code>DOUBLE</code> 类型指定精度。</p></div></div></div><h3 id="tidb_enable_table_partition" style="position:relative"><code>tidb_enable_table_partition</code><a href="#tidb_enable_table_partition" aria-label="tidb_enable_table_partition permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>默认值:<code>ON</code></li><li>类型:枚举型</li><li>可选值:<code>OFF</code>,<code>ON</code>,<code>AUTO</code></li><li>这个变量用来设置是否开启 <code>TABLE PARTITION</code> 特性。目前变量支持以下三种值:<ul><li>默认值 <code>ON</code> 表示开启 TiDB 当前已实现了的分区表类型,目前 Range partition、Hash partition 以及 Range column 单列的场景会生效。</li><li><code>AUTO</code> 目前作用和 <code>ON</code> 一样。</li><li><code>OFF</code> 表示关闭 <code>TABLE PARTITION</code> 特性,此时语法还是保持兼容,只是创建的表并不是真正的分区表,而是普通的表。</li></ul></li></ul><h3 id="tidb_enable_telemetry-span-classversion-mark从-v402-版本开始引入span" style="position:relative"><code>tidb_enable_telemetry</code> <span class="version-mark">从 v4.0.2 版本开始引入</span><a href="#tidb_enable_telemetry-span-classversion-mark%E4%BB%8E-v402-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_telemetry span classversion mark从 v402 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>这个变量用于动态地控制 TiDB 遥测功能是否开启,当前版本默认关闭 TiDB 的遥测功能。当所有 TiDB 实例都设置配置项 <a href="/zh/tidb/stable/tidb-configuration-file#enable-telemetry-从-v402-版本开始引入"><code>enable-telemetry</code></a> 为 <code>false</code> 时,将忽略该系统变量,并总是关闭 TiDB 遥测功能。参阅<a href="/zh/tidb/stable/telemetry">遥测</a>了解该功能详情。</li></ul><h3 id="tidb_enable_tiflash_read_for_write_stmt-span-classversion-mark从-v630-版本开始引入span" style="position:relative"><code>tidb_enable_tiflash_read_for_write_stmt</code> <span class="version-mark">从 v6.3.0 版本开始引入</span><a href="#tidb_enable_tiflash_read_for_write_stmt-span-classversion-mark%E4%BB%8E-v630-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_tiflash_read_for_write_stmt span classversion mark从 v630 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li><p>作用域:SESSION | GLOBAL</p></li><li><p>是否持久化到集群:是</p></li><li><p>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</p></li><li><p>类型:布尔型</p></li><li><p>默认值:<code>ON</code></p></li><li><p>这个变量用于控制包含增删改的 SQL 语句中的读取操作能否下推到 TiFlash,比如:</p><ul><li><code>INSERT INTO SELECT</code> 语句中的 <code>SELECT</code> 查询(典型应用场景为 <a href="/zh/tidb/stable/tiflash-results-materialization">TiFlash 查询结果物化</a>)</li><li><code>UPDATE</code> 和 <code>DELETE</code> 语句中的 <code>WHERE</code> 条件过滤</li></ul></li><li><p>从 v7.1.0 开始,该变量废弃。当 <a href="/zh/tidb/stable/system-variables#tidb_allow_mpp-从-v50-版本开始引入"><code>tidb_allow_mpp = ON</code></a> 时,优化器将根据 <a href="/zh/tidb/stable/sql-mode">SQL 模式</a>及 TiFlash 副本的代价估算自行决定是否将查询下推至 TiFlash。需要注意的是,只有当前会话的 <a href="/zh/tidb/stable/sql-mode">SQL 模式</a>为非严格模式(即 <code>sql_mode</code> 值不包含 <code>STRICT_TRANS_TABLES</code> 和 <code>STRICT_ALL_TABLES</code>)时,TiDB 才允许将包含增删改的 SQL 语句(如 <code>INSERT INTO SELECT</code>)中的读取操作下推至 TiFlash。</p></li></ul><h3 id="tidb_enable_tmp_storage_on_oom" style="position:relative"><code>tidb_enable_tmp_storage_on_oom</code><a href="#tidb_enable_tmp_storage_on_oom" aria-label="tidb_enable_tmp_storage_on_oom permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>设置是否在单条 SQL 语句的内存使用超出系统变量 <a href="/zh/tidb/stable/system-variables#tidb_mem_quota_query"><code>tidb_mem_quota_query</code></a> 限制时为某些算子启用临时磁盘。</li><li>在 v6.3.0 之前这个开关可通过 TiDB 配置文件中的 <code>oom-use-tmp-storage</code> 项进行配置。在升级到 v6.3.0 及更新的版本后,集群会自动使用原 <code>oom-use-tmp-storage</code> 的值来初始化该开关,配置文件中 <code>oom-use-tmp-storage</code> 的新设置不再影响该开关。</li></ul><h3 id="tidb_enable_top_sql-span-classversion-mark从-v540-版本开始引入span" style="position:relative"><code>tidb_enable_top_sql</code> <span class="version-mark">从 v5.4.0 版本开始引入</span><a href="#tidb_enable_top_sql-span-classversion-mark%E4%BB%8E-v540-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_top_sql span classversion mark从 v540 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>这个变量用于控制是否开启 <a href="/zh/tidb/stable/top-sql">Top SQL 特性</a>。</li></ul><h3 id="tidb_enable_tso_follower_proxy-span-classversion-mark从-v530-版本开始引入span" style="position:relative"><code>tidb_enable_tso_follower_proxy</code> <span class="version-mark">从 v5.3.0 版本开始引入</span><a href="#tidb_enable_tso_follower_proxy-span-classversion-mark%E4%BB%8E-v530-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_tso_follower_proxy span classversion mark从 v530 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>这个变量用于控制是否开启 TSO Follower Proxy 特性。当该值为 <code>OFF</code> 时,TiDB 仅会从 PD leader 获取 TSO。当该值为 <code>ON</code> 时,TiDB 在获取 TSO 时会将请求均匀地发送到所有 PD 节点上,因此 PD follower 也可以处理 TSO 请求,从而减轻 PD leader 的 CPU 压力。</li><li>适合开启 TSO Follower Proxy 的场景:<ul><li>PD leader 因高压力的 TSO 请求而达到 CPU 瓶颈,导致 TSO RPC 请求的延迟较高。</li><li>集群中的 TiDB 实例数量较多,且调高 <a href="/zh/tidb/stable/system-variables#tidb_tso_client_batch_max_wait_time-从-v530-版本开始引入"><code>tidb_tso_client_batch_max_wait_time</code></a> 并不能缓解 TSO RPC 请求延迟高的问题。</li></ul></li></ul><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardInfo MuiAlert-standard css-1bzshic" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="InfoOutlinedIcon"><path d="M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">注意</div><p>如果 PD leader 的 TSO RPC 延迟升高,但其现象并非由 CPU 使用率达到瓶颈而导致(可能存在网络等问题),此时,打开 TSO Follower Proxy 可能会导致 TiDB 的语句执行延迟上升,从而影响集群的 QPS 表现。</p></div></div></div><h3 id="tidb_enable_unsafe_substitute-span-classversion-mark从-v630-版本开始引入span" style="position:relative"><code>tidb_enable_unsafe_substitute</code> <span class="version-mark">从 v6.3.0 版本开始引入</span><a href="#tidb_enable_unsafe_substitute-span-classversion-mark%E4%BB%8E-v630-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_unsafe_substitute span classversion mark从 v630 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>这个变量用于控制是否对生成列中表达式替换使用不安全的替换方式。默认值为 <code>OFF</code>,即默认关闭不安全的替换方式。详情见<a href="/zh/tidb/stable/generated-columns">生成列</a>。</li></ul><h3 id="tidb_enable_vectorized_expression-span-classversion-mark从-v40-版本开始引入span" style="position:relative"><code>tidb_enable_vectorized_expression</code> <span class="version-mark">从 v4.0 版本开始引入</span><a href="#tidb_enable_vectorized_expression-span-classversion-mark%E4%BB%8E-v40-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_vectorized_expression span classversion mark从 v40 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>这个变量用于控制是否开启向量化执行。</li></ul><h3 id="tidb_enable_window_function" style="position:relative"><code>tidb_enable_window_function</code><a href="#tidb_enable_window_function" aria-label="tidb_enable_window_function permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>这个变量用来控制是否开启<a href="/zh/tidb/stable/window-functions">窗口函数</a>的支持。</li><li>由于窗口函数会使用一些保留关键字,可能导致原先可以正常执行的 SQL 语句在升级 TiDB 后无法被解析语法,此时可以将 <code>tidb_enable_window_function</code> 设置为 <code>OFF</code>。</li></ul><h3 id="tidb_enable_row_level_checksum-span-classversion-mark从-v710-版本开始引入span" style="position:relative"><code>tidb_enable_row_level_checksum</code> <span class="version-mark">从 v7.1.0 版本开始引入</span><a href="#tidb_enable_row_level_checksum-span-classversion-mark%E4%BB%8E-v710-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_row_level_checksum span classversion mark从 v710 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>这个变量用于控制是否开启 <a href="/zh/tidb/stable/ticdc-integrity-check">TiCDC 单行数据正确性校验</a>功能。</li><li>你可以使用 <a href="/zh/tidb/stable/tidb-functions#tidb_row_checksum"><code>TIDB_ROW_CHECKSUM()</code></a> 函数查询行数据的 Checksum 值。</li></ul><h3 id="tidb_enforce_mpp-span-classversion-mark从-v51-版本开始引入span" style="position:relative"><code>tidb_enforce_mpp</code> <span class="version-mark">从 v5.1 版本开始引入</span><a href="#tidb_enforce_mpp-span-classversion-mark%E4%BB%8E-v51-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enforce_mpp span classversion mark从 v51 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:布尔型</li><li>默认值:<code>OFF</code>(表示关闭)。如需修改此变量的默认值,请配置 <a href="/zh/tidb/stable/tidb-configuration-file#enforce-mpp"><code>performance.enforce-mpp</code></a> 参数。</li><li>这个变量用于控制是否忽略优化器代价估算,强制使用 TiFlash 的 MPP 模式执行查询,可以设置的值包括:<ul><li>0 或 OFF,代表不强制使用 MPP 模式(默认)</li><li>1 或 ON,代表将忽略代价估算,强制使用 MPP 模式。注意:只有当 <code>tidb_allow_mpp=true</code> 时该设置才生效。</li></ul></li></ul><p>MPP 是 TiFlash 引擎提供的分布式计算框架,允许节点之间的数据交换并提供高性能、高吞吐的 SQL 算法。MPP 模式选择的详细说明参见<a href="/zh/tidb/stable/use-tiflash-mpp-mode#控制是否选择-mpp-模式">控制是否选择 MPP 模式</a>。</p><h3 id="tidb_evolve_plan_baselines-span-classversion-mark从-v40-版本开始引入span" style="position:relative"><code>tidb_evolve_plan_baselines</code> <span class="version-mark">从 v4.0 版本开始引入</span><a href="#tidb_evolve_plan_baselines-span-classversion-mark%E4%BB%8E-v40-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_evolve_plan_baselines span classversion mark从 v40 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li><p>作用域:SESSION | GLOBAL</p></li><li><p>是否持久化到集群:是</p></li><li><p>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</p></li><li><p>类型:布尔型</p></li><li><p>默认值:<code>OFF</code></p></li><li><p>这个变量用于控制是否启用自动演进绑定功能。该功能的详细介绍和使用方法可以参考<a href="/zh/tidb/stable/sql-plan-management#自动演进绑定-baseline-evolution">自动演进绑定</a>。</p></li><li><p>为了减少自动演进对集群的影响,可以进行以下配置:</p><ul><li>设置 <code>tidb_evolve_plan_task_max_time</code>,限制每个执行计划运行的最长时间,其默认值为 600s;</li><li>设置<code>tidb_evolve_plan_task_start_time</code> 和 <code>tidb_evolve_plan_task_end_time</code>,限制运行演进任务的时间窗口,默认值分别为 <code>00:00 +0000</code> 和 <code>23:59 +0000</code>。</li></ul></li></ul><h3 id="tidb_evolve_plan_task_end_time-span-classversion-mark从-v40-版本开始引入span" style="position:relative"><code>tidb_evolve_plan_task_end_time</code> <span class="version-mark">从 v4.0 版本开始引入</span><a href="#tidb_evolve_plan_task_end_time-span-classversion-mark%E4%BB%8E-v40-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_evolve_plan_task_end_time span classversion mark从 v40 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:时间</li><li>默认值:<code>23:59 +0000</code></li><li>这个变量用来设置一天中允许自动演进的结束时间。</li></ul><h3 id="tidb_evolve_plan_task_max_time-span-classversion-mark从-v40-版本开始引入span" style="position:relative"><code>tidb_evolve_plan_task_max_time</code> <span class="version-mark">从 v4.0 版本开始引入</span><a href="#tidb_evolve_plan_task_max_time-span-classversion-mark%E4%BB%8E-v40-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_evolve_plan_task_max_time span classversion mark从 v40 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>600</code></li><li>范围:<code>[-1, 9223372036854775807]</code></li><li>单位:秒</li><li>该变量用于限制自动演进功能中,每个执行计划运行的最长时间。</li></ul><h3 id="tidb_evolve_plan_task_start_time-span-classversion-mark从-v40-版本开始引入span" style="position:relative"><code>tidb_evolve_plan_task_start_time</code> <span class="version-mark">从 v4.0 版本开始引入</span><a href="#tidb_evolve_plan_task_start_time-span-classversion-mark%E4%BB%8E-v40-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_evolve_plan_task_start_time span classversion mark从 v40 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:时间</li><li>默认值:<code>00:00 +0000</code></li><li>这个变量用来设置一天中允许自动演进的开始时间。</li></ul><h3 id="tidb_executor_concurrency-span-classversion-mark从-v50-版本开始引入span" style="position:relative"><code>tidb_executor_concurrency</code> <span class="version-mark">从 v5.0 版本开始引入</span><a href="#tidb_executor_concurrency-span-classversion-mark%E4%BB%8E-v50-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_executor_concurrency span classversion mark从 v50 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:整数型</li><li>默认值:<code>5</code></li><li>范围:<code>[1, 256]</code></li><li>单位:线程</li></ul><p>变量用来统一设置各个 SQL 算子的并发度,包括:</p><ul><li><code>index lookup</code></li><li><code>index lookup join</code></li><li><code>hash join</code></li><li><code>hash aggregation</code>(partial 和 final 阶段)</li><li><code>window</code></li><li><code>projection</code></li></ul><p><code>tidb_executor_concurrency</code> 整合了已有的系统变量,方便管理。这些变量所列如下:</p><ul><li><code>tidb_index_lookup_concurrency</code></li><li><code>tidb_index_lookup_join_concurrency</code></li><li><code>tidb_hash_join_concurrency</code></li><li><code>tidb_hashagg_partial_concurrency</code></li><li><code>tidb_hashagg_final_concurrency</code></li><li><code>tidb_projection_concurrency</code></li><li><code>tidb_window_concurrency</code></li></ul><p>v5.0 后,用户仍可以单独修改以上系统变量(会有废弃警告),且修改只影响单个算子。后续通过 <code>tidb_executor_concurrency</code> 的修改也不会影响该算子。若要通过 <code>tidb_executor_concurrency</code> 来管理所有算子的并发度,需要将以上所列变量的值设置为 <code>-1</code>。</p><p>对于从 v5.0 之前的版本升级到 v5.0 的系统,如果用户对上述所列变量的值没有做过改动(即 <code>tidb_hash_join_concurrency</code> 值为 <code>5</code>,其他值为 <code>4</code>),则会自动转为使用 <code>tidb_executor_concurrency</code> 来统一管理算子并发度。如果用户对上述变量的值做过改动,则沿用之前的变量对相应的算子做并发控制。</p><h3 id="tidb_expensive_query_time_threshold" style="position:relative"><code>tidb_expensive_query_time_threshold</code><a href="#tidb_expensive_query_time_threshold" aria-label="tidb_expensive_query_time_threshold permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:否,仅作用于当前连接的 TiDB 实例</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>60</code></li><li>范围:<code>[10, 2147483647]</code></li><li>单位:秒</li><li>这个变量用来控制打印 expensive query 日志的阈值时间,默认值是 60 秒。expensive query 日志和慢日志的差别是,慢日志是在语句执行完后才打印,expensive query 日志可以把正在执行中的语句且执行时间超过阈值的语句及其相关信息打印出来。</li></ul><h3 id="tidb_expensive_txn_time_threshold-span-classversion-mark从-v720-版本开始引入span" style="position:relative"><code>tidb_expensive_txn_time_threshold</code> <span class="version-mark">从 v7.2.0 版本开始引入</span><a href="#tidb_expensive_txn_time_threshold-span-classversion-mark%E4%BB%8E-v720-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_expensive_txn_time_threshold span classversion mark从 v720 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:否,仅作用于当前连接的 TiDB 实例</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>600</code></li><li>范围:<code>[60, 2147483647]</code></li><li>单位:秒</li><li>这个变量用来控制打印 expensive transaction 日志的阈值时间,默认值是 600 秒。expensive transaction 日志会将尚未 COMMIT 或 ROLLBACK 且持续时间超过该阈值的事务的相关信息打印出来。</li></ul><h3 id="tidb_force_priority" style="position:relative"><code>tidb_force_priority</code><a href="#tidb_force_priority" aria-label="tidb_force_priority permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:否,仅作用于当前连接的 TiDB 实例</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:枚举型</li><li>默认值:<code>NO_PRIORITY</code></li><li>可选值:<code>NO_PRIORITY</code>、<code>LOW_PRIORITY</code>、<code>DELAYED</code>、<code>HIGH_PRIORITY</code></li><li>这个变量用于改变 TiDB server 上执行的语句的默认优先级。例如,你可以通过设置该变量来确保正在执行 OLAP 查询的用户优先级低于正在执行 OLTP 查询的用户。</li><li>默认值 <code>NO_PRIORITY</code> 表示不强制改变执行语句的优先级。</li></ul><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardInfo MuiAlert-standard css-1bzshic" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="InfoOutlinedIcon"><path d="M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">注意</div><p>TiDB 从 v6.6.0 版本开始支持<a href="/zh/tidb/stable/tidb-resource-control">使用资源管控 (Resource Control) 实现资源隔离</a>功能。该功能可以将不同优先级的语句放在不同的资源组中执行,并为这些资源组分配不同的配额和优先级,可以达到更好的资源管控效果。在开启资源管控功能后,语句的调度主要受资源组的控制,<code>PRIORITY</code> 将不再生效。建议在支持资源管控的版本优先使用资源管控功能。</p></div></div></div><h3 id="tidb_gc_concurrency-span-classversion-mark从-v50-版本开始引入span" style="position:relative"><code>tidb_gc_concurrency</code> <span class="version-mark">从 v5.0 版本开始引入</span><a href="#tidb_gc_concurrency-span-classversion-mark%E4%BB%8E-v50-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_gc_concurrency span classversion mark从 v50 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>-1</code></li><li>范围:<code>[1, 256]</code></li><li>单位:线程</li><li>这个变量用于指定 GC 在<a href="/zh/tidb/stable/garbage-collection-overview#resolve-locks清理锁">Resolve Locks(清理锁)</a>步骤中线程的数量。默认值 <code>-1</code> 表示由 TiDB 自主判断运行 GC 要使用的线程的数量。</li></ul><h3 id="tidb_gc_enable-span-classversion-mark从-v50-版本开始引入span" style="position:relative"><code>tidb_gc_enable</code> <span class="version-mark">从 v5.0 版本开始引入</span><a href="#tidb_gc_enable-span-classversion-mark%E4%BB%8E-v50-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_gc_enable span classversion mark从 v50 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>这个变量用于控制是否启用 TiKV 的垃圾回收 (GC) 机制。如果不启用 GC 机制,系统将不再清理旧版本的数据,因此会有损系统性能。</li></ul><h3 id="tidb_gc_life_time-span-classversion-mark从-v50-版本开始引入span" style="position:relative"><code>tidb_gc_life_time</code> <span class="version-mark">从 v5.0 版本开始引入</span><a href="#tidb_gc_life_time-span-classversion-mark%E4%BB%8E-v50-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_gc_life_time span classversion mark从 v50 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:Duration</li><li>默认值:<code>10m0s</code></li><li>范围:<code>[10m0s, 8760h0m0s]</code></li><li>这个变量用于指定每次进行垃圾回收 (GC) 时保留数据的时限。变量值为 Go 的 Duration 字符串格式。每次进行 GC 时,将以当前时间减去该变量的值作为 safe point。</li></ul><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardInfo MuiAlert-standard css-1bzshic" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="InfoOutlinedIcon"><path d="M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">注意</div><ul><li>在数据频繁更新的场景下,将 <code>tidb_gc_life_time</code> 的值设置得过大(如数天甚至数月)可能会导致一些潜在的问题,如:<ul><li>占用更多的存储空间。</li><li>大量的历史数据可能会在一定程度上影响系统性能,尤其是范围的查询(如 <code>select count(*) from t</code>)。</li></ul></li><li>如果一个事务的运行时长超过了 <code>tidb_gc_life_time</code> 配置的值,在 GC 时,为了使这个事务可以继续正常运行,系统会保留从这个事务开始时间 <code>start_ts</code> 以来的数据。例如,如果 <code>tidb_gc_life_time</code> 的值配置为 10 分钟,且在一次 GC 时,集群正在运行的事务中最早开始的那个事务已经运行了 15 分钟,那么本次 GC 将保留最近 15 分钟的数据。</li></ul></div></div></div><h3 id="tidb_gc_max_wait_time-span-classversion-mark从-v610-版本开始引入span" style="position:relative"><code>tidb_gc_max_wait_time</code> <span class="version-mark">从 v6.1.0 版本开始引入</span><a href="#tidb_gc_max_wait_time-span-classversion-mark%E4%BB%8E-v610-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_gc_max_wait_time span classversion mark从 v610 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>86400</code></li><li>范围:<code>[600, 31536000]</code></li><li>单位:秒</li><li>这个变量用于指定活跃事务阻碍 GC safe point 推进的最大时间。每次进行 GC 时,默认 GC safe point 不会超过正在执行中的事务的开始时间。如果活跃事务运行时间未超过该值,GC safe point 会一直被阻塞不更新,直到活跃事务运行时间超过该值 safe point 才会正常推进。</li></ul><h3 id="tidb_gc_run_interval-span-classversion-mark从-v50-版本开始引入span" style="position:relative"><code>tidb_gc_run_interval</code> <span class="version-mark">从 v5.0 版本开始引入</span><a href="#tidb_gc_run_interval-span-classversion-mark%E4%BB%8E-v50-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_gc_run_interval span classversion mark从 v50 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:Duration</li><li>默认值:<code>10m0s</code></li><li>范围:<code>[10m0s, 8760h0m0s]</code></li><li>这个变量用于指定垃圾回收 (GC) 运行的时间间隔。变量值为 Go 的 Duration 字符串格式,如<code>"1h30m"</code>、<code>"15m"</code>等。</li></ul><h3 id="tidb_gc_scan_lock_mode-span-classversion-mark从-v50-版本开始引入span" style="position:relative"><code>tidb_gc_scan_lock_mode</code> <span class="version-mark">从 v5.0 版本开始引入</span><a href="#tidb_gc_scan_lock_mode-span-classversion-mark%E4%BB%8E-v50-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_gc_scan_lock_mode span classversion mark从 v50 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardError MuiAlert-standard css-kdwypz" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ErrorOutlineIcon"><path d="M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">警告</div><p>Green GC 目前是实验性功能,不建议在生产环境中使用。</p></div></div></div><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:枚举型</li><li>默认值:<code>LEGACY</code></li><li>可设置为:<code>PHYSICAL</code>,<code>LEGACY</code><ul><li><code>LEGACY</code>:使用旧的扫描方式,即禁用 Green GC。</li><li><code>PHYSICAL</code>:使用物理扫描方式,即启用 Green GC。</li></ul></li><li>这个变量用于指定垃圾回收 (GC) 的 Resolve Locks(清理锁)步骤中扫描锁的方式。当变量值设置为 <code>LEGACY</code> 时,TiDB 以 Region 为单位进行扫描。当变量值设置为 <code>PHYSICAL</code> 时,每个 TiKV 节点分别绕过 Raft 层直接扫描数据,可以有效地缓解在启用 <a href="/zh/tidb/stable/tikv-configuration-file#hibernate-regions">Hibernate Region</a> 功能时,GC 唤醒全部 Region 的影响,从而提升 Resolve Locks(清理锁)这个步骤的执行速度。</li></ul><h3 id="tidb_general_log" style="position:relative"><code>tidb_general_log</code><a href="#tidb_general_log" aria-label="tidb_general_log permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:否,仅作用于当前连接的 TiDB 实例</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>这个变量用来设置是否在<a href="/zh/tidb/stable/tidb-configuration-file#logfile">日志</a>里记录所有的 SQL 语句。该功能默认关闭。如果系统运维人员在定位问题过程中需要追踪所有 SQL 记录,可考虑开启该功能。</li><li>在 TiDB 配置项 <a href="/zh/tidb/stable/tidb-configuration-file#level"><code>log.level</code></a> 为 <code>"info"</code> 或 <code>"debug"</code> 时,通过查询 <code>"GENERAL_LOG"</code> 字符串可以定位到该功能在日志中的所有记录。日志会记录以下内容:<ul><li><code>conn</code>:当前会话对应的 ID</li><li><code>user</code>:当前会话用户</li><li><code>schemaVersion</code>:当前 schema 版本</li><li><code>txnStartTS</code>:当前事务的开始时间戳</li><li><code>forUpdateTS</code>:事务模式为悲观事务时,SQL 语句的当前时间戳。悲观事务内发生写冲突时,会重试当前执行语句,该时间戳会被更新。重试次数由 <a href="/zh/tidb/stable/tidb-configuration-file#max-retry-count"><code>max-retry-count</code></a> 配置。事务模式为乐观事务时,该条目与 <code>txnStartTS</code> 等价。</li><li><code>isReadConsistency</code>:当前事务隔离级别是否是读已提交 (RC)</li><li><code>current_db</code>:当前数据库名</li><li><code>txn_mode</code>:事务模式。可选值:<code>OPTIMISTIC</code>(乐观事务模式),或 <code>PESSIMISTIC</code>(悲观事务模式)</li><li><code>sql</code>:当前查询对应的 SQL 语句</li></ul></li></ul><h3 id="tidb_non_prepared_plan_cache_size" style="position:relative"><code>tidb_non_prepared_plan_cache_size</code><a href="#tidb_non_prepared_plan_cache_size" aria-label="tidb_non_prepared_plan_cache_size permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardError MuiAlert-standard css-kdwypz" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ErrorOutlineIcon"><path d="M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">警告</div><p>从 v7.1.0 开始,该变量被废弃。请使用 <a href="#tidb_session_plan_cache_size-%E4%BB%8E-v710-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5"><code>tidb_session_plan_cache_size</code></a> 进行设置。</p></div></div></div><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>100</code></li><li>范围:<code>[1, 100000]</code></li><li>这个变量用来控制<a href="/zh/tidb/stable/sql-non-prepared-plan-cache">非 Prepare 语句执行计划缓存</a>最多能够缓存的计划数量。</li></ul><h3 id="tidb_generate_binary_plan-span-classversion-mark从-v620-版本开始引入span" style="position:relative"><code>tidb_generate_binary_plan</code> <span class="version-mark">从 v6.2.0 版本开始引入</span><a href="#tidb_generate_binary_plan-span-classversion-mark%E4%BB%8E-v620-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_generate_binary_plan span classversion mark从 v620 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>这个变量用于指定是否在 slow log 和 statement summary 里包含以二进制格式编码的执行计划。</li><li>开启该变量后,即可在 TiDB Dashboard 中查看查询的图形化执行计划。注意,TiDB Dashboard 只显示变量开启时产生的查询的执行计划。</li><li>用 <a href="/zh/tidb/stable/tidb-functions#tidb_decode_binary_plan"><code>SELECT tidb_decode_binary_plan('xxx...')</code></a> SQL 语句可以从编码后的执行计划解析出具体的执行计划。</li></ul><h3 id="tidb_gogc_tuner_max_value-span-classversion-mark从-v750-版本开始引入span" style="position:relative"><code>tidb_gogc_tuner_max_value</code> <span class="version-mark">从 v7.5.0 版本开始引入</span><a href="#tidb_gogc_tuner_max_value-span-classversion-mark%E4%BB%8E-v750-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_gogc_tuner_max_value span classversion mark从 v750 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>500</code></li><li>范围:<code>[10, 2147483647]</code></li><li>该变量用来控制 GOGC Tuner 可调节 GOGC 的最大值。</li></ul><h3 id="tidb_gogc_tuner_min_value-span-classversion-mark从-v750-版本开始引入span" style="position:relative"><code>tidb_gogc_tuner_min_value</code> <span class="version-mark">从 v7.5.0 版本开始引入</span><a href="#tidb_gogc_tuner_min_value-span-classversion-mark%E4%BB%8E-v750-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_gogc_tuner_min_value span classversion mark从 v750 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>100</code></li><li>范围:<code>[10, 2147483647]</code></li><li>该变量用来控制 GOGC Tuner 可调节 GOGC 的最小值。</li></ul><h3 id="tidb_gogc_tuner_threshold-span-classversion-mark从-v640-版本开始引入span" style="position:relative"><code>tidb_gogc_tuner_threshold</code> <span class="version-mark">从 v6.4.0 版本开始引入</span><a href="#tidb_gogc_tuner_threshold-span-classversion-mark%E4%BB%8E-v640-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_gogc_tuner_threshold span classversion mark从 v640 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>默认值:<code>0.6</code></li><li>范围:<code>[0, 0.9)</code></li><li>这个变量用来控制 GOGC Tuner 自动调节的最大内存阈值,超过阈值后 GOGC Tuner 会停止工作。</li></ul><h3 id="tidb_guarantee_linearizability-span-classversion-mark从-v50-版本开始引入span" style="position:relative"><code>tidb_guarantee_linearizability</code> <span class="version-mark">从 v5.0 版本开始引入</span><a href="#tidb_guarantee_linearizability-span-classversion-mark%E4%BB%8E-v50-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_guarantee_linearizability span classversion mark从 v50 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>此变量控制异步提交 (Async Commit) 中提交时间戳的计算方式。默认情况下(使用 <code>ON</code> 值),两阶段提交从 PD 服务器请求一个新的时间戳,并使用该时间戳计算最终提交的时间戳,这样可保证所有并发事务可线性化。</li><li>如果将该变量值设为 <code>OFF</code>,从 PD 获取时间戳的操作会被省掉,这种情况下只保证因果一致性但不保证线性一致性。详情请参考 PingCAP 博文 <a href="https://pingcap.com/zh/blog/async-commit-principle" target="_blank" referrerpolicy="no-referrer-when-downgrade">Async Commit 原理介绍</a>。</li><li>对于需要只保证因果一致性的场景,可将此变量设为 <code>OFF</code> 以提升性能。</li></ul><h3 id="tidb_hash_exchange_with_new_collation" style="position:relative"><code>tidb_hash_exchange_with_new_collation</code><a href="#tidb_hash_exchange_with_new_collation" aria-label="tidb_hash_exchange_with_new_collation permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>该值表示是否在开启 new collation 的集群里生成 MPP hash partition exchange 算子。<code>true</code> 表示生成此算子,<code>false</code>表示不生成。</li><li>该变量为 TiDB 内部变量,<strong>不推荐设置该变量</strong>。</li></ul><h3 id="tidb_hash_join_concurrency" style="position:relative"><code>tidb_hash_join_concurrency</code><a href="#tidb_hash_join_concurrency" aria-label="tidb_hash_join_concurrency permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardError MuiAlert-standard css-kdwypz" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ErrorOutlineIcon"><path d="M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">警告</div><p>从 v5.0 版本开始,该变量被废弃。请使用 <a href="#tidb_executor_concurrency-%E4%BB%8E-v50-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5"><code>tidb_executor_concurrency</code></a> 进行设置。</p></div></div></div><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>-1</code></li><li>范围:<code>[1, 256]</code></li><li>单位:线程</li><li>这个变量用来设置 hash join 算法的并发度。</li><li>默认值 <code>-1</code> 表示使用 <code>tidb_executor_concurrency</code> 的值。</li></ul><h3 id="tidb_hashagg_final_concurrency" style="position:relative"><code>tidb_hashagg_final_concurrency</code><a href="#tidb_hashagg_final_concurrency" aria-label="tidb_hashagg_final_concurrency permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardError MuiAlert-standard css-kdwypz" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ErrorOutlineIcon"><path d="M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">警告</div><p>从 v5.0 版本开始,该变量被废弃。请使用 <a href="#tidb_executor_concurrency-%E4%BB%8E-v50-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5"><code>tidb_executor_concurrency</code></a> 进行设置。</p></div></div></div><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>-1</code></li><li>范围:<code>[1, 256]</code></li><li>单位:线程</li><li>这个变量用来设置并行 hash aggregation 算法 final 阶段的执行并发度。对于聚合函数参数不为 distinct 的情况,HashAgg 分为 partial 和 final 阶段分别并行执行。</li><li>默认值 <code>-1</code> 表示使用 <code>tidb_executor_concurrency</code> 的值。</li></ul><h3 id="tidb_hashagg_partial_concurrency" style="position:relative"><code>tidb_hashagg_partial_concurrency</code><a href="#tidb_hashagg_partial_concurrency" aria-label="tidb_hashagg_partial_concurrency permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardError MuiAlert-standard css-kdwypz" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ErrorOutlineIcon"><path d="M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">警告</div><p>从 v5.0 版本开始,该变量被废弃。请使用 <a href="#tidb_executor_concurrency-%E4%BB%8E-v50-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5"><code>tidb_executor_concurrency</code></a> 进行设置。</p></div></div></div><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>-1</code></li><li>范围:<code>[1, 256]</code></li><li>单位:线程</li><li>这个变量用来设置并行 hash aggregation 算法 partial 阶段的执行并发度。对于聚合函数参数不为 distinct 的情况,HashAgg 分为 partial 和 final 阶段分别并行执行。</li><li>默认值 <code>-1</code> 表示使用 <code>tidb_executor_concurrency</code> 的值。</li></ul><h3 id="tidb_historical_stats_duration-span-classversion-mark从-v660-版本开始引入span" style="position:relative"><code>tidb_historical_stats_duration</code> <span class="version-mark">从 v6.6.0 版本开始引入</span><a href="#tidb_historical_stats_duration-span-classversion-mark%E4%BB%8E-v660-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_historical_stats_duration span classversion mark从 v660 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:Duration</li><li>默认值:<code>168h</code>,即 7 天</li><li>这个变量用来控制历史统计信息在存储中的保留时间。</li></ul><h3 id="tidb_idle_transaction_timeout-span-classversion-mark从-v760-版本开始引入span" style="position:relative"><code>tidb_idle_transaction_timeout</code> <span class="version-mark">从 v7.6.0 版本开始引入</span><a href="#tidb_idle_transaction_timeout-span-classversion-mark%E4%BB%8E-v760-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_idle_transaction_timeout span classversion mark从 v760 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>0</code></li><li>范围:<code>[0, 31536000]</code></li><li>单位:秒</li><li>这个变量用来控制用户会话中事务的空闲超时。当用户会话处于事务状态且空闲时间超过该变量设定的值时,会话会被 Kill 掉。用户会话空闲是指没有正在执行的请求,处于等待请求的状态。</li><li>默认值 <code>0</code> 表示没有时间限制。</li></ul><h3 id="tidb_ignore_prepared_cache_close_stmt-span-classversion-mark从-v600-版本开始引入span" style="position:relative"><code>tidb_ignore_prepared_cache_close_stmt</code> <span class="version-mark">从 v6.0.0 版本开始引入</span><a href="#tidb_ignore_prepared_cache_close_stmt-span-classversion-mark%E4%BB%8E-v600-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_ignore_prepared_cache_close_stmt span classversion mark从 v600 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>这个变量用来设置是否忽略关闭 Prepared Statement 的指令。</li><li>如果变量值设为 <code>ON</code>,Binary 协议的 <code>COM_STMT_CLOSE</code> 信号和文本协议的 <a href="/zh/tidb/stable/sql-statement-deallocate"><code>DEALLOCATE PREPARE</code></a> 语句都会被忽略。</li></ul><h3 id="tidb_index_join_batch_size" style="position:relative"><code>tidb_index_join_batch_size</code><a href="#tidb_index_join_batch_size" aria-label="tidb_index_join_batch_size permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:整数型</li><li>默认值:<code>25000</code></li><li>范围:<code>[1, 2147483647]</code></li><li>单位:行</li><li>这个变量用来设置 index lookup join 操作的 batch 大小,AP 类应用适合较大的值,TP 类应用适合较小的值。</li></ul><h3 id="tidb_index_join_double_read_penalty_cost_rate-span-classversion-mark从-v660-版本开始引入span" style="position:relative"><code>tidb_index_join_double_read_penalty_cost_rate</code> <span class="version-mark">从 v6.6.0 版本开始引入</span><a href="#tidb_index_join_double_read_penalty_cost_rate-span-classversion-mark%E4%BB%8E-v660-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_index_join_double_read_penalty_cost_rate span classversion mark从 v660 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:浮点数</li><li>默认值:<code>0</code></li><li>范围:<code>[0, 18446744073709551615]</code></li><li>这个变量用来设置是否给选择 index join 增加一些惩罚性的代价,以降低优化器选择 index join 操作的倾向,从而增加选择其他 join 方式的倾向,例如如选择 hash join 和 tiflash join 等。</li><li>优化器选择 index join 可能触发较多的回表请求,造成较多的资源开销,此时可以通过设置这个变量,来减少优化器选择 index join 的倾向。</li><li>这个变量只有在 <a href="/zh/tidb/stable/system-variables#tidb_cost_model_version-从-v620-版本开始引入"><code>tidb_cost_model_version</code></a> 设置为 <code>2</code> 时生效。</li></ul><h3 id="tidb_index_lookup_concurrency" style="position:relative"><code>tidb_index_lookup_concurrency</code><a href="#tidb_index_lookup_concurrency" aria-label="tidb_index_lookup_concurrency permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardError MuiAlert-standard css-kdwypz" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ErrorOutlineIcon"><path d="M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">警告</div><p>从 v5.0 版本开始,该变量被废弃。请使用 <a href="#tidb_executor_concurrency-%E4%BB%8E-v50-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5"><code>tidb_executor_concurrency</code></a> 进行设置。</p></div></div></div><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>默认值:<code>-1</code></li><li>范围:<code>[1, 256]</code></li><li>单位:线程</li><li>这个变量用来设置 index lookup 操作的并发度,AP 类应用适合较大的值,TP 类应用适合较小的值。</li><li>默认值 <code>-1</code> 表示使用 <code>tidb_executor_concurrency</code> 的值。</li></ul><h3 id="tidb_index_lookup_join_concurrency" style="position:relative"><code>tidb_index_lookup_join_concurrency</code><a href="#tidb_index_lookup_join_concurrency" aria-label="tidb_index_lookup_join_concurrency permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardError MuiAlert-standard css-kdwypz" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ErrorOutlineIcon"><path d="M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">警告</div><p>从 v5.0 版本开始,该变量被废弃。请使用 <a href="#tidb_executor_concurrency-%E4%BB%8E-v50-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5"><code>tidb_executor_concurrency</code></a> 进行设置。</p></div></div></div><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>默认值:<code>-1</code></li><li>范围:<code>[1, 256]</code></li><li>单位:线程</li><li>这个变量用来设置 index lookup join 算法的并发度。</li><li>默认值 <code>-1</code> 表示使用 <code>tidb_executor_concurrency</code> 的值。</li></ul><h3 id="tidb_index_merge_intersection_concurrency-span-classversion-mark从-v650-版本开始引入span" style="position:relative"><code>tidb_index_merge_intersection_concurrency</code> <span class="version-mark">从 v6.5.0 版本开始引入</span><a href="#tidb_index_merge_intersection_concurrency-span-classversion-mark%E4%BB%8E-v650-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_index_merge_intersection_concurrency span classversion mark从 v650 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>默认值:<code>-1</code></li><li>范围:<code>[1, 256]</code></li><li>这个变量用来设置索引合并进行交集操作时的最大并发度,仅在以动态裁剪模式访问分区表时有效。实际并发度为 <code>tidb_index_merge_intersection_concurrency</code> 与分区表分区数目两者中较小的值。</li><li>默认值 <code>-1</code> 表示使用 <a href="#tidb_executor_concurrency-%E4%BB%8E-v50-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5"><code>tidb_executor_concurrency</code></a> 的值。</li></ul><h3 id="tidb_index_lookup_size" style="position:relative"><code>tidb_index_lookup_size</code><a href="#tidb_index_lookup_size" aria-label="tidb_index_lookup_size permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:整数型</li><li>默认值:<code>20000</code></li><li>范围:<code>[1, 2147483647]</code></li><li>单位:行</li><li>这个变量用来设置 index lookup 操作的 batch 大小,AP 类应用适合较大的值,TP 类应用适合较小的值。</li></ul><h3 id="tidb_index_serial_scan_concurrency" style="position:relative"><code>tidb_index_serial_scan_concurrency</code><a href="#tidb_index_serial_scan_concurrency" aria-label="tidb_index_serial_scan_concurrency permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:整数型</li><li>默认值:<code>1</code></li><li>范围:<code>[1, 256]</code></li><li>单位:线程</li><li>这个变量用来设置顺序 scan 操作的并发度,AP 类应用适合较大的值,TP 类应用适合较小的值。</li></ul><h3 id="tidb_init_chunk_size" style="position:relative"><code>tidb_init_chunk_size</code><a href="#tidb_init_chunk_size" aria-label="tidb_init_chunk_size permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>32</code></li><li>范围:<code>[1, 32]</code></li><li>单位:行</li><li>这个变量用来设置执行过程中初始 chunk 的行数。默认值是 32,可设置的范围是 1~32。chunk 行数直接影响单个查询所需的内存。可以按照查询中所有的列的总宽度和 chunk 行数来粗略估算单个 chunk 所需内存,并结合执行器的并发数来粗略估算单个查询所需内存总量。建议单个 chunk 内存总量不要超过 16 MiB。</li></ul><h3 id="tidb_isolation_read_engines-span-classversion-mark从-v40-版本开始引入span" style="position:relative"><code>tidb_isolation_read_engines</code> <span class="version-mark">从 v4.0 版本开始引入</span><a href="#tidb_isolation_read_engines-span-classversion-mark%E4%BB%8E-v40-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_isolation_read_engines span classversion mark从 v40 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>默认值:<code>tikv,tiflash,tidb</code></li><li>这个变量用于设置 TiDB 在读取数据时可以使用的存储引擎列表。</li></ul><h3 id="tidb_last_ddl_info-span-classversion-mark从-v600-版本开始引入span" style="position:relative"><code>tidb_last_ddl_info</code> <span class="version-mark">从 v6.0.0 版本开始引入</span><a href="#tidb_last_ddl_info-span-classversion-mark%E4%BB%8E-v600-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_last_ddl_info span classversion mark从 v600 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION</li><li>默认值:""</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:字符串</li><li>该变量为只读变量,TiDB 内部使用该变量获取当前会话中上一个 DDL 操作的信息。<ul><li>"query":上一个 DDL 查询字符串。</li><li>"seq_num":每个 DDL 操作的序列号,用于标识 DDL 操作的顺序。</li></ul></li></ul><h3 id="tidb_last_query_info-span-classversion-mark从-v4014-版本开始引入span" style="position:relative"><code>tidb_last_query_info</code> <span class="version-mark">从 v4.0.14 版本开始引入</span><a href="#tidb_last_query_info-span-classversion-mark%E4%BB%8E-v4014-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_last_query_info span classversion mark从 v4014 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>默认值:""</li><li>这是一个只读变量。用于在 TiDB 内部查询上一条 DML 语句的事务信息。查询的事务信息包括:<ul><li><code>txn_scope</code>:事务的作用域,可能为 <code>global</code> 或 <code>local</code>。</li><li><code>start_ts</code>:事务开始的时间戳。</li><li><code>for_update_ts</code>:先前执行的 DML 语句的 <code>for_update_ts</code> 信息。这是 TiDB 用于测试的内部术语。通常,你可以忽略此信息。</li><li><code>error</code>:错误消息(如果有)。</li><li><code>ru_consumption</code>:执行语句的 <a href="/zh/tidb/stable/tidb-resource-control#什么是-request-unit-ru">RU</a> 消耗。</li></ul></li></ul><h3 id="tidb_last_txn_info-span-classversion-mark从-v409-版本开始引入span" style="position:relative"><code>tidb_last_txn_info</code> <span class="version-mark">从 v4.0.9 版本开始引入</span><a href="#tidb_last_txn_info-span-classversion-mark%E4%BB%8E-v409-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_last_txn_info span classversion mark从 v409 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:字符串</li><li>此变量用于获取当前会话中最后一个事务的信息。这是一个只读变量。事务信息包括:<ul><li>事务的范围</li><li>开始时间戳和提交时间戳</li><li>事务的提交模式,可能是两阶段提交,一阶段提交,或者异步提交</li><li>事务从异步提交或一阶段提交到两阶段提交的回退信息</li><li>遇到的错误</li></ul></li></ul><h3 id="tidb_last_plan_replayer_token-span-classversion-mark从-v630-版本开始引入span" style="position:relative"><code>tidb_last_plan_replayer_token</code> <span class="version-mark">从 v6.3.0 版本开始引入</span><a href="#tidb_last_plan_replayer_token-span-classversion-mark%E4%BB%8E-v630-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_last_plan_replayer_token span classversion mark从 v630 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:字符串</li><li>这个变量是一个只读变量,用于获取当前会话中最后一个 <code>PLAN REPLAYER dump</code> 的结果。</li></ul><h3 id="tidb_load_based_replica_read_threshold-span-classversion-mark从-v700-版本开始引入span" style="position:relative"><code>tidb_load_based_replica_read_threshold</code> <span class="version-mark">从 v7.0.0 版本开始引入</span><a href="#tidb_load_based_replica_read_threshold-span-classversion-mark%E4%BB%8E-v700-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_load_based_replica_read_threshold span classversion mark从 v700 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>默认值:<code>"1s"</code></li><li>范围:<code>[0s, 1h]</code></li><li>类型:字符串</li><li>这个变量用来设置基于负载的 replica read 的触发阈值。当 leader 节点的预估排队时间超过阈值时,TiDB 会优先从 follower 节点读取数据。格式为时间,例如 <code>"100ms"</code> 或 <code>"1s"</code>。详情见 <a href="/zh/tidb/stable/troubleshoot-hot-spot-issues#打散读热点">TiDB 热点问题处理</a>。</li></ul><h3 id="tidb_load_binding_timeout-span-classversion-mark从-v800-版本开始引入span" style="position:relative"><code>tidb_load_binding_timeout</code> <span class="version-mark">从 v8.0.0 版本开始引入</span><a href="#tidb_load_binding_timeout-span-classversion-mark%E4%BB%8E-v800-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_load_binding_timeout span classversion mark从 v800 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>200</code></li><li>范围:<code>(0, 2147483647]</code></li><li>单位:毫秒</li><li>这个变量用来控制加载 binding 的超时时间。当加载 binding 的执行时间超过该值时,会停止加载。</li></ul><h3 id="tidb_lock_unchanged_keys-span-classversion-mark从-v711-和-v730-版本开始引入span" style="position:relative"><code>tidb_lock_unchanged_keys</code> <span class="version-mark">从 v7.1.1 和 v7.3.0 版本开始引入</span><a href="#tidb_lock_unchanged_keys-span-classversion-mark%E4%BB%8E-v711-%E5%92%8C-v730-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_lock_unchanged_keys span classversion mark从 v711 和 v730 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>该变量控制在以下场景是否对某些 key 加锁。设置为 <code>ON</code> 时,都加锁,设置为 <code>OFF</code> 时,都不加锁。<ul><li>在 <code>INSERT IGNORE</code> 语句和 <code>REPLACE</code> 语句中值重复的 key。在 v6.1.6 之前版本中,这些 key 不加锁。这个问题已在 <a href="https://github.com/pingcap/tidb/issues/42121" target="_blank" referrerpolicy="no-referrer-when-downgrade">#42121</a> 修复。</li><li>在 <code>UPDATE</code> 语句中值没有改变的唯一索引 key。在 v6.5.2 之前版本中,这些 key 不加锁。这个问题已在 <a href="https://github.com/pingcap/tidb/issues/36438" target="_blank" referrerpolicy="no-referrer-when-downgrade">#36438</a> 修复。</li></ul></li><li>为保证事务行为的一致性和合理性,不推荐修改该值。如果在升级 TiDB 后因为这两项修复导致严重的性能问题,且可以接受不加锁的行为(见上述 Issue),可以将该变量设置为 <code>OFF</code>。</li></ul><h3 id="tidb_log_file_max_days-span-classversion-mark从-v530-版本开始引入span" style="position:relative"><code>tidb_log_file_max_days</code> <span class="version-mark">从 v5.3.0 版本开始引入</span><a href="#tidb_log_file_max_days-span-classversion-mark%E4%BB%8E-v530-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_log_file_max_days span classversion mark从 v530 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:否,仅作用于当前连接的 TiDB 实例</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>0</code></li><li>范围:<code>[0, 2147483647]</code></li><li>这个变量可以调整当前 TiDB 实例上日志的最大保留天数。默认值是实例配置文件中指定的值,见配置项 <a href="/zh/tidb/stable/tidb-configuration-file#max-days"><code>max-days</code></a>。此变量只影响当前 TiDB 实例上的配置,重启后丢失,且配置文件不受影响。</li></ul><h3 id="tidb_low_resolution_tso" style="position:relative"><code>tidb_low_resolution_tso</code><a href="#tidb_low_resolution_tso" aria-label="tidb_low_resolution_tso permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>这个变量用来设置是否启用低精度 TSO 特性。开启该功能之后,TiDB 使用缓存 Timestamp 来读取数据。缓存 Timestamp 默认每 2 秒更新一次。从 v8.0.0 开始,你可以通过 <a href="#tidb_low_resolution_tso_update_interval-%E4%BB%8E-v800-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5"><code>tidb_low_resolution_tso_update_interval</code></a> 配置缓存 Timestamp 的更新时间间隔。</li><li>主要场景是在可以容忍读到旧数据的情况下,降低小的只读事务获取 TSO 的开销。</li></ul><h3 id="tidb_low_resolution_tso_update_interval-span-classversion-mark从-v800-版本开始引入span" style="position:relative"><code>tidb_low_resolution_tso_update_interval</code> <span class="version-mark">从 v8.0.0 版本开始引入</span><a href="#tidb_low_resolution_tso_update_interval-span-classversion-mark%E4%BB%8E-v800-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_low_resolution_tso_update_interval span classversion mark从 v800 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>2000</code></li><li>范围:<code>[10, 60000]</code></li><li>这个变量用来设置低精度 TSO 特性中使用的缓存 Timestamp 的更新时间间隔,单位为毫秒。</li><li>该变量只在低精度 TSO 特性 <a href="#tidb_low_resolution_tso"><code>tidb_low_resolution_tso</code></a> 启用时有效。</li></ul><h3 id="tidb_nontransactional_ignore_error-span-classversion-mark从-v610-版本开始引入span" style="position:relative"><code>tidb_nontransactional_ignore_error</code> <span class="version-mark">从 v6.1.0 版本开始引入</span><a href="#tidb_nontransactional_ignore_error-span-classversion-mark%E4%BB%8E-v610-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_nontransactional_ignore_error span classversion mark从 v610 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>这个变量用来设置是否在非事务语句中立刻返回错误。当设为 <code>OFF</code> 时,在碰到第一个报错的 batch 时,非事务 DML 语句即中止,取消其后的所有 batch,返回错误。当设为 <code>ON</code> 时,当某个 batch 执行报错时,其后的 batch 会继续执行,直到所有 batch 执行完毕,返回结果时把这些错误合并后返回。</li></ul><h3 id="tidb_max_auto_analyze_time-span-classversion-mark从-v610-版本开始引入span" style="position:relative"><code>tidb_max_auto_analyze_time</code> <span class="version-mark">从 v6.1.0 版本开始引入</span><a href="#tidb_max_auto_analyze_time-span-classversion-mark%E4%BB%8E-v610-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_max_auto_analyze_time span classversion mark从 v610 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>43200</code></li><li>范围:<code>[0, 2147483647]</code></li><li>单位:秒</li><li>这个变量用于指定自动 ANALYZE 的最大执行时间。当执行时间超出指定的时间时,自动 ANALYZE 会被终止。当该变量值为 0 时,自动 ANALYZE 没有最大执行时间的限制。</li></ul><h3 id="tidb_max_bytes_before_tiflash_external_group_by-span-classversion-mark从-v700-版本开始引入span" style="position:relative"><code>tidb_max_bytes_before_tiflash_external_group_by</code> <span class="version-mark">从 v7.0.0 版本开始引入</span><a href="#tidb_max_bytes_before_tiflash_external_group_by-span-classversion-mark%E4%BB%8E-v700-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_max_bytes_before_tiflash_external_group_by span classversion mark从 v700 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:整数型</li><li>默认值:<code>-1</code></li><li>范围:<code>[-1, 9223372036854775807]</code></li><li>这个变量用于指定 TiFlash 中带有 <code>GROUP BY</code> 的 Hash Aggregation 算子的最大内存使用量,单位为 byte,超过该值之后 TiFlash 会触发 Hash Aggregation 算子的落盘。当该变量值为 -1 时,TiDB 不传递该变量给 TiFlash。只有该变量值大于等于 0 时,TiDB 才会传递该变量给 TiFlash。该变量为 0 时表示内存使用无限制,即 TiFlash Hash Aggregation 算子不会触发落盘。详情见 <a href="/zh/tidb/stable/tiflash-spill-disk">TiFlash 数据落盘</a>。</li></ul><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardInfo MuiAlert-standard css-1bzshic" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="InfoOutlinedIcon"><path d="M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">注意</div><ul><li>假设一个 TiDB 集群有多个 TiFlash 节点,Aggregation 通常会在多个 TiFlash 节点上分布式执行。该变量控制的是单个 TiFlash 节点中 Aggregation 算子的最大内存使用量。</li><li>当该变量设置为 -1 时,TiFlash 将根据自身配置项 <a href="/zh/tidb/stable/tiflash-configuration#tiflash-配置参数-1"><code>max_bytes_before_external_group_by</code></a> 的值来决定 Aggregation 算子的最大内存使用量。</li></ul></div></div></div><h3 id="tidb_max_bytes_before_tiflash_external_join-span-classversion-mark从-v700-版本开始引入span" style="position:relative"><code>tidb_max_bytes_before_tiflash_external_join</code> <span class="version-mark">从 v7.0.0 版本开始引入</span><a href="#tidb_max_bytes_before_tiflash_external_join-span-classversion-mark%E4%BB%8E-v700-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_max_bytes_before_tiflash_external_join span classversion mark从 v700 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:整数型</li><li>默认值:<code>-1</code></li><li>范围:<code>[-1, 9223372036854775807]</code></li><li>这个变量用于指定 TiFlash 中带等值关联条件的 Hash Join 算子的最大内存使用量,单位为 byte,超过该值之后 TiFlash 会触发 Hash Join 算子的落盘。当该变量值为 -1 时,TiDB 不传递该变量给 TiFlash。只有该变量值大于等于 0 时,TiDB 才会传递该变量给 TiFlash。该变量为 0 时表示内存使用无限制,即 TiFlash Hash Join 算子不会触发落盘。详情见 <a href="/zh/tidb/stable/tiflash-spill-disk">TiFlash 数据落盘</a>。</li></ul><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardInfo MuiAlert-standard css-1bzshic" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="InfoOutlinedIcon"><path d="M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">注意</div><ul><li>假设一个 TiDB 集群有多个 TiFlash 节点,Join 通常会在多个 TiFlash 节点上分布式执行。该变量控制的是单个 TiFlash 节点中 Join 算子的最大内存使用量。</li><li>当该变量设置为 -1 时,TiFlash 将根据自身配置项 <a href="/zh/tidb/stable/tiflash-configuration#tiflash-配置参数-1"><code>max_bytes_before_external_join</code></a> 的值来决定 Join 算子的最大内存使用量。</li></ul></div></div></div><h3 id="tidb_max_bytes_before_tiflash_external_sort-span-classversion-mark从-v700-版本开始引入span" style="position:relative"><code>tidb_max_bytes_before_tiflash_external_sort</code> <span class="version-mark">从 v7.0.0 版本开始引入</span><a href="#tidb_max_bytes_before_tiflash_external_sort-span-classversion-mark%E4%BB%8E-v700-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_max_bytes_before_tiflash_external_sort span classversion mark从 v700 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:整数型</li><li>默认值:<code>-1</code></li><li>范围:<code>[-1, 9223372036854775807]</code></li><li>这个变量用于指定 TiFlash 中带 topN 和 sort 算子的最大内存使用量,单位为 byte,超过该值之后 TiFlash 会触发 topN 和 sort 算子的落盘。当该变量值为 -1 时,TiDB 不传递该变量给 TiFlash。只有该变量值大于等于 0 时,TiDB 才会传递该变量给 TiFlash。该变量为 0 时表示内存使用无限制,即 TiFlash topN 和 sort 算子不会触发落盘。详情见 <a href="/zh/tidb/stable/tiflash-spill-disk">TiFlash 数据落盘</a>。</li></ul><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardInfo MuiAlert-standard css-1bzshic" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="InfoOutlinedIcon"><path d="M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">注意</div><ul><li>假设一个 TiDB 集群有多个 TiFlash 节点,TopN 和 Sort 通常会在多个 TiFlash 节点中分布式执行。该变量控制的是单个 TiFlash 节点中 TopN 和 Sort 算子的最大内存使用量。</li><li>当该变量设置为 -1 时,TiFlash 将根据自身配置项 <a href="/zh/tidb/stable/tiflash-configuration#tiflash-配置参数-1"><code>max_bytes_before_external_sort</code></a> 的值来决定 TopN 和 Sort 算子的最大内存使用量。</li></ul></div></div></div><h3 id="tidb_max_chunk_size" style="position:relative"><code>tidb_max_chunk_size</code><a href="#tidb_max_chunk_size" aria-label="tidb_max_chunk_size permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>1024</code></li><li>范围:<code>[32, 2147483647]</code></li><li>单位:行</li><li>这个变量用来设置执行过程中一个 chunk 最大的行数,设置过大可能引起缓存局部性的问题,建议该变量不要超过 65536。chunk 行数直接影响单个查询所需的内存。可以按照查询中所有的列的总宽度和 chunk 行数来粗略估算单个 chunk 所需内存,并结合执行器的并发数来粗略估算单个查询所需内存总量。建议单个 chunk 内存总量不要超过 16 MiB。当查询涉及数据量较大、单个 chunk 无法处理所有数据时,TiDB 会进行多次处理,每次处理时将 chunk 行数翻倍,从 <a href="#tidb_init_chunk_size"><code>tidb_init_chunk_size</code></a> 开始,直到 chunk 行数达到最大值 <code>tidb_max_chunk_size</code>。</li></ul><h3 id="tidb_max_delta_schema_count" style="position:relative"><code>tidb_max_delta_schema_count</code><a href="#tidb_max_delta_schema_count" aria-label="tidb_max_delta_schema_count permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>1024</code></li><li>范围:<code>[100, 16384]</code></li><li>这个变量用来设置缓存 schema 版本信息(对应版本修改的相关 table IDs)的个数限制,可设置的范围 100 - 16384。此变量在 2.1.18 及之后版本支持。</li></ul><h3 id="tidb_max_paging_size-span-classversion-mark从-v630-版本开始引入span" style="position:relative"><code>tidb_max_paging_size</code> <span class="version-mark">从 v6.3.0 版本开始引入</span><a href="#tidb_max_paging_size-span-classversion-mark%E4%BB%8E-v630-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_max_paging_size span classversion mark从 v630 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:整数型</li><li>默认值:<code>50000</code></li><li>范围:<code>[1, 9223372036854775807]</code></li><li>单位:行</li><li>这个变量用来设置 coprocessor 协议中 paging size 的最大的行数。请合理设置该值,设置过小,TiDB 与 TiKV 的 RPC 交互会更频繁;设置过大,导数据和全表扫等特定场景会占用更多内存。该变量的默认值对于 OLTP 场景较友好,如果业务只使用了 TiKV 作为存储引擎,当执行偏 OLAP 的负载时,可以考虑将变量值调大,有可能获得更好的性能。</li></ul><h3 id="tidb_max_tiflash_threads-span-classversion-mark从-v610-版本开始引入span" style="position:relative"><code>tidb_max_tiflash_threads</code> <span class="version-mark">从 v6.1.0 版本开始引入</span><a href="#tidb_max_tiflash_threads-span-classversion-mark%E4%BB%8E-v610-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_max_tiflash_threads span classversion mark从 v610 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>-1</code></li><li>范围:<code>[-1, 256]</code></li><li>单位:线程</li><li>TiFlash 中 request 执行的最大并发度。默认值为 <code>-1</code>,表示该系统变量无效,此时最大并发度取决于 TiFlash 配置项 <code>profiles.default.max_threads</code> 的设置。<code>0</code> 表示由 TiFlash 系统自动设置该值。</li></ul><h3 id="tidb_mem_oom_action-span-classversion-mark从-v610-版本开始引入span" style="position:relative"><code>tidb_mem_oom_action</code> <span class="version-mark">从 v6.1.0 版本开始引入</span><a href="#tidb_mem_oom_action-span-classversion-mark%E4%BB%8E-v610-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_mem_oom_action span classversion mark从 v610 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:枚举型</li><li>默认值:<code>CANCEL</code></li><li>可选值:<code>CANCEL</code>,<code>LOG</code></li><li>该变量控制当单个查询使用的内存超过限制 (<code>tidb_mem_quota_query</code>) 且不能再利用临时磁盘时,TiDB 所采取的操作。详情见 <a href="/zh/tidb/stable/configure-memory-usage">TiDB 内存控制</a>。</li><li>该变量默认值为 <code>CANCEL</code>,但在 TiDB v4.0.2 及之前的版本中,默认值为 <code>LOG</code>。</li><li>在 v6.1.0 之前这个开关通过 TiDB 配置文件 (<code>oom-action</code>) 进行配置,升级到 v6.1.0 时会自动继承原有设置。</li></ul><h3 id="tidb_mem_quota_analyze-span-classversion-mark从-v610-版本开始引入span" style="position:relative"><code>tidb_mem_quota_analyze</code> <span class="version-mark">从 v6.1.0 版本开始引入</span><a href="#tidb_mem_quota_analyze-span-classversion-mark%E4%BB%8E-v610-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_mem_quota_analyze span classversion mark从 v610 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardError MuiAlert-standard css-kdwypz" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ErrorOutlineIcon"><path d="M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">警告</div><p>目前限制 ANALYZE 的内存使用量为实验特性,在生产环境中使用时可能存在内存统计有误差的情况。</p></div></div></div><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>-1</code></li><li>单位:字节</li><li>取值范围:<code>[-1, 9223372036854775807]</code></li><li>这个变量用来控制 TiDB 更新统计信息时的最大总内存占用,包括用户执行的 <a href="/zh/tidb/stable/sql-statement-analyze-table"><code>ANALYZE TABLE</code></a> 和 TiDB 后台自动执行的统计信息更新任务。当总的内存占用超过这个阈值时,用户执行的 <code>ANALYZE</code> 会被终止退出,并通过错误信息提示用户尝试更小的采样率或稍后重试。如果 TiDB 后台自动执行的统计信息更新任务因内存超限而退出,且使用的采样率高于默认值,则会使用默认采样率重试一次。当该变量值为负数或零时,TiDB 不对更新统计信息的前后台任务进行内存限制。</li></ul><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardInfo MuiAlert-standard css-1bzshic" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="InfoOutlinedIcon"><path d="M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">注意</div><p>只有在 TiDB 的启动配置文件中开启了 <code>run-auto-analyze</code> 选项,该 TiDB 集群才会触发 <code>auto_analyze</code>。</p></div></div></div><h3 id="tidb_mem_quota_apply_cache-span-classversion-mark从-v50-版本开始引入span" style="position:relative"><code>tidb_mem_quota_apply_cache</code> <span class="version-mark">从 v5.0 版本开始引入</span><a href="#tidb_mem_quota_apply_cache-span-classversion-mark%E4%BB%8E-v50-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_mem_quota_apply_cache span classversion mark从 v50 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>33554432</code> (32 MiB)</li><li>范围:<code>[0, 9223372036854775807]</code></li><li>单位:字节</li><li>这个变量用来设置 <code>Apply</code> 算子中局部 Cache 的内存使用阈值。</li><li><code>Apply</code> 算子中局部 Cache 用来加速 <code>Apply</code> 算子的计算,该变量可以设置 <code>Apply</code> Cache 的内存使用阈值。设置变量值为 <code>0</code> 可以关闭 <code>Apply</code> Cache 功能。</li></ul><h3 id="tidb_mem_quota_binding_cache-span-classversion-mark从-v600-版本开始引入span" style="position:relative"><code>tidb_mem_quota_binding_cache</code> <span class="version-mark">从 v6.0.0 版本开始引入</span><a href="#tidb_mem_quota_binding_cache-span-classversion-mark%E4%BB%8E-v600-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_mem_quota_binding_cache span classversion mark从 v600 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>67108864</code> (64 MiB)</li><li>范围:<code>[0, 2147483647]</code></li><li>单位:字节</li><li>这个变量用来设置存放 <code>binding</code> 的缓存的内存使用阈值。</li><li>如果一个系统创建或者捕获了过多的绑定,导致绑定所使用的内存空间超过该阈值,TiDB 会在日志中增加警告日志进行提示。这种情况下,缓存无法存放所有可用的绑定,并且无法保证哪些绑定存在于缓存中,因此,可能存在一些查询无法使用可用绑定的情况。此时,可以调大该变量的值,从而保证所有可用绑定都能正常使用。修改变量值以后,需要执行命令 <code>admin reload bindings</code> 重新加载绑定,确保变更生效。</li></ul><h3 id="tidb_mem_quota_query" style="position:relative"><code>tidb_mem_quota_query</code><a href="#tidb_mem_quota_query" aria-label="tidb_mem_quota_query permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>1073741824</code> (1 GiB)</li><li>范围:<code>[-1, 9223372036854775807]</code></li><li>单位:字节</li><li>在 v6.1.0 之前的版本中,作用域为 <code>SESSION</code>。v6.1.0 及之后的版本,作用域变更为 <code>SESSION | GLOBAL</code>。</li><li>在 v6.5.0 之前的版本中,该变量用来设置单条查询的内存使用限制,如果单条查询执行过程中使用的内存量超过该阈值,会触发系统变量 <a href="#tidb_mem_oom_action-%E4%BB%8E-v610-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5"><code>tidb_mem_oom_action</code></a> 中指定的行为。</li><li>在 v6.5.0 及之后的版本中,该变量用来设置单个会话整体的内存使用限制,如果某个会话执行过程中使用的内存量超过该阈值,会触发系统变量 <a href="#tidb_mem_oom_action-%E4%BB%8E-v610-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5"><code>tidb_mem_oom_action</code></a> 中指定的行为。需要注意的是,自 v6.5.0 版本开始,会话的内存使用量包含会话中事务所消耗的内存。v6.5.0 及之后版本对事务内存的控制行为有所变化,详见 <a href="/zh/tidb/stable/tidb-configuration-file#txn-total-size-limit">txn-total-size-limit</a>。</li><li>当变量值为 <code>0</code> 或 <code>-1</code> 时,表示内存阈值为正无穷。此外,当变量值小于 128 时,将默认被设置为 <code>128</code>。</li></ul><h3 id="tidb_memory_debug_mode_alarm_ratio" style="position:relative"><code>tidb_memory_debug_mode_alarm_ratio</code><a href="#tidb_memory_debug_mode_alarm_ratio" aria-label="tidb_memory_debug_mode_alarm_ratio permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:浮点型</li><li>默认值:<code>0</code></li><li>该变量表示在 TiDB memory debug 模式下,允许的内存统计误差值。</li><li>该变量用于 TiDB 内部测试,<strong>不推荐修改该变量值</strong>。</li></ul><h3 id="tidb_memory_debug_mode_min_heap_inuse" style="position:relative"><code>tidb_memory_debug_mode_min_heap_inuse</code><a href="#tidb_memory_debug_mode_min_heap_inuse" aria-label="tidb_memory_debug_mode_min_heap_inuse permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>0</code></li><li>该变量用于 TiDB 内部测试,<strong>不推荐修改该变量值</strong>,因为开启后会影响 TiDB 的性能。</li><li>配置此参数后,TiDB 会进入 memory debug 模式进行内存追踪准确度的分析。TiDB 会在后续执行 SQL 语句的过程中频繁触发 GC,并将实际内存使用和内存统计值做对比。若当前内存使用大于 <code>tidb_memory_debug_mode_min_heap_inuse</code> 且内存统计误差超过 <code>tidb_memory_debug_mode_alarm_ratio</code>,则会输出相关内存信息到日志和文件中。</li></ul><h3 id="tidb_memory_usage_alarm_ratio" style="position:relative"><code>tidb_memory_usage_alarm_ratio</code><a href="#tidb_memory_usage_alarm_ratio" aria-label="tidb_memory_usage_alarm_ratio permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li><p>作用域:GLOBAL</p></li><li><p>是否持久化到集群:是</p></li><li><p>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</p></li><li><p>类型:浮点数</p></li><li><p>默认值:<code>0.7</code></p></li><li><p>范围:<code>[0.0, 1.0]</code></p></li><li><p>这个变量用于设置触发 tidb-server 内存告警的内存使用比率。默认情况下,当 TiDB 内存使用量超过总内存的 70% 且满足<a href="/zh/tidb/stable/configure-memory-usage#tidb-server-内存占用过高时的报警">报警条件</a>时,TiDB 会打印报警日志。</p></li><li><p>当配置该变量的值为 <code>0</code> 或 <code>1</code> 时,表示关闭内存阈值报警功能。</p></li><li><p>当配置该变量为 <code>0</code> 到 <code>1</code> 之间的值时,表示开启内存阈值报警功能:</p><ul><li>如果系统变量 <a href="/zh/tidb/stable/system-variables#tidb_server_memory_limit-从-v640-版本开始引入"><code>tidb_server_memory_limit</code></a> 等于 0,则内存报警阈值为 <code>tidb_memory_usage_alarm_ratio * 系统内存大小</code>。</li><li>如果系统变量 <code>tidb_server_memory_limit</code> 被设置为大于 0,则内存报警阈值为 <code>tidb_memory_usage_alarm_ratio * tidb_server_memory_limit</code>。</li></ul></li></ul><h3 id="tidb_memory_usage_alarm_keep_record_num-span-classversion-mark从-v640-版本开始引入span" style="position:relative"><code>tidb_memory_usage_alarm_keep_record_num</code> <span class="version-mark">从 v6.4.0 版本开始引入</span><a href="#tidb_memory_usage_alarm_keep_record_num-span-classversion-mark%E4%BB%8E-v640-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_memory_usage_alarm_keep_record_num span classversion mark从 v640 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>默认值:<code>5</code></li><li>范围:<code>[1, 10000]</code></li><li>当 tidb-server 内存占用超过内存报警阈值并触发报警时,TiDB 默认只保留最近 5 次报警时所生成的状态文件。你可以通过该变量调整该次数。</li></ul><h3 id="tidb_merge_join_concurrency" style="position:relative"><code>tidb_merge_join_concurrency</code><a href="#tidb_merge_join_concurrency" aria-label="tidb_merge_join_concurrency permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:整数型</li><li>默认值:<code>1</code></li><li>取值范围:<code>[1, 256]</code></li><li>设置 <code>MergeJoin</code> 算子执行查询时的并发度。</li><li><strong>不推荐设置该变量</strong>,修改该变量值可能会造成数据正确性问题。</li></ul><h3 id="tidb_merge_partition_stats_concurrency" style="position:relative"><code>tidb_merge_partition_stats_concurrency</code><a href="#tidb_merge_partition_stats_concurrency" aria-label="tidb_merge_partition_stats_concurrency permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>默认值:<code>1</code></li><li>这个变量用于 TiDB analyze 分区表时,对分区表统计信息进行合并时的并发度。</li></ul><h3 id="tidb_enable_async_merge_global_stats-span-classversion-mark从-v750-版本开始引入span" style="position:relative"><code>tidb_enable_async_merge_global_stats</code> <span class="version-mark">从 v7.5.0 版本开始引入</span><a href="#tidb_enable_async_merge_global_stats-span-classversion-mark%E4%BB%8E-v750-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_enable_async_merge_global_stats span classversion mark从 v750 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code>。从 v7.5.0 之前版本升级到 v7.5.0 或之后版本时,默认值为 <code>OFF</code>。</li><li>这个变量用于设置 TiDB 使用异步方式合并统计信息,以避免 OOM 问题。</li></ul><h3 id="tidb_metric_query_range_duration-span-classversion-mark从-v40-版本开始引入span" style="position:relative"><code>tidb_metric_query_range_duration</code> <span class="version-mark">从 v4.0 版本开始引入</span><a href="#tidb_metric_query_range_duration-span-classversion-mark%E4%BB%8E-v40-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_metric_query_range_duration span classversion mark从 v40 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>60</code></li><li>范围:<code>[10, 216000]</code></li><li>单位:秒</li><li>这个变量设置了查询 <code>METRIC_SCHEMA</code> 时生成的 Prometheus 语句的 range duration。</li></ul><h3 id="tidb_metric_query_step-span-classversion-mark从-v40-版本开始引入span" style="position:relative"><code>tidb_metric_query_step</code> <span class="version-mark">从 v4.0 版本开始引入</span><a href="#tidb_metric_query_step-span-classversion-mark%E4%BB%8E-v40-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_metric_query_step span classversion mark从 v40 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>60</code></li><li>范围:<code>[10, 216000]</code></li><li>单位:秒</li><li>这个变量设置了查询 <code>METRIC_SCHEMA</code> 时生成的 Prometheus 语句的 step。</li></ul><h3 id="tidb_min_paging_size-span-classversion-mark从-v620-版本开始引入span" style="position:relative"><code>tidb_min_paging_size</code> <span class="version-mark">从 v6.2.0 版本开始引入</span><a href="#tidb_min_paging_size-span-classversion-mark%E4%BB%8E-v620-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_min_paging_size span classversion mark从 v620 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:整数型</li><li>默认值:<code>128</code></li><li>范围:<code>[1, 9223372036854775807]</code></li><li>单位:行</li><li>这个变量用来设置 coprocessor 协议中 paging size 的最小的行数。请合理设置该值,设置过小,TiDB 与 TiKV 的 RPC 交互会更频繁;设置过大,IndexLookup 带 Limit 场景会出现性能下降。该变量的默认值对于 OLTP 场景较友好,如果业务只使用了 TiKV 作为存储引擎,当执行偏 OLAP 的负载时,可以考虑将变量值调大,有可能获得更好的性能。</li></ul><p><img src="https://download.pingcap.com/images/docs-cn/paging-size-impact-on-tpch.png" alt="Paging size impact on TPCH"/></p><p>开启 <a href="#tidb_enable_paging-%E4%BB%8E-v540-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5"><code>tidb_enable_paging</code></a> 时,<code>tidb_min_paging_size</code> 和 <a href="#tidb_max_paging_size-%E4%BB%8E-v630-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5"><code>tidb_max_paging_size</code></a> 对 TPCH 的性能影响如上图所示,纵轴是执行时间,越小越好。</p><h3 id="tidb_mpp_store_fail_ttl" style="position:relative"><code>tidb_mpp_store_fail_ttl</code><a href="#tidb_mpp_store_fail_ttl" aria-label="tidb_mpp_store_fail_ttl permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:Duration</li><li>默认值:<code>60s</code></li><li>刚重启的 TiFlash 可能不能正常提供服务。为了防止查询失败,TiDB 会限制 tidb-server 向刚重启的 TiFlash 节点发送查询。这个变量表示刚重启的 TiFlash 不被发送请求的时间范围。</li></ul><h3 id="tidb_multi_statement_mode-span-classversion-mark从-v4011-版本开始引入span" style="position:relative"><code>tidb_multi_statement_mode</code> <span class="version-mark">从 v4.0.11 版本开始引入</span><a href="#tidb_multi_statement_mode-span-classversion-mark%E4%BB%8E-v4011-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_multi_statement_mode span classversion mark从 v4011 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:枚举型</li><li>默认值:<code>OFF</code></li><li>可选值:<code>OFF</code>,<code>ON</code>,<code>WARN</code></li><li>该变量用于控制是否在同一个 <code>COM_QUERY</code> 调用中执行多个查询。</li><li>为了减少 SQL 注入攻击的影响,TiDB 目前默认不允许在同一 <code>COM_QUERY</code> 调用中执行多个查询。该变量可用作早期 TiDB 版本的升级路径选项。该变量值与是否允许多语句行为的对照表如下:</li></ul><table><thead><tr><th>客户端设置</th><th><code>tidb_multi_statement_mode</code> 值</th><th>是否允许多语句</th></tr></thead><tbody><tr><td>Multiple Statements = ON</td><td>OFF</td><td>允许</td></tr><tr><td>Multiple Statements = ON</td><td>ON</td><td>允许</td></tr><tr><td>Multiple Statements = ON</td><td>WARN</td><td>允许</td></tr><tr><td>Multiple Statements = OFF</td><td>OFF</td><td>不允许</td></tr><tr><td>Multiple Statements = OFF</td><td>ON</td><td>允许</td></tr><tr><td>Multiple Statements = OFF</td><td>WARN</td><td>允许 + 警告提示</td></tr></tbody></table><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardInfo MuiAlert-standard css-1bzshic" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="InfoOutlinedIcon"><path d="M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">注意</div><p>只有默认值 <code>OFF</code> 才是安全的。如果用户业务是专为早期 TiDB 版本而设计的,那么需要将该变量值设为 <code>ON</code>。如果用户业务需要多语句支持,建议用户使用客户端提供的设置,不要使用 <code>tidb_multi_statement_mode</code> 变量进行设置。</p></div></div></div><blockquote><ul><li><a href="https://github.com/go-sql-driver/mysql#multistatements" target="_blank" referrerpolicy="no-referrer-when-downgrade">go-sql-driver</a> (<code>multiStatements</code>)</li><li><a href="https://dev.mysql.com/doc/connector-j/en/connector-j-reference-configuration-properties.html" target="_blank" referrerpolicy="no-referrer-when-downgrade">Connector/J</a> (<code>allowMultiQueries</code>)</li><li>PHP <a href="https://www.php.net/manual/en/mysqli.quickstart.multiple-statement.php" target="_blank" referrerpolicy="no-referrer-when-downgrade">mysqli</a> (<code>mysqli_multi_query</code>)</li></ul></blockquote><h3 id="tidb_opt_agg_push_down" style="position:relative"><code>tidb_opt_agg_push_down</code><a href="#tidb_opt_agg_push_down" aria-label="tidb_opt_agg_push_down permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>这个变量用来设置优化器是否执行聚合函数下推到 Join,Projection 和 UnionAll 之前的优化操作。当查询中聚合操作执行很慢时,可以尝试设置该变量为 ON。</li></ul><h3 id="tidb_opt_broadcast_cartesian_join" style="position:relative"><code>tidb_opt_broadcast_cartesian_join</code><a href="#tidb_opt_broadcast_cartesian_join" aria-label="tidb_opt_broadcast_cartesian_join permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:整数型</li><li>默认值:<code>1</code></li><li>范围:<code>[0, 2]</code></li><li>表示是否允许 Broadcast Cartesian Join 算法。</li><li>值为 <code>0</code> 时表示不允许使用 Broadcast Cartesian Join 算法。值为 <code>1</code> 时表示根据 <a href="#tidb_broadcast_join_threshold_count-%E4%BB%8E-v50-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5"><code>tidb_broadcast_join_threshold_count</code></a> 的行数阈值确定是否允许使用 Broadcast Cartesian Join 算法。值为 <code>2</code> 时表示总是允许 Broadcast Cartesian Join 算法,即使表的大小超过了该阈值。</li><li>该变量是 TiDB 内部使用的变量,<strong>不推荐</strong>修改该变量的值。</li></ul><h3 id="tidb_opt_concurrency_factor" style="position:relative"><code>tidb_opt_concurrency_factor</code><a href="#tidb_opt_concurrency_factor" aria-label="tidb_opt_concurrency_factor permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:浮点数</li><li>范围:<code>[0, 18446744073709551615]</code></li><li>默认值:<code>3.0</code></li><li>表示在 TiDB 中开启一个 Golang goroutine 的 CPU 开销。该变量是<a href="/zh/tidb/stable/cost-model">代价模型</a>内部使用的变量,<strong>不建议</strong>修改该变量的值。</li></ul><h3 id="tidb_opt_copcpu_factor" style="position:relative"><code>tidb_opt_copcpu_factor</code><a href="#tidb_opt_copcpu_factor" aria-label="tidb_opt_copcpu_factor permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:浮点数</li><li>范围:<code>[0, 18446744073709551615]</code></li><li>默认值:<code>3.0</code></li><li>表示 TiKV 协处理器处理一行数据的 CPU 开销。该变量是<a href="/zh/tidb/stable/cost-model">代价模型</a>内部使用的变量,<strong>不建议</strong>修改该变量的值。</li></ul><h3 id="tidb_opt_correlation_exp_factor" style="position:relative"><code>tidb_opt_correlation_exp_factor</code><a href="#tidb_opt_correlation_exp_factor" aria-label="tidb_opt_correlation_exp_factor permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:整数型</li><li>默认值:<code>1</code></li><li>范围:<code>[0, 2147483647]</code></li><li>当交叉估算方法不可用时,会采用启发式估算方法。这个变量用来控制启发式方法的行为。当值为 0 时不用启发式估算方法,大于 0 时,该变量值越大,启发式估算方法越倾向 index scan,越小越倾向 table scan。</li></ul><h3 id="tidb_opt_correlation_threshold" style="position:relative"><code>tidb_opt_correlation_threshold</code><a href="#tidb_opt_correlation_threshold" aria-label="tidb_opt_correlation_threshold permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:浮点数</li><li>默认值:<code>0.9</code></li><li>范围:<code>[0, 1]</code></li><li>这个变量用来设置优化器启用交叉估算 row count 方法的阈值。如果列和 handle 列之间的顺序相关性超过这个阈值,就会启用交叉估算方法。</li><li>交叉估算方法可以简单理解为,利用这个列的直方图来估算 handle 列需要扫的行数。</li></ul><h3 id="tidb_opt_cpu_factor" style="position:relative"><code>tidb_opt_cpu_factor</code><a href="#tidb_opt_cpu_factor" aria-label="tidb_opt_cpu_factor permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:浮点数</li><li>范围:<code>[0, 2147483647]</code></li><li>默认值:<code>3.0</code></li><li>表示 TiDB 处理一行数据的 CPU 开销。该变量是<a href="/zh/tidb/stable/cost-model">代价模型</a>内部使用的变量,不建议修改该变量的值。</li></ul><h3 id="tidb_opt_derive_topn-span-classversion-mark从-v700-版本开始引入span" style="position:relative"><code>tidb_opt_derive_topn</code> <span class="version-mark">从 v7.0.0 版本开始引入</span><a href="#tidb_opt_derive_topn-span-classversion-mark%E4%BB%8E-v700-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_opt_derive_topn span classversion mark从 v700 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>表示是否开启<a href="/zh/tidb/stable/derive-topn-from-window">从窗口函数中推导 TopN 或 Limit</a> 的优化规则。</li></ul><h3 id="tidb_opt_desc_factor" style="position:relative"><code>tidb_opt_desc_factor</code><a href="#tidb_opt_desc_factor" aria-label="tidb_opt_desc_factor permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:浮点数</li><li>范围:<code>[0, 18446744073709551615]</code></li><li>默认值:<code>3.0</code></li><li>表示降序扫描时,TiKV 在磁盘上扫描一行数据的开销。该变量是<a href="/zh/tidb/stable/cost-model">代价模型</a>内部使用的变量,<strong>不建议</strong>修改该变量的值。</li></ul><h3 id="tidb_opt_disk_factor" style="position:relative"><code>tidb_opt_disk_factor</code><a href="#tidb_opt_disk_factor" aria-label="tidb_opt_disk_factor permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:浮点数</li><li>范围:<code>[0, 18446744073709551615]</code></li><li>默认值:<code>1.5</code></li><li>表示 TiDB 往临时磁盘读写一个字节数据的 I/O 开销。该变量是<a href="/zh/tidb/stable/cost-model">代价模型</a>内部使用的变量,<strong>不建议</strong>修改该变量的值。</li></ul><h3 id="tidb_opt_distinct_agg_push_down" style="position:relative"><code>tidb_opt_distinct_agg_push_down</code><a href="#tidb_opt_distinct_agg_push_down" aria-label="tidb_opt_distinct_agg_push_down permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>这个变量用来设置优化器是否执行带有 <code>Distinct</code> 的聚合函数(比如 <code>select count(distinct a) from t</code>)下推到 Coprocessor 的优化操作。当查询中带有 <code>Distinct</code> 的聚合操作执行很慢时,可以尝试设置该变量为 <code>1</code>。</li></ul><p>在以下示例中,<code>tidb_opt_distinct_agg_push_down</code> 开启前,TiDB 需要从 TiKV 读取所有数据,并在 TiDB 侧执行 <code>distinct</code>。<code>tidb_opt_distinct_agg_push_down</code> 开启后,<code>distinct a</code> 被下推到了 Coprocessor,在 <code>HashAgg_5</code> 里新增里一个 <code>group by</code> 列 <code>test.t.a</code>。</p><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia">mysql<span class="hljs-operator">></span> <span class="hljs-keyword">desc</span> <span class="hljs-keyword">select</span> <span class="hljs-built_in">count</span>(<span class="hljs-keyword">distinct</span> a) <span class="hljs-keyword">from</span> test.t; <span class="hljs-operator">+</span><span class="hljs-comment">-------------------------+----------+-----------+---------------+------------------------------------------+</span> <span class="hljs-operator">|</span> id <span class="hljs-operator">|</span> estRows <span class="hljs-operator">|</span> task <span class="hljs-operator">|</span> access object <span class="hljs-operator">|</span> operator info <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">-------------------------+----------+-----------+---------------+------------------------------------------+</span> <span class="hljs-operator">|</span> StreamAgg_6 <span class="hljs-operator">|</span> <span class="hljs-number">1.00</span> <span class="hljs-operator">|</span> root <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> funcs:<span class="hljs-built_in">count</span>(<span class="hljs-keyword">distinct</span> test.t.a)<span class="hljs-operator">-</span><span class="hljs-operator">></span><span class="hljs-keyword">Column</span>#<span class="hljs-number">4</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─TableReader_10 <span class="hljs-operator">|</span> <span class="hljs-number">10000.00</span> <span class="hljs-operator">|</span> root <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> data:TableFullScan_9 <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─TableFullScan_9 <span class="hljs-operator">|</span> <span class="hljs-number">10000.00</span> <span class="hljs-operator">|</span> cop[tikv] <span class="hljs-operator">|</span> <span class="hljs-keyword">table</span>:t <span class="hljs-operator">|</span> keep <span class="hljs-keyword">order</span>:<span class="hljs-literal">false</span>, stats:pseudo <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">-------------------------+----------+-----------+---------------+------------------------------------------+</span> <span class="hljs-number">3</span> <span class="hljs-keyword">rows</span> <span class="hljs-keyword">in</span> <span class="hljs-keyword">set</span> (<span class="hljs-number">0.01</span> sec) mysql<span class="hljs-operator">></span> <span class="hljs-keyword">set</span> session tidb_opt_distinct_agg_push_down <span class="hljs-operator">=</span> <span class="hljs-number">1</span>; Query OK, <span class="hljs-number">0</span> <span class="hljs-keyword">rows</span> affected (<span class="hljs-number">0.00</span> sec) mysql<span class="hljs-operator">></span> <span class="hljs-keyword">desc</span> <span class="hljs-keyword">select</span> <span class="hljs-built_in">count</span>(<span class="hljs-keyword">distinct</span> a) <span class="hljs-keyword">from</span> test.t; <span class="hljs-operator">+</span><span class="hljs-comment">---------------------------+----------+-----------+---------------+------------------------------------------+</span> <span class="hljs-operator">|</span> id <span class="hljs-operator">|</span> estRows <span class="hljs-operator">|</span> task <span class="hljs-operator">|</span> access object <span class="hljs-operator">|</span> operator info <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">---------------------------+----------+-----------+---------------+------------------------------------------+</span> <span class="hljs-operator">|</span> HashAgg_8 <span class="hljs-operator">|</span> <span class="hljs-number">1.00</span> <span class="hljs-operator">|</span> root <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> funcs:<span class="hljs-built_in">count</span>(<span class="hljs-keyword">distinct</span> test.t.a)<span class="hljs-operator">-</span><span class="hljs-operator">></span><span class="hljs-keyword">Column</span>#<span class="hljs-number">3</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─TableReader_9 <span class="hljs-operator">|</span> <span class="hljs-number">1.00</span> <span class="hljs-operator">|</span> root <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> data:HashAgg_5 <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─HashAgg_5 <span class="hljs-operator">|</span> <span class="hljs-number">1.00</span> <span class="hljs-operator">|</span> cop[tikv] <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> <span class="hljs-keyword">group</span> <span class="hljs-keyword">by</span>:test.t.a, <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─TableFullScan_7 <span class="hljs-operator">|</span> <span class="hljs-number">10000.00</span> <span class="hljs-operator">|</span> cop[tikv] <span class="hljs-operator">|</span> <span class="hljs-keyword">table</span>:t <span class="hljs-operator">|</span> keep <span class="hljs-keyword">order</span>:<span class="hljs-literal">false</span>, stats:pseudo <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">---------------------------+----------+-----------+---------------+------------------------------------------+</span> <span class="hljs-number">4</span> <span class="hljs-keyword">rows</span> <span class="hljs-keyword">in</span> <span class="hljs-keyword">set</span> (<span class="hljs-number">0.00</span> sec) </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre><h3 id="tidb_opt_enable_correlation_adjustment" style="position:relative"><code>tidb_opt_enable_correlation_adjustment</code><a href="#tidb_opt_enable_correlation_adjustment" aria-label="tidb_opt_enable_correlation_adjustment permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>这个变量用来控制优化器是否开启交叉估算。</li></ul><h3 id="tidb_opt_enable_hash_join-span-classversion-mark从-v656v712-和-v740-版本开始引入span" style="position:relative"><code>tidb_opt_enable_hash_join</code> <span class="version-mark">从 v6.5.6、v7.1.2 和 v7.4.0 版本开始引入</span><a href="#tidb_opt_enable_hash_join-span-classversion-mark%E4%BB%8E-v656v712-%E5%92%8C-v740-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_opt_enable_hash_join span classversion mark从 v656v712 和 v740 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>控制优化器是否会选择表的哈希连接。默认打开 (<code>ON</code>)。设置为 <code>OFF</code> 时,优化器在生成执行计划时会避免选择表的哈希连接,除非没有其他连接方式可用。</li><li>如果同时使用了 <code>tidb_opt_enable_hash_join</code> 和 <code>HASH_JOIN</code> Hint,则 <code>HASH_JOIN</code> Hint 优先级更高。即使 <code>tidb_opt_enable_hash_join</code> 被设置为 <code>OFF</code>,如果在查询中指定了 <code>HASH_JOIN</code> Hint,TiDB 优化器仍然会强制执行哈希连接计划。</li></ul><h3 id="tidb_opt_enable_non_eval_scalar_subquery-span-classversion-mark从-v730-版本开始引入span" style="position:relative"><code>tidb_opt_enable_non_eval_scalar_subquery</code> <span class="version-mark">从 v7.3.0 版本开始引入</span><a href="#tidb_opt_enable_non_eval_scalar_subquery-span-classversion-mark%E4%BB%8E-v730-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_opt_enable_non_eval_scalar_subquery span classversion mark从 v730 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>这个变量用来控制 <code>EXPLAIN</code> 语句是否禁止提前执行可以在优化阶段展开的常量子查询。该变量设置为 <code>OFF</code> 时,<code>EXPLAIN</code> 语句会在优化阶段提前展开子查询。该变量设置为 <code>ON</code> 时,<code>EXPLAIN</code> 语句不会在优化阶段展开子查询。更多信息请参考<a href="/zh/tidb/stable/explain-walkthrough#禁止子查询提前执行">禁止子查询提前展开</a>。</li></ul><h3 id="tidb_opt_enable_late_materialization-span-classversion-mark从-v700-版本开始引入span" style="position:relative"><code>tidb_opt_enable_late_materialization</code> <span class="version-mark">从 v7.0.0 版本开始引入</span><a href="#tidb_opt_enable_late_materialization-span-classversion-mark%E4%BB%8E-v700-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_opt_enable_late_materialization span classversion mark从 v700 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>这个变量用来控制是否启用 <a href="/zh/tidb/stable/tiflash-late-materialization">TiFlash 延迟物化</a>功能。注意在 TiFlash <a href="/zh/tidb/stable/use-fastscan">Fast Scan 模式</a>下,延迟物化功能暂不可用。</li><li>当设置该变量为 <code>OFF</code> 关闭 TiFlash 延迟物化功能时,如果 <code>SELECT</code> 语句中包含过滤条件(<code>WHERE</code> 子句),TiFlash 会先扫描查询所需列的全部数据后再进行过滤。当设置该变量为 <code>ON</code> 开启 TiFlash 延迟物化功能时,TiFlash 会先扫描下推到 TableScan 算子的过滤条件相关的列数据,过滤得到符合条件的行后,再扫描这些行的其他列数据,继续后续计算,从而减少 IO 扫描和数据处理的计算量。</li></ul><h3 id="tidb_opt_enable_mpp_shared_cte_execution-span-classversion-mark从-v720-版本开始引入span" style="position:relative"><code>tidb_opt_enable_mpp_shared_cte_execution</code> <span class="version-mark">从 v7.2.0 版本开始引入</span><a href="#tidb_opt_enable_mpp_shared_cte_execution-span-classversion-mark%E4%BB%8E-v720-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_opt_enable_mpp_shared_cte_execution span classversion mark从 v720 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardError MuiAlert-standard css-kdwypz" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ErrorOutlineIcon"><path d="M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">警告</div><p>该变量控制的功能为实验特性,不建议在生产环境中使用。该功能可能会在未事先通知的情况下发生变化或删除。如果发现 bug,请在 GitHub 上提 <a href="https://github.com/pingcap/tidb/issues" target="_blank" referrerpolicy="no-referrer-when-downgrade">issue</a> 反馈。</p></div></div></div><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>该变量控制非递归的<a href="/zh/tidb/stable/sql-statement-with">公共表表达式 (CTE)</a> 是否可以在 TiFlash MPP 执行。默认情况下,未开启该变量时,CTE 在 TiDB 执行,相较于开启该功能,执行性能有较大差距。</li></ul><h3 id="tidb_opt_enable_fuzzy_binding-span-classversion-mark从-v760-版本开始引入span" style="position:relative"><code>tidb_opt_enable_fuzzy_binding</code> <span class="version-mark">从 v7.6.0 版本开始引入</span><a href="#tidb_opt_enable_fuzzy_binding-span-classversion-mark%E4%BB%8E-v760-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_opt_enable_fuzzy_binding span classversion mark从 v760 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>该变量控制是否开启<a href="/zh/tidb/stable/sql-plan-management#跨数据库绑定执行计划-cross-db-binding">跨数据库绑定执行计划</a>功能。</li></ul><h3 id="tidb_opt_fix_control-span-classversion-mark从-v653-和-v710-版本开始引入span" style="position:relative"><code>tidb_opt_fix_control</code> <span class="version-mark">从 v6.5.3 和 v7.1.0 版本开始引入</span><a href="#tidb_opt_fix_control-span-classversion-mark%E4%BB%8E-v653-%E5%92%8C-v710-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_opt_fix_control span classversion mark从 v653 和 v710 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:字符串</li><li>默认值:<code>""</code></li><li>这个变量用来控制优化器的一些内部行为。</li><li>一部分优化器行为的选择依赖用户场景或 SQL 编写方式。通过设置该变量,你可以更细粒度地控制优化器的行为,并且避免集群升级后优化器行为变化导致的性能回退。</li><li>详细介绍请参考 <a href="/zh/tidb/stable/optimizer-fix-controls">Optimizer Fix Controls</a>。</li></ul><h3 id="tidb_opt_force_inline_cte-span-classversion-mark从-v630-版本开始引入span" style="position:relative"><code>tidb_opt_force_inline_cte</code> <span class="version-mark">从 v6.3.0 版本开始引入</span><a href="#tidb_opt_force_inline_cte-span-classversion-mark%E4%BB%8E-v630-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_opt_force_inline_cte span classversion mark从 v630 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>这个变量用来控制是否强制 inline CTE。默认值为 <code>OFF</code>,即默认不强制 inline CTE。注意,此时依旧可以通过 <code>MERGE()</code> hint 来开启个别 CTE 的 inline。如果设置为 <code>ON</code>,则当前 session 中所有查询的 CTE(递归 CTE 除外)都会 inline。</li></ul><h3 id="tidb_opt_advanced_join_hint-span-classversion-mark从-v700-版本开始引入span" style="position:relative"><code>tidb_opt_advanced_join_hint</code> <span class="version-mark">从 v7.0.0 版本开始引入</span><a href="#tidb_opt_advanced_join_hint-span-classversion-mark%E4%BB%8E-v700-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_opt_advanced_join_hint span classversion mark从 v700 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>这个变量用来控制包括 <a href="/zh/tidb/stable/optimizer-hints#hash_joint1_name--tl_name-"><code>HASH_JOIN()</code> Hint</a>、<a href="/zh/tidb/stable/optimizer-hints#merge_joint1_name--tl_name-"><code>MERGE_JOIN()</code> Hint</a> 等用于控制连接算法的 Join Method Hint 是否会影响 Join Reorder 的优化过程,包括 <a href="/zh/tidb/stable/optimizer-hints#leadingt1_name--tl_name-"><code>LEADING()</code> Hint</a> 的使用。默认值为 <code>ON</code>,即默认不影响。如果设置为 <code>OFF</code>,在一些同时使用 Join Method Hint 和 <code>LEADING()</code> Hint 的场景下可能会产生冲突。</li></ul><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardInfo MuiAlert-standard css-1bzshic" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="InfoOutlinedIcon"><path d="M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">注意</div><p>v7.0.0 之前的版本行为和将该变量设置为 <code>OFF</code> 的行为一致。为确保向前兼容,从旧版本升级到 v7.0.0 及之后版本的集群,该变量会被设置成 <code>OFF</code>。为了获取更灵活的 Hint 行为,强烈建议在确保无性能回退的情况下,将该变量切换为 <code>ON</code>。</p></div></div></div><h3 id="tidb_opt_insubq_to_join_and_agg" style="position:relative"><code>tidb_opt_insubq_to_join_and_agg</code><a href="#tidb_opt_insubq_to_join_and_agg" aria-label="tidb_opt_insubq_to_join_and_agg permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li><p>作用域:SESSION | GLOBAL</p></li><li><p>是否持久化到集群:是</p></li><li><p>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</p></li><li><p>类型:布尔型</p></li><li><p>默认值:<code>ON</code></p></li><li><p>这个变量用来设置是否开启优化规则:将子查询转成 join 和 aggregation。</p><p> 例如,打开这个优化规则后,会将下面子查询做如下变化:</p><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia"><span class="hljs-keyword">select</span> <span class="hljs-operator">*</span> <span class="hljs-keyword">from</span> t <span class="hljs-keyword">where</span> t.a <span class="hljs-keyword">in</span> (<span class="hljs-keyword">select</span> aa <span class="hljs-keyword">from</span> t1); </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre><p> 将子查询转成如下 join:</p><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia"><span class="hljs-keyword">select</span> t.<span class="hljs-operator">*</span> <span class="hljs-keyword">from</span> t, (<span class="hljs-keyword">select</span> aa <span class="hljs-keyword">from</span> t1 <span class="hljs-keyword">group</span> <span class="hljs-keyword">by</span> aa) tmp_t <span class="hljs-keyword">where</span> t.a <span class="hljs-operator">=</span> tmp_t.aa; </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre><p> 如果 t1 在列 <code>aa</code> 上有 unique 且 not null 的限制,可以直接改写为如下,不需要添加 aggregation。</p><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia"><span class="hljs-keyword">select</span> t.<span class="hljs-operator">*</span> <span class="hljs-keyword">from</span> t, t1 <span class="hljs-keyword">where</span> t.a<span class="hljs-operator">=</span>t1.aa; </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre></li></ul><h3 id="tidb_opt_join_reorder_threshold" style="position:relative"><code>tidb_opt_join_reorder_threshold</code><a href="#tidb_opt_join_reorder_threshold" aria-label="tidb_opt_join_reorder_threshold permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域: SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:整数型</li><li>默认值:<code>0</code></li><li>范围:<code>[0, 2147483647]</code></li><li>这个变量用来控制 TiDB Join Reorder 算法的选择。当参与 Join Reorder 的节点个数大于该阈值时,TiDB 选择贪心算法,小于该阈值时 TiDB 选择动态规划 (dynamic programming) 算法。</li><li>目前对于 OLTP 的查询,推荐保持默认值。对于 OLAP 的查询,推荐将变量值设为 10~15 来获得 AP 场景下更好的连接顺序。</li></ul><h3 id="tidb_opt_limit_push_down_threshold" style="position:relative"><code>tidb_opt_limit_push_down_threshold</code><a href="#tidb_opt_limit_push_down_threshold" aria-label="tidb_opt_limit_push_down_threshold permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:整数型</li><li>默认值:<code>100</code></li><li>范围:<code>[0, 2147483647]</code></li><li>这个变量用来设置将 Limit 和 TopN 算子下推到 TiKV 的阈值。</li><li>如果 Limit 或者 TopN 的取值小于等于这个阈值,则 Limit 和 TopN 算子会被强制下推到 TiKV。该变量可以解决部分由于估算误差导致 Limit 或者 TopN 无法被下推的问题。</li></ul><h3 id="tidb_opt_memory_factor" style="position:relative"><code>tidb_opt_memory_factor</code><a href="#tidb_opt_memory_factor" aria-label="tidb_opt_memory_factor permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:浮点数</li><li>范围:<code>[0, 2147483647]</code></li><li>默认值:<code>0.001</code></li><li>表示 TiDB 存储一行数据的内存开销。该变量是<a href="/zh/tidb/stable/cost-model">代价模型</a>内部使用的变量,<strong>不建议</strong>修改该变量的值。</li></ul><h3 id="tidb_opt_mpp_outer_join_fixed_build_side-span-classversion-mark从-v510-版本开始引入span" style="position:relative"><code>tidb_opt_mpp_outer_join_fixed_build_side</code> <span class="version-mark">从 v5.1.0 版本开始引入</span><a href="#tidb_opt_mpp_outer_join_fixed_build_side-span-classversion-mark%E4%BB%8E-v510-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_opt_mpp_outer_join_fixed_build_side span classversion mark从 v510 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>当该变量值为 <code>ON</code> 时,左连接始终使用内表作为构建端,右连接始终使用外表作为构建端。将该变量值设为 <code>OFF</code> 后,外连接可以灵活选择任意一边表作为构建端。</li></ul><h3 id="tidb_opt_network_factor" style="position:relative"><code>tidb_opt_network_factor</code><a href="#tidb_opt_network_factor" aria-label="tidb_opt_network_factor permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:浮点数</li><li>范围:<code>[0, 2147483647]</code></li><li>默认值:<code>1.0</code></li><li>表示传输 1 比特数据的网络净开销。该变量是<a href="/zh/tidb/stable/cost-model">代价模型</a>内部使用的变量,<strong>不建议</strong>修改该变量的值。</li></ul><h3 id="tidb_opt_objective-span-classversion-mark从-v740-版本开始引入span" style="position:relative"><code>tidb_opt_objective</code> <span class="version-mark">从 v7.4.0 版本开始引入</span><a href="#tidb_opt_objective-span-classversion-mark%E4%BB%8E-v740-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_opt_objective span classversion mark从 v740 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:枚举型</li><li>默认值:<code>moderate</code></li><li>可选值:<code>moderate</code>、<code>determinate</code></li><li>该变量用于设置优化器优化目标。<code>moderate</code> 与 TiDB v7.4.0 之前版本的默认行为保持一致,优化器会利用更多信息尝试生成更优的计划。<code>determinate</code> 则倾向于保守,保持执行计划稳定。</li><li>实时统计信息是 TiDB 在运行时根据 DML 语句自动更新的表的总行数以及修改的行数。该变量保持默认值 <code>moderate</code> 时,TiDB 会基于实时统计信息来生成执行计划。该变量设为 <code>determinate</code> 后,TiDB 在生成执行计划时将不再使用实时统计信息,这会让执行计划相对稳定。</li><li>对于长期稳定的 OLTP 业务,或者如果用户对系统已有的执行计划非常确定,则推荐使用 <code>determinate</code> 模式减少执行计划跳变的可能。同时还可以结合 <a href="/zh/tidb/stable/sql-statement-lock-stats"><code>LOCK STATS</code></a> 来阻止统计信息的更新,进一步稳定执行计划。</li></ul><h3 id="tidb_opt_ordering_index_selectivity_ratio-span-classversion-mark从-v800-版本开始引入span" style="position:relative"><code>tidb_opt_ordering_index_selectivity_ratio</code> <span class="version-mark">从 v8.0.0 版本开始引入</span><a href="#tidb_opt_ordering_index_selectivity_ratio-span-classversion-mark%E4%BB%8E-v800-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_opt_ordering_index_selectivity_ratio span classversion mark从 v800 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li><p>作用域:SESSION | GLOBAL</p></li><li><p>是否持久化到集群:是</p></li><li><p>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</p></li><li><p>类型:浮点数</p></li><li><p>默认值:<code>-1</code></p></li><li><p>范围:<code>[-1, 1]</code></p></li><li><p>当一个索引满足 SQL 语句中的 <code>ORDER BY</code> 和 <code>LIMIT</code> 子句,但有部分过滤条件未被该索引覆盖时,该系统变量用于控制该索引的估算行数。</p></li><li><p>该变量适用的场景与系统变量 <a href="#tidb_opt_ordering_index_selectivity_threshold-%E4%BB%8E-v700-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5"><code>tidb_opt_ordering_index_selectivity_threshold</code></a> 相同。</p></li><li><p>与 <code>tidb_opt_ordering_index_selectivity_threshold</code> 的实现不同,该变量采用范围内符合条件的可能行数的比率或百分比。</p></li><li><p>取值为 <code>-1</code>(默认值)或小于 <code>0</code> 时,禁用此变量。取值在 <code>0</code> 到 <code>1</code> 之间时,对应 0% 到 100% 的比率(例如,<code>0.5</code> 对应 <code>50%</code>)。</p></li><li><p>在以下示例中,表 <code>t</code> 共有 1,000,000 行数据。示例使用相同查询,但应用了不同的 <code>tidb_opt_ordering_index_selectivity_ratio</code> 值。示例中的查询包含一个 <code>WHERE</code> 子句谓词,该谓词匹配少量行(1,000,000 中的 9,000 行)。存在一个支持 <code>ORDER BY a</code> 的索引(索引 <code>ia</code>),但是对 <code>b</code> 的过滤不在此索引中。根据实际的数据分布,满足 <code>WHERE</code> 子句和 <code>LIMIT 1</code> 的行可能在扫描非过滤索引时作为第一行访问到,也可能在几乎处理满足所有行后才找到。</p></li><li><p>每个示例中都使用了一个索引 hint,用于展示对 estRows 的影响。最终计划选择取决于是否存在代价更低的其他计划。</p></li><li><p>第一个示例使用默认值 <code>-1</code>,使用现有的估算公式。默认行为是,在找到符合条件的行之前,会扫描一小部分行进行估算。</p><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia"><span class="hljs-operator">></span> <span class="hljs-keyword">SET</span> SESSION tidb_opt_ordering_index_selectivity_ratio <span class="hljs-operator">=</span> <span class="hljs-number">-1</span>; <span class="hljs-operator">></span> EXPLAIN <span class="hljs-keyword">SELECT</span> <span class="hljs-operator">*</span> <span class="hljs-keyword">FROM</span> t USE INDEX (ia) <span class="hljs-keyword">WHERE</span> b <span class="hljs-operator"><=</span> <span class="hljs-number">9000</span> <span class="hljs-keyword">ORDER</span> <span class="hljs-keyword">BY</span> a LIMIT <span class="hljs-number">1</span>; <span class="hljs-operator">+</span><span class="hljs-comment">-----------------------------------+---------+-----------+-----------------------+---------------------------------+</span> <span class="hljs-operator">|</span> id <span class="hljs-operator">|</span> estRows <span class="hljs-operator">|</span> task <span class="hljs-operator">|</span> access object <span class="hljs-operator">|</span> operator info <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">-----------------------------------+---------+-----------+-----------------------+---------------------------------+</span> <span class="hljs-operator">|</span> Limit_12 <span class="hljs-operator">|</span> <span class="hljs-number">1.00</span> <span class="hljs-operator">|</span> root <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> <span class="hljs-keyword">offset</span>:<span class="hljs-number">0</span>, count:<span class="hljs-number">1</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─Projection_22 <span class="hljs-operator">|</span> <span class="hljs-number">1.00</span> <span class="hljs-operator">|</span> root <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> test.t.a, test.t.b, test.t.c <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─IndexLookUp_21 <span class="hljs-operator">|</span> <span class="hljs-number">1.00</span> <span class="hljs-operator">|</span> root <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> ├─IndexFullScan_18(Build) <span class="hljs-operator">|</span> <span class="hljs-number">109.20</span> <span class="hljs-operator">|</span> cop[tikv] <span class="hljs-operator">|</span> <span class="hljs-keyword">table</span>:t, index:ia(a) <span class="hljs-operator">|</span> keep <span class="hljs-keyword">order</span>:<span class="hljs-literal">true</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─Selection_20(Probe) <span class="hljs-operator">|</span> <span class="hljs-number">1.00</span> <span class="hljs-operator">|</span> cop[tikv] <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> le(test.t.b, <span class="hljs-number">9000</span>) <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─TableRowIDScan_19 <span class="hljs-operator">|</span> <span class="hljs-number">109.20</span> <span class="hljs-operator">|</span> cop[tikv] <span class="hljs-operator">|</span> <span class="hljs-keyword">table</span>:t <span class="hljs-operator">|</span> keep <span class="hljs-keyword">order</span>:<span class="hljs-literal">false</span> <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">-----------------------------------+---------+-----------+-----------------------+---------------------------------+</span> </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre></li><li><p>第二个示例使用 <code>0</code>,假设在找到符合条件的行之前,将扫描 0% 的行。</p><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia"><span class="hljs-operator">></span> <span class="hljs-keyword">SET</span> SESSION tidb_opt_ordering_index_selectivity_ratio <span class="hljs-operator">=</span> <span class="hljs-number">0</span>; <span class="hljs-operator">></span> EXPLAIN <span class="hljs-keyword">SELECT</span> <span class="hljs-operator">*</span> <span class="hljs-keyword">FROM</span> t USE INDEX (ia) <span class="hljs-keyword">WHERE</span> b <span class="hljs-operator"><=</span> <span class="hljs-number">9000</span> <span class="hljs-keyword">ORDER</span> <span class="hljs-keyword">BY</span> a LIMIT <span class="hljs-number">1</span>; <span class="hljs-operator">+</span><span class="hljs-comment">-----------------------------------+---------+-----------+-----------------------+---------------------------------+</span> <span class="hljs-operator">|</span> id <span class="hljs-operator">|</span> estRows <span class="hljs-operator">|</span> task <span class="hljs-operator">|</span> access object <span class="hljs-operator">|</span> operator info <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">-----------------------------------+---------+-----------+-----------------------+---------------------------------+</span> <span class="hljs-operator">|</span> Limit_12 <span class="hljs-operator">|</span> <span class="hljs-number">1.00</span> <span class="hljs-operator">|</span> root <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> <span class="hljs-keyword">offset</span>:<span class="hljs-number">0</span>, count:<span class="hljs-number">1</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─Projection_22 <span class="hljs-operator">|</span> <span class="hljs-number">1.00</span> <span class="hljs-operator">|</span> root <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> test.t.a, test.t.b, test.t.c <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─IndexLookUp_21 <span class="hljs-operator">|</span> <span class="hljs-number">1.00</span> <span class="hljs-operator">|</span> root <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> ├─IndexFullScan_18(Build) <span class="hljs-operator">|</span> <span class="hljs-number">1.00</span> <span class="hljs-operator">|</span> cop[tikv] <span class="hljs-operator">|</span> <span class="hljs-keyword">table</span>:t, index:ia(a) <span class="hljs-operator">|</span> keep <span class="hljs-keyword">order</span>:<span class="hljs-literal">true</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─Selection_20(Probe) <span class="hljs-operator">|</span> <span class="hljs-number">1.00</span> <span class="hljs-operator">|</span> cop[tikv] <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> le(test.t.b, <span class="hljs-number">9000</span>) <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─TableRowIDScan_19 <span class="hljs-operator">|</span> <span class="hljs-number">1.00</span> <span class="hljs-operator">|</span> cop[tikv] <span class="hljs-operator">|</span> <span class="hljs-keyword">table</span>:t <span class="hljs-operator">|</span> keep <span class="hljs-keyword">order</span>:<span class="hljs-literal">false</span> <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">-----------------------------------+---------+-----------+-----------------------+---------------------------------+</span> </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre></li><li><p>第三个示例使用 <code>0.1</code>,假设在找到符合条件的行之前,将扫描 10% 的行。这个条件的过滤性较强,只有 1% 的行符合条件,因此最坏情况是找到这 1% 之前需要扫描 99% 的行。99% 中的 10% 大约是 9.9%,该数值会反映在 estRows 中。</p><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia"><span class="hljs-operator">></span> <span class="hljs-keyword">SET</span> SESSION tidb_opt_ordering_index_selectivity_ratio <span class="hljs-operator">=</span> <span class="hljs-number">0.1</span>; <span class="hljs-operator">></span> EXPLAIN <span class="hljs-keyword">SELECT</span> <span class="hljs-operator">*</span> <span class="hljs-keyword">FROM</span> t USE INDEX (ia) <span class="hljs-keyword">WHERE</span> b <span class="hljs-operator"><=</span> <span class="hljs-number">9000</span> <span class="hljs-keyword">ORDER</span> <span class="hljs-keyword">BY</span> a LIMIT <span class="hljs-number">1</span>; <span class="hljs-operator">+</span><span class="hljs-comment">-----------------------------------+----------+-----------+-----------------------+---------------------------------+</span> <span class="hljs-operator">|</span> id <span class="hljs-operator">|</span> estRows <span class="hljs-operator">|</span> task <span class="hljs-operator">|</span> access object <span class="hljs-operator">|</span> operator info <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">-----------------------------------+----------+-----------+-----------------------+---------------------------------+</span> <span class="hljs-operator">|</span> Limit_12 <span class="hljs-operator">|</span> <span class="hljs-number">1.00</span> <span class="hljs-operator">|</span> root <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> <span class="hljs-keyword">offset</span>:<span class="hljs-number">0</span>, count:<span class="hljs-number">1</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─Projection_22 <span class="hljs-operator">|</span> <span class="hljs-number">1.00</span> <span class="hljs-operator">|</span> root <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> test.t.a, test.t.b, test.t.c <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─IndexLookUp_21 <span class="hljs-operator">|</span> <span class="hljs-number">1.00</span> <span class="hljs-operator">|</span> root <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> ├─IndexFullScan_18(Build) <span class="hljs-operator">|</span> <span class="hljs-number">99085.21</span> <span class="hljs-operator">|</span> cop[tikv] <span class="hljs-operator">|</span> <span class="hljs-keyword">table</span>:t, index:ia(a) <span class="hljs-operator">|</span> keep <span class="hljs-keyword">order</span>:<span class="hljs-literal">true</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─Selection_20(Probe) <span class="hljs-operator">|</span> <span class="hljs-number">1.00</span> <span class="hljs-operator">|</span> cop[tikv] <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> le(test.t.b, <span class="hljs-number">9000</span>) <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─TableRowIDScan_19 <span class="hljs-operator">|</span> <span class="hljs-number">99085.21</span> <span class="hljs-operator">|</span> cop[tikv] <span class="hljs-operator">|</span> <span class="hljs-keyword">table</span>:t <span class="hljs-operator">|</span> keep <span class="hljs-keyword">order</span>:<span class="hljs-literal">false</span> <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">-----------------------------------+----------+-----------+-----------------------+---------------------------------+</span> </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre></li><li><p>第四个示例使用 <code>1.0</code>,假设在找到符合条件的行之前,将扫描 100% 的行。</p><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia"><span class="hljs-operator">></span> <span class="hljs-keyword">SET</span> SESSION tidb_opt_ordering_index_selectivity_ratio <span class="hljs-operator">=</span> <span class="hljs-number">1</span>; <span class="hljs-operator">></span> EXPLAIN <span class="hljs-keyword">SELECT</span> <span class="hljs-operator">*</span> <span class="hljs-keyword">FROM</span> t USE INDEX (ia) <span class="hljs-keyword">WHERE</span> b <span class="hljs-operator"><=</span> <span class="hljs-number">9000</span> <span class="hljs-keyword">ORDER</span> <span class="hljs-keyword">BY</span> a LIMIT <span class="hljs-number">1</span>; <span class="hljs-operator">+</span><span class="hljs-comment">-----------------------------------+-----------+-----------+-----------------------+---------------------------------+</span> <span class="hljs-operator">|</span> id <span class="hljs-operator">|</span> estRows <span class="hljs-operator">|</span> task <span class="hljs-operator">|</span> access object <span class="hljs-operator">|</span> operator info <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">-----------------------------------+-----------+-----------+-----------------------+---------------------------------+</span> <span class="hljs-operator">|</span> Limit_12 <span class="hljs-operator">|</span> <span class="hljs-number">1.00</span> <span class="hljs-operator">|</span> root <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> <span class="hljs-keyword">offset</span>:<span class="hljs-number">0</span>, count:<span class="hljs-number">1</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─Projection_22 <span class="hljs-operator">|</span> <span class="hljs-number">1.00</span> <span class="hljs-operator">|</span> root <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> test.t.a, test.t.b, test.t.c <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─IndexLookUp_21 <span class="hljs-operator">|</span> <span class="hljs-number">1.00</span> <span class="hljs-operator">|</span> root <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> ├─IndexFullScan_18(Build) <span class="hljs-operator">|</span> <span class="hljs-number">990843.14</span> <span class="hljs-operator">|</span> cop[tikv] <span class="hljs-operator">|</span> <span class="hljs-keyword">table</span>:t, index:ia(a) <span class="hljs-operator">|</span> keep <span class="hljs-keyword">order</span>:<span class="hljs-literal">true</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─Selection_20(Probe) <span class="hljs-operator">|</span> <span class="hljs-number">1.00</span> <span class="hljs-operator">|</span> cop[tikv] <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> le(test.t.b, <span class="hljs-number">9000</span>) <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─TableRowIDScan_19 <span class="hljs-operator">|</span> <span class="hljs-number">990843.14</span> <span class="hljs-operator">|</span> cop[tikv] <span class="hljs-operator">|</span> <span class="hljs-keyword">table</span>:t <span class="hljs-operator">|</span> keep <span class="hljs-keyword">order</span>:<span class="hljs-literal">false</span> <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">-----------------------------------+-----------+-----------+-----------------------+---------------------------------+</span> </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre></li><li><p>第五个示例也使用 <code>1.0</code>,但是增加了一个对 <code>a</code> 的谓词,限制了最坏情况下的扫描范围,因为 <code>WHERE a <= 9000</code> 匹配了索引,大约有 9,000 行符合条件。考虑到 <code>b</code> 上的过滤谓词不在索引中,所有大约 9,000 行在找到符合 <code>b <= 9000</code> 的行之前都会被扫描。</p><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia"><span class="hljs-operator">></span> <span class="hljs-keyword">SET</span> SESSION tidb_opt_ordering_index_selectivity_ratio <span class="hljs-operator">=</span> <span class="hljs-number">1</span>; <span class="hljs-operator">></span> EXPLAIN <span class="hljs-keyword">SELECT</span> <span class="hljs-operator">*</span> <span class="hljs-keyword">FROM</span> t USE INDEX (ia) <span class="hljs-keyword">WHERE</span> a <span class="hljs-operator"><=</span> <span class="hljs-number">9000</span> <span class="hljs-keyword">AND</span> b <span class="hljs-operator"><=</span> <span class="hljs-number">9000</span> <span class="hljs-keyword">ORDER</span> <span class="hljs-keyword">BY</span> a LIMIT <span class="hljs-number">1</span>; <span class="hljs-operator">+</span><span class="hljs-comment">------------------------------------+---------+-----------+-----------------------+------------------------------------+</span> <span class="hljs-operator">|</span> id <span class="hljs-operator">|</span> estRows <span class="hljs-operator">|</span> task <span class="hljs-operator">|</span> access object <span class="hljs-operator">|</span> operator info <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">------------------------------------+---------+-----------+-----------------------+------------------------------------+</span> <span class="hljs-operator">|</span> Limit_12 <span class="hljs-operator">|</span> <span class="hljs-number">1.00</span> <span class="hljs-operator">|</span> root <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> <span class="hljs-keyword">offset</span>:<span class="hljs-number">0</span>, count:<span class="hljs-number">1</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─Projection_22 <span class="hljs-operator">|</span> <span class="hljs-number">1.00</span> <span class="hljs-operator">|</span> root <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> test.t.a, test.t.b, test.t.c <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─IndexLookUp_21 <span class="hljs-operator">|</span> <span class="hljs-number">1.00</span> <span class="hljs-operator">|</span> root <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> ├─IndexRangeScan_18(Build) <span class="hljs-operator">|</span> <span class="hljs-number">9074.99</span> <span class="hljs-operator">|</span> cop[tikv] <span class="hljs-operator">|</span> <span class="hljs-keyword">table</span>:t, index:ia(a) <span class="hljs-operator">|</span> <span class="hljs-keyword">range</span>:[<span class="hljs-operator">-</span>inf,<span class="hljs-number">9000</span>], keep <span class="hljs-keyword">order</span>:<span class="hljs-literal">true</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─Selection_20(Probe) <span class="hljs-operator">|</span> <span class="hljs-number">1.00</span> <span class="hljs-operator">|</span> cop[tikv] <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> le(test.t.b, <span class="hljs-number">9000</span>) <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─TableRowIDScan_19 <span class="hljs-operator">|</span> <span class="hljs-number">9074.99</span> <span class="hljs-operator">|</span> cop[tikv] <span class="hljs-operator">|</span> <span class="hljs-keyword">table</span>:t <span class="hljs-operator">|</span> keep <span class="hljs-keyword">order</span>:<span class="hljs-literal">false</span> <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">------------------------------------+---------+-----------+-----------------------+------------------------------------+</span> </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre></li></ul><h3 id="tidb_opt_ordering_index_selectivity_threshold-span-classversion-mark从-v700-版本开始引入span" style="position:relative"><code>tidb_opt_ordering_index_selectivity_threshold</code> <span class="version-mark">从 v7.0.0 版本开始引入</span><a href="#tidb_opt_ordering_index_selectivity_threshold-span-classversion-mark%E4%BB%8E-v700-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_opt_ordering_index_selectivity_threshold span classversion mark从 v700 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:浮点数</li><li>默认值:<code>0</code></li><li>范围:<code>[0, 1]</code></li><li>用于当 SQL 中存在 <code>ORDER BY</code> 和 <code>LIMIT</code> 子句且带有过滤条件时,控制优化器选择索引的行为。</li><li>对于此类查询,优化器会考虑选择对应的索引来满足 <code>ORDER BY</code> 和 <code>LIMIT</code> 子句(即使这个索引并不满足任何过滤条件)。但是由于数据分布的复杂性,优化器在这种场景下可能会选择不优的索引。</li><li>该变量表示一个阈值。当存在索引能满足过滤条件,且其选择率估算值低于该阈值时,优化器会避免选择用于满足 <code>ORDER BY</code> 和 <code>LIMIT</code> 的索引,而优先选择用于满足过滤条件的索引。</li><li>例如,当把该变量设为 <code>0</code> 时,优化器保持默认行为;当设为 <code>1</code> 时,优化器总是优先选择满足过滤条件的索引,避免选择满足 <code>ORDER BY</code> 和 <code>LIMIT</code> 的索引。</li><li>在以下示例中,<code>t</code> 表共有 1,000,000 行数据。使用 <code>b</code> 列上的索引时,其估算行数是大约 8,748 行,因此其选择率估算值大约是 0.0087。默认情况下,优化器选择了 <code>a</code> 列上的索引。而将该变量设为 <code>0.01</code> 之后,由于 <code>b</code> 列上的索引的选择率 (0.0087) 低于 0.01,优化器选择了 <code>b</code> 列上的索引。</li></ul><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia"><span class="hljs-operator">></span> EXPLAIN <span class="hljs-keyword">SELECT</span> <span class="hljs-operator">*</span> <span class="hljs-keyword">FROM</span> t <span class="hljs-keyword">WHERE</span> b <span class="hljs-operator"><=</span> <span class="hljs-number">9000</span> <span class="hljs-keyword">ORDER</span> <span class="hljs-keyword">BY</span> a LIMIT <span class="hljs-number">1</span>; <span class="hljs-operator">+</span><span class="hljs-comment">-----------------------------------+---------+-----------+----------------------+--------------------+</span> <span class="hljs-operator">|</span> id <span class="hljs-operator">|</span> estRows <span class="hljs-operator">|</span> task <span class="hljs-operator">|</span> access object <span class="hljs-operator">|</span> operator info <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">-----------------------------------+---------+-----------+----------------------+--------------------+</span> <span class="hljs-operator">|</span> Limit_12 <span class="hljs-operator">|</span> <span class="hljs-number">1.00</span> <span class="hljs-operator">|</span> root <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> <span class="hljs-keyword">offset</span>:<span class="hljs-number">0</span>, count:<span class="hljs-number">1</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─Projection_25 <span class="hljs-operator">|</span> <span class="hljs-number">1.00</span> <span class="hljs-operator">|</span> root <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> test.t.a, test.t.b <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─IndexLookUp_24 <span class="hljs-operator">|</span> <span class="hljs-number">1.00</span> <span class="hljs-operator">|</span> root <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> ├─IndexFullScan_21(Build) <span class="hljs-operator">|</span> <span class="hljs-number">114.30</span> <span class="hljs-operator">|</span> cop[tikv] <span class="hljs-operator">|</span> <span class="hljs-keyword">table</span>:t, index:ia(a) <span class="hljs-operator">|</span> keep <span class="hljs-keyword">order</span>:<span class="hljs-literal">true</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─Selection_23(Probe) <span class="hljs-operator">|</span> <span class="hljs-number">1.00</span> <span class="hljs-operator">|</span> cop[tikv] <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> le(test.t.b, <span class="hljs-number">9000</span>) <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─TableRowIDScan_22 <span class="hljs-operator">|</span> <span class="hljs-number">114.30</span> <span class="hljs-operator">|</span> cop[tikv] <span class="hljs-operator">|</span> <span class="hljs-keyword">table</span>:t <span class="hljs-operator">|</span> keep <span class="hljs-keyword">order</span>:<span class="hljs-literal">false</span> <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">-----------------------------------+---------+-----------+----------------------+--------------------+</span> <span class="hljs-operator">></span> <span class="hljs-keyword">SET</span> SESSION tidb_opt_ordering_index_selectivity_threshold <span class="hljs-operator">=</span> <span class="hljs-number">0.01</span>; <span class="hljs-operator">></span> EXPLAIN <span class="hljs-keyword">SELECT</span> <span class="hljs-operator">*</span> <span class="hljs-keyword">FROM</span> t <span class="hljs-keyword">WHERE</span> b <span class="hljs-operator"><=</span> <span class="hljs-number">9000</span> <span class="hljs-keyword">ORDER</span> <span class="hljs-keyword">BY</span> a LIMIT <span class="hljs-number">1</span>; <span class="hljs-operator">+</span><span class="hljs-comment">----------------------------------+---------+-----------+----------------------+-------------------------------------+</span> <span class="hljs-operator">|</span> id <span class="hljs-operator">|</span> estRows <span class="hljs-operator">|</span> task <span class="hljs-operator">|</span> access object <span class="hljs-operator">|</span> operator info <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">----------------------------------+---------+-----------+----------------------+-------------------------------------+</span> <span class="hljs-operator">|</span> TopN_9 <span class="hljs-operator">|</span> <span class="hljs-number">1.00</span> <span class="hljs-operator">|</span> root <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> test.t.a, <span class="hljs-keyword">offset</span>:<span class="hljs-number">0</span>, count:<span class="hljs-number">1</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─IndexLookUp_20 <span class="hljs-operator">|</span> <span class="hljs-number">1.00</span> <span class="hljs-operator">|</span> root <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> ├─IndexRangeScan_17(Build) <span class="hljs-operator">|</span> <span class="hljs-number">8748.62</span> <span class="hljs-operator">|</span> cop[tikv] <span class="hljs-operator">|</span> <span class="hljs-keyword">table</span>:t, index:ib(b) <span class="hljs-operator">|</span> <span class="hljs-keyword">range</span>:[<span class="hljs-operator">-</span>inf,<span class="hljs-number">9000</span>], keep <span class="hljs-keyword">order</span>:<span class="hljs-literal">false</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─TopN_19(Probe) <span class="hljs-operator">|</span> <span class="hljs-number">1.00</span> <span class="hljs-operator">|</span> cop[tikv] <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> test.t.a, <span class="hljs-keyword">offset</span>:<span class="hljs-number">0</span>, count:<span class="hljs-number">1</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─TableRowIDScan_18 <span class="hljs-operator">|</span> <span class="hljs-number">8748.62</span> <span class="hljs-operator">|</span> cop[tikv] <span class="hljs-operator">|</span> <span class="hljs-keyword">table</span>:t <span class="hljs-operator">|</span> keep <span class="hljs-keyword">order</span>:<span class="hljs-literal">false</span> <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">----------------------------------+---------+-----------+----------------------+-------------------------------------+</span> </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre><h3 id="tidb_opt_prefer_range_scan-span-classversion-mark从-v50-版本开始引入span" style="position:relative"><code>tidb_opt_prefer_range_scan</code> <span class="version-mark">从 v5.0 版本开始引入</span><a href="#tidb_opt_prefer_range_scan-span-classversion-mark%E4%BB%8E-v50-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_opt_prefer_range_scan span classversion mark从 v50 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>将该变量值设为 <code>ON</code> 后,优化器总是偏好区间扫描而不是全表扫描。</li><li>在以下示例中,<code>tidb_opt_prefer_range_scan</code> 开启前,TiDB 优化器需要执行全表扫描。<code>tidb_opt_prefer_range_scan</code> 开启后,优化器选择了索引区间扫描。</li></ul><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia">explain <span class="hljs-keyword">select</span> <span class="hljs-operator">*</span> <span class="hljs-keyword">from</span> t <span class="hljs-keyword">where</span> age<span class="hljs-operator">=</span><span class="hljs-number">5</span>; <span class="hljs-operator">+</span><span class="hljs-comment">-------------------------+------------+-----------+---------------+-------------------+</span> <span class="hljs-operator">|</span> id <span class="hljs-operator">|</span> estRows <span class="hljs-operator">|</span> task <span class="hljs-operator">|</span> access object <span class="hljs-operator">|</span> operator info <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">-------------------------+------------+-----------+---------------+-------------------+</span> <span class="hljs-operator">|</span> TableReader_7 <span class="hljs-operator">|</span> <span class="hljs-number">1048576.00</span> <span class="hljs-operator">|</span> root <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> data:Selection_6 <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─Selection_6 <span class="hljs-operator">|</span> <span class="hljs-number">1048576.00</span> <span class="hljs-operator">|</span> cop[tikv] <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> eq(test.t.age, <span class="hljs-number">5</span>) <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─TableFullScan_5 <span class="hljs-operator">|</span> <span class="hljs-number">1048576.00</span> <span class="hljs-operator">|</span> cop[tikv] <span class="hljs-operator">|</span> <span class="hljs-keyword">table</span>:t <span class="hljs-operator">|</span> keep <span class="hljs-keyword">order</span>:<span class="hljs-literal">false</span> <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">-------------------------+------------+-----------+---------------+-------------------+</span> <span class="hljs-number">3</span> <span class="hljs-keyword">rows</span> <span class="hljs-keyword">in</span> <span class="hljs-keyword">set</span> (<span class="hljs-number">0.00</span> sec) <span class="hljs-keyword">set</span> session tidb_opt_prefer_range_scan <span class="hljs-operator">=</span> <span class="hljs-number">1</span>; explain <span class="hljs-keyword">select</span> <span class="hljs-operator">*</span> <span class="hljs-keyword">from</span> t <span class="hljs-keyword">where</span> age<span class="hljs-operator">=</span><span class="hljs-number">5</span>; <span class="hljs-operator">+</span><span class="hljs-comment">-------------------------------+------------+-----------+-----------------------------+-------------------------------+</span> <span class="hljs-operator">|</span> id <span class="hljs-operator">|</span> estRows <span class="hljs-operator">|</span> task <span class="hljs-operator">|</span> access object <span class="hljs-operator">|</span> operator info <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">-------------------------------+------------+-----------+-----------------------------+-------------------------------+</span> <span class="hljs-operator">|</span> IndexLookUp_7 <span class="hljs-operator">|</span> <span class="hljs-number">1048576.00</span> <span class="hljs-operator">|</span> root <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> ├─IndexRangeScan_5(Build) <span class="hljs-operator">|</span> <span class="hljs-number">1048576.00</span> <span class="hljs-operator">|</span> cop[tikv] <span class="hljs-operator">|</span> <span class="hljs-keyword">table</span>:t, index:idx_age(age) <span class="hljs-operator">|</span> <span class="hljs-keyword">range</span>:[<span class="hljs-number">5</span>,<span class="hljs-number">5</span>], keep <span class="hljs-keyword">order</span>:<span class="hljs-literal">false</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─TableRowIDScan_6(Probe) <span class="hljs-operator">|</span> <span class="hljs-number">1048576.00</span> <span class="hljs-operator">|</span> cop[tikv] <span class="hljs-operator">|</span> <span class="hljs-keyword">table</span>:t <span class="hljs-operator">|</span> keep <span class="hljs-keyword">order</span>:<span class="hljs-literal">false</span> <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">-------------------------------+------------+-----------+-----------------------------+-------------------------------+</span> <span class="hljs-number">3</span> <span class="hljs-keyword">rows</span> <span class="hljs-keyword">in</span> <span class="hljs-keyword">set</span> (<span class="hljs-number">0.00</span> sec) </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre><h3 id="tidb_opt_projection_push_down-span-classversion-mark从-v610-版本开始引入span" style="position:relative"><code>tidb_opt_projection_push_down</code> <span class="version-mark">从 v6.1.0 版本开始引入</span><a href="#tidb_opt_projection_push_down-span-classversion-mark%E4%BB%8E-v610-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_opt_projection_push_down span classversion mark从 v610 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>指定是否允许优化器将 <code>Projection</code> 算子下推到 TiKV 或者 TiFlash。</li></ul><h3 id="tidb_opt_range_max_size-span-classversion-mark从-v640-版本开始引入span" style="position:relative"><code>tidb_opt_range_max_size</code> <span class="version-mark">从 v6.4.0 版本开始引入</span><a href="#tidb_opt_range_max_size-span-classversion-mark%E4%BB%8E-v640-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_opt_range_max_size span classversion mark从 v640 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>默认值:<code>67108864</code> (64 MiB)</li><li>取值范围:<code>[0, 9223372036854775807]</code></li><li>单位:字节</li><li>该变量用于指定优化器构造扫描范围的内存用量上限。当该变量为 <code>0</code> 时,表示对扫描范围没有内存限制。如果构造精确的扫描范围会超出内存用量限制,优化器会使用更宽松的扫描范围(例如 <code>[[NULL,+inf]]</code>)。如果执行计划中未使用精确的扫描范围,可以调大该变量的值让优化器构造精确的扫描范围。</li></ul><p>该变量的使用示例如下:</p><details><summary><code>tidb_opt_range_max_size</code> 使用示例</summary><p>查看该变量的默认值,即优化器构造扫描范围最多使用 64 MiB 内存。</p><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia"><span class="hljs-keyword">SELECT</span> @<span class="hljs-variable">@tidb</span>_opt_range_max_size; </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia"><span class="hljs-operator">+</span><span class="hljs-comment">----------------------------+</span> <span class="hljs-operator">|</span> @<span class="hljs-variable">@tidb</span>_opt_range_max_size <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">----------------------------+</span> <span class="hljs-operator">|</span> <span class="hljs-number">67108864</span> <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">----------------------------+</span> <span class="hljs-number">1</span> <span class="hljs-type">row</span> <span class="hljs-keyword">in</span> <span class="hljs-keyword">set</span> (<span class="hljs-number">0.01</span> sec) </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia">EXPLAIN <span class="hljs-keyword">SELECT</span> <span class="hljs-operator">*</span> <span class="hljs-keyword">FROM</span> t use index (idx) <span class="hljs-keyword">WHERE</span> a <span class="hljs-keyword">IN</span> (<span class="hljs-number">10</span>,<span class="hljs-number">20</span>,<span class="hljs-number">30</span>) <span class="hljs-keyword">AND</span> b <span class="hljs-keyword">IN</span> (<span class="hljs-number">40</span>,<span class="hljs-number">50</span>,<span class="hljs-number">60</span>); </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre><p>在 64 MiB 的内存最大限制约束下,优化器构造出精确的扫描范围 <code>[10 40,10 40], [10 50,10 50], [10 60,10 60], [20 40,20 40], [20 50,20 50], [20 60,20 60], [30 40,30 40], [30 50,30 50], [30 60,30 60]</code>,见如下执行计划返回结果。</p><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia"><span class="hljs-operator">+</span><span class="hljs-comment">-------------------------------+---------+-----------+--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+</span> <span class="hljs-operator">|</span> id <span class="hljs-operator">|</span> estRows <span class="hljs-operator">|</span> task <span class="hljs-operator">|</span> access object <span class="hljs-operator">|</span> operator info <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">-------------------------------+---------+-----------+--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+</span> <span class="hljs-operator">|</span> IndexLookUp_7 <span class="hljs-operator">|</span> <span class="hljs-number">0.90</span> <span class="hljs-operator">|</span> root <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> ├─IndexRangeScan_5(Build) <span class="hljs-operator">|</span> <span class="hljs-number">0.90</span> <span class="hljs-operator">|</span> cop[tikv] <span class="hljs-operator">|</span> <span class="hljs-keyword">table</span>:t, index:idx(a, b) <span class="hljs-operator">|</span> <span class="hljs-keyword">range</span>:[<span class="hljs-number">10</span> <span class="hljs-number">40</span>,<span class="hljs-number">10</span> <span class="hljs-number">40</span>], [<span class="hljs-number">10</span> <span class="hljs-number">50</span>,<span class="hljs-number">10</span> <span class="hljs-number">50</span>], [<span class="hljs-number">10</span> <span class="hljs-number">60</span>,<span class="hljs-number">10</span> <span class="hljs-number">60</span>], [<span class="hljs-number">20</span> <span class="hljs-number">40</span>,<span class="hljs-number">20</span> <span class="hljs-number">40</span>], [<span class="hljs-number">20</span> <span class="hljs-number">50</span>,<span class="hljs-number">20</span> <span class="hljs-number">50</span>], [<span class="hljs-number">20</span> <span class="hljs-number">60</span>,<span class="hljs-number">20</span> <span class="hljs-number">60</span>], [<span class="hljs-number">30</span> <span class="hljs-number">40</span>,<span class="hljs-number">30</span> <span class="hljs-number">40</span>], [<span class="hljs-number">30</span> <span class="hljs-number">50</span>,<span class="hljs-number">30</span> <span class="hljs-number">50</span>], [<span class="hljs-number">30</span> <span class="hljs-number">60</span>,<span class="hljs-number">30</span> <span class="hljs-number">60</span>], keep <span class="hljs-keyword">order</span>:<span class="hljs-literal">false</span>, stats:pseudo <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─TableRowIDScan_6(Probe) <span class="hljs-operator">|</span> <span class="hljs-number">0.90</span> <span class="hljs-operator">|</span> cop[tikv] <span class="hljs-operator">|</span> <span class="hljs-keyword">table</span>:t <span class="hljs-operator">|</span> keep <span class="hljs-keyword">order</span>:<span class="hljs-literal">false</span>, stats:pseudo <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">-------------------------------+---------+-----------+--------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+</span> <span class="hljs-number">3</span> <span class="hljs-keyword">rows</span> <span class="hljs-keyword">in</span> <span class="hljs-keyword">set</span> (<span class="hljs-number">0.00</span> sec) </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre><p>现将优化器构造扫描范围的内存用量上限设为 1500 字节。</p><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia"><span class="hljs-keyword">SET</span> @<span class="hljs-variable">@tidb</span>_opt_range_max_size <span class="hljs-operator">=</span> <span class="hljs-number">1500</span>; </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia">Query OK, <span class="hljs-number">0</span> <span class="hljs-keyword">rows</span> affected (<span class="hljs-number">0.00</span> sec) </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia">EXPLAIN <span class="hljs-keyword">SELECT</span> <span class="hljs-operator">*</span> <span class="hljs-keyword">FROM</span> t USE INDEX (idx) <span class="hljs-keyword">WHERE</span> a <span class="hljs-keyword">IN</span> (<span class="hljs-number">10</span>,<span class="hljs-number">20</span>,<span class="hljs-number">30</span>) <span class="hljs-keyword">AND</span> b <span class="hljs-keyword">IN</span> (<span class="hljs-number">40</span>,<span class="hljs-number">50</span>,<span class="hljs-number">60</span>); </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre><p>在 1500 字节内存的最大限制约束下,优化器构造出了更宽松的扫描范围 <code>[10,10], [20,20], [30,30]</code>,并用 warning 提示用户构造精确的扫描范围所需的内存用量超出了 <code>tidb_opt_range_max_size</code> 的限制。</p><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia"><span class="hljs-operator">+</span><span class="hljs-comment">-------------------------------+---------+-----------+--------------------------+-----------------------------------------------------------------+</span> <span class="hljs-operator">|</span> id <span class="hljs-operator">|</span> estRows <span class="hljs-operator">|</span> task <span class="hljs-operator">|</span> access object <span class="hljs-operator">|</span> operator info <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">-------------------------------+---------+-----------+--------------------------+-----------------------------------------------------------------+</span> <span class="hljs-operator">|</span> IndexLookUp_8 <span class="hljs-operator">|</span> <span class="hljs-number">0.09</span> <span class="hljs-operator">|</span> root <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> ├─Selection_7(Build) <span class="hljs-operator">|</span> <span class="hljs-number">0.09</span> <span class="hljs-operator">|</span> cop[tikv] <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> <span class="hljs-keyword">in</span>(test.t.b, <span class="hljs-number">40</span>, <span class="hljs-number">50</span>, <span class="hljs-number">60</span>) <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> │ └─IndexRangeScan_5 <span class="hljs-operator">|</span> <span class="hljs-number">30.00</span> <span class="hljs-operator">|</span> cop[tikv] <span class="hljs-operator">|</span> <span class="hljs-keyword">table</span>:t, index:idx(a, b) <span class="hljs-operator">|</span> <span class="hljs-keyword">range</span>:[<span class="hljs-number">10</span>,<span class="hljs-number">10</span>], [<span class="hljs-number">20</span>,<span class="hljs-number">20</span>], [<span class="hljs-number">30</span>,<span class="hljs-number">30</span>], keep <span class="hljs-keyword">order</span>:<span class="hljs-literal">false</span>, stats:pseudo <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─TableRowIDScan_6(Probe) <span class="hljs-operator">|</span> <span class="hljs-number">0.09</span> <span class="hljs-operator">|</span> cop[tikv] <span class="hljs-operator">|</span> <span class="hljs-keyword">table</span>:t <span class="hljs-operator">|</span> keep <span class="hljs-keyword">order</span>:<span class="hljs-literal">false</span>, stats:pseudo <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">-------------------------------+---------+-----------+--------------------------+-----------------------------------------------------------------+</span> <span class="hljs-number">4</span> <span class="hljs-keyword">rows</span> <span class="hljs-keyword">in</span> <span class="hljs-keyword">set</span>, <span class="hljs-number">1</span> warning (<span class="hljs-number">0.00</span> sec) </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia"><span class="hljs-keyword">SHOW</span> WARNINGS; </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia"><span class="hljs-operator">+</span><span class="hljs-comment">---------+------+---------------------------------------------------------------------------------------------------------------------------------------------+</span> <span class="hljs-operator">|</span> Level <span class="hljs-operator">|</span> Code <span class="hljs-operator">|</span> Message <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">---------+------+---------------------------------------------------------------------------------------------------------------------------------------------+</span> <span class="hljs-operator">|</span> Warning <span class="hljs-operator">|</span> <span class="hljs-number">1105</span> <span class="hljs-operator">|</span> Memory capacity <span class="hljs-keyword">of</span> <span class="hljs-number">1500</span> bytes <span class="hljs-keyword">for</span> <span class="hljs-string">'tidb_opt_range_max_size'</span> exceeded <span class="hljs-keyword">when</span> building ranges. Less accurate ranges such <span class="hljs-keyword">as</span> <span class="hljs-keyword">full</span> <span class="hljs-keyword">range</span> <span class="hljs-keyword">are</span> chosen <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">---------+------+---------------------------------------------------------------------------------------------------------------------------------------------+</span> <span class="hljs-number">1</span> <span class="hljs-type">row</span> <span class="hljs-keyword">in</span> <span class="hljs-keyword">set</span> (<span class="hljs-number">0.00</span> sec) </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre><p>再将优化器构造扫描范围的内存用量上限设为 100 字节。</p><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia"><span class="hljs-keyword">set</span> @<span class="hljs-variable">@tidb</span>_opt_range_max_size <span class="hljs-operator">=</span> <span class="hljs-number">100</span>; </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia">Query OK, <span class="hljs-number">0</span> <span class="hljs-keyword">rows</span> affected (<span class="hljs-number">0.00</span> sec) </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia">EXPLAIN <span class="hljs-keyword">SELECT</span> <span class="hljs-operator">*</span> <span class="hljs-keyword">FROM</span> t USE INDEX (idx) <span class="hljs-keyword">WHERE</span> a <span class="hljs-keyword">IN</span> (<span class="hljs-number">10</span>,<span class="hljs-number">20</span>,<span class="hljs-number">30</span>) <span class="hljs-keyword">AND</span> b <span class="hljs-keyword">IN</span> (<span class="hljs-number">40</span>,<span class="hljs-number">50</span>,<span class="hljs-number">60</span>); </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre><p>在 100 字节的内存最大限制约束下,优化器选择了 <code>IndexFullScan</code>,并用 warning 提示用户构造精确的扫描范围所需的内存超出了 <code>tidb_opt_range_max_size</code> 的限制。</p><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia"><span class="hljs-operator">+</span><span class="hljs-comment">-------------------------------+----------+-----------+--------------------------+----------------------------------------------------+</span> <span class="hljs-operator">|</span> id <span class="hljs-operator">|</span> estRows <span class="hljs-operator">|</span> task <span class="hljs-operator">|</span> access object <span class="hljs-operator">|</span> operator info <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">-------------------------------+----------+-----------+--------------------------+----------------------------------------------------+</span> <span class="hljs-operator">|</span> IndexLookUp_8 <span class="hljs-operator">|</span> <span class="hljs-number">8000.00</span> <span class="hljs-operator">|</span> root <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> ├─Selection_7(Build) <span class="hljs-operator">|</span> <span class="hljs-number">8000.00</span> <span class="hljs-operator">|</span> cop[tikv] <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> <span class="hljs-keyword">in</span>(test.t.a, <span class="hljs-number">10</span>, <span class="hljs-number">20</span>, <span class="hljs-number">30</span>), <span class="hljs-keyword">in</span>(test.t.b, <span class="hljs-number">40</span>, <span class="hljs-number">50</span>, <span class="hljs-number">60</span>) <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> │ └─IndexFullScan_5 <span class="hljs-operator">|</span> <span class="hljs-number">10000.00</span> <span class="hljs-operator">|</span> cop[tikv] <span class="hljs-operator">|</span> <span class="hljs-keyword">table</span>:t, index:idx(a, b) <span class="hljs-operator">|</span> keep <span class="hljs-keyword">order</span>:<span class="hljs-literal">false</span>, stats:pseudo <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─TableRowIDScan_6(Probe) <span class="hljs-operator">|</span> <span class="hljs-number">8000.00</span> <span class="hljs-operator">|</span> cop[tikv] <span class="hljs-operator">|</span> <span class="hljs-keyword">table</span>:t <span class="hljs-operator">|</span> keep <span class="hljs-keyword">order</span>:<span class="hljs-literal">false</span>, stats:pseudo <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">-------------------------------+----------+-----------+--------------------------+----------------------------------------------------+</span> <span class="hljs-number">4</span> <span class="hljs-keyword">rows</span> <span class="hljs-keyword">in</span> <span class="hljs-keyword">set</span>, <span class="hljs-number">1</span> warning (<span class="hljs-number">0.00</span> sec) </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia"><span class="hljs-keyword">SHOW</span> WARNINGS; </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia"><span class="hljs-operator">+</span><span class="hljs-comment">---------+------+---------------------------------------------------------------------------------------------------------------------------------------------+</span> <span class="hljs-operator">|</span> Level <span class="hljs-operator">|</span> Code <span class="hljs-operator">|</span> Message <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">---------+------+---------------------------------------------------------------------------------------------------------------------------------------------+</span> <span class="hljs-operator">|</span> Warning <span class="hljs-operator">|</span> <span class="hljs-number">1105</span> <span class="hljs-operator">|</span> Memory capacity <span class="hljs-keyword">of</span> <span class="hljs-number">100</span> bytes <span class="hljs-keyword">for</span> <span class="hljs-string">'tidb_opt_range_max_size'</span> exceeded <span class="hljs-keyword">when</span> building ranges. Less accurate ranges such <span class="hljs-keyword">as</span> <span class="hljs-keyword">full</span> <span class="hljs-keyword">range</span> <span class="hljs-keyword">are</span> chosen <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">---------+------+---------------------------------------------------------------------------------------------------------------------------------------------+</span> <span class="hljs-number">1</span> <span class="hljs-type">row</span> <span class="hljs-keyword">in</span> <span class="hljs-keyword">set</span> (<span class="hljs-number">0.00</span> sec) </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre></details><h3 id="tidb_opt_scan_factor" style="position:relative"><code>tidb_opt_scan_factor</code><a href="#tidb_opt_scan_factor" aria-label="tidb_opt_scan_factor permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:浮点数</li><li>范围:<code>[0, 2147483647]</code></li><li>默认值:<code>1.5</code></li><li>表示升序扫描时,TiKV 在磁盘上扫描一行数据的开销。该变量是<a href="/zh/tidb/stable/cost-model">代价模型</a>内部使用的变量,<strong>不建议</strong>修改该变量的值。</li></ul><h3 id="tidb_opt_seek_factor" style="position:relative"><code>tidb_opt_seek_factor</code><a href="#tidb_opt_seek_factor" aria-label="tidb_opt_seek_factor permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:浮点数</li><li>范围:<code>[0, 2147483647]</code></li><li>默认值:<code>20</code></li><li>表示 TiDB 从 TiKV 请求数据的初始开销。该变量是<a href="/zh/tidb/stable/cost-model">代价模型</a>内部使用的变量,<strong>不建议</strong>修改该变量的值。</li></ul><h3 id="tidb_opt_skew_distinct_agg-span-classversion-mark从-v620-版本开始引入span" style="position:relative"><code>tidb_opt_skew_distinct_agg</code> <span class="version-mark">从 v6.2.0 版本开始引入</span><a href="#tidb_opt_skew_distinct_agg-span-classversion-mark%E4%BB%8E-v620-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_opt_skew_distinct_agg span classversion mark从 v620 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardInfo MuiAlert-standard css-1bzshic" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="InfoOutlinedIcon"><path d="M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">注意</div><p>开启该变量带来的查询性能优化仅对 TiFlash 有效。</p></div></div></div><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>这个变量用来设置优化器是否将带有 <code>DISTINCT</code> 的聚合函数(例如 <code>SELECT b, count(DISTINCT a) FROM t GROUP BY b</code>)改写为两层聚合函数(例如 <code>SELECT b, count(a) FROM (SELECT b, a FROM t GROUP BY b, a) t GROUP BY b</code>)。当聚合列有严重的数据倾斜,且 <code>DISTINCT</code> 列有很多不同的值时,这种改写能够避免查询执行过程中的数据倾斜,从而提升查询性能。</li></ul><h3 id="tidb_opt_three_stage_distinct_agg-span-classversion-mark从-v630-版本开始引入span" style="position:relative"><code>tidb_opt_three_stage_distinct_agg</code> <span class="version-mark">从 v6.3.0 版本开始引入</span><a href="#tidb_opt_three_stage_distinct_agg-span-classversion-mark%E4%BB%8E-v630-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_opt_three_stage_distinct_agg span classversion mark从 v630 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>该变量用于控制在 MPP 模式下是否将 <code>COUNT(DISTINCT)</code> 聚合改写为三阶段分布式执行的聚合。</li><li>该变量目前仅对只有一个 <code>COUNT(DISTINCT)</code> 的聚合生效。</li></ul><h3 id="tidb_opt_tiflash_concurrency_factor" style="position:relative"><code>tidb_opt_tiflash_concurrency_factor</code><a href="#tidb_opt_tiflash_concurrency_factor" aria-label="tidb_opt_tiflash_concurrency_factor permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:浮点数</li><li>范围:<code>[0, 2147483647]</code></li><li>默认值:<code>24.0</code></li><li>表示 TiFlash 计算的并发数。该变量是<a href="/zh/tidb/stable/cost-model">代价模型</a>内部使用的变量,<strong>不建议</strong>修改该变量的值。</li></ul><h2 id="tidb_opt_use_invisible_indexes-span-classversion-mark从-v800-版本开始引入span" style="position:relative"><code>tidb_opt_use_invisible_indexes</code> <span class="version-mark">从 v8.0.0 版本开始引入</span><a href="#tidb_opt_use_invisible_indexes-span-classversion-mark%E4%BB%8E-v800-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_opt_use_invisible_indexes span classversion mark从 v800 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h2><ul><li>作用域:SESSION</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>这个变量用来设置是否允许优化器选择<a href="/zh/tidb/stable/sql-statement-create-index#不可见索引">不可见索引 (Invisible Index)</a>。默认情况下,不可见索引由 DML 语句维护,不会被查询优化器使用。当修改变量为 <code>ON</code> 时,对该会话中的查询,优化器可以选择不可见索引进行查询优化。</li></ul><h3 id="tidb_opt_write_row_id" style="position:relative"><code>tidb_opt_write_row_id</code><a href="#tidb_opt_write_row_id" aria-label="tidb_opt_write_row_id permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>这个变量用来设置是否允许 <code>INSERT</code>、<code>REPLACE</code> 和 <code>UPDATE</code> 操作 <code>_tidb_rowid</code> 列,默认是不允许操作。该选项仅用于 TiDB 工具导数据时使用。</li></ul><h3 id="tidb_optimizer_selectivity_level" style="position:relative"><code>tidb_optimizer_selectivity_level</code><a href="#tidb_optimizer_selectivity_level" aria-label="tidb_optimizer_selectivity_level permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:整数型</li><li>默认值:<code>0</code></li><li>范围:<code>[0, 2147483647]</code></li><li>控制优化器估算逻辑的更迭。更改该变量值后,优化器的估算逻辑会产生较大的改变。目前该变量的有效值只有 <code>0</code>,不建议设为其它值。</li></ul><h3 id="tidb_partition_prune_mode-span-classversion-mark从-v51-版本开始引入span" style="position:relative"><code>tidb_partition_prune_mode</code> <span class="version-mark">从 v5.1 版本开始引入</span><a href="#tidb_partition_prune_mode-span-classversion-mark%E4%BB%8E-v51-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_partition_prune_mode span classversion mark从 v51 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:枚举型</li><li>默认值:<code>dynamic</code></li><li>可选值:<code>static</code>、<code>dynamic</code>、<code>static-only</code>、<code>dynamic-only</code></li><li>这个变量用来设置是否开启分区表动态裁剪模式。默认值为 <code>dynamic</code>。但是注意,<code>dynamic</code> 模式仅在表级别汇总统计信息(即 GlobalStats)收集完成的情况下生效。如果选择了 <code>dynamic</code> 但 GlobalStats 未收集完成,TiDB 会仍采用 <code>static</code> 模式。关于 GlobalStats 更多信息,请参考<a href="/zh/tidb/stable/statistics#收集动态裁剪模式下的分区表统计信息">动态裁剪模式下的分区表统计信息</a>。关于动态裁剪模式更多信息,请参考<a href="/zh/tidb/stable/partitioned-table#动态裁剪模式">分区表动态裁剪模式</a>。</li></ul><h3 id="tidb_persist_analyze_options-span-classversion-mark从-v540-版本开始引入span" style="position:relative"><code>tidb_persist_analyze_options</code> <span class="version-mark">从 v5.4.0 版本开始引入</span><a href="#tidb_persist_analyze_options-span-classversion-mark%E4%BB%8E-v540-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_persist_analyze_options span classversion mark从 v540 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>这个变量用于控制是否开启 <a href="/zh/tidb/stable/statistics#持久化-analyze-配置">ANALYZE 配置持久化</a>特性。</li></ul><h3 id="tidb_pessimistic_txn_fair_locking-span-classversion-mark从-v700-版本开始引入span" style="position:relative"><code>tidb_pessimistic_txn_fair_locking</code> <span class="version-mark">从 v7.0.0 版本开始引入</span><a href="#tidb_pessimistic_txn_fair_locking-span-classversion-mark%E4%BB%8E-v700-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_pessimistic_txn_fair_locking span classversion mark从 v700 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>是否对悲观锁启用加强的悲观锁唤醒模型。该模型可严格控制悲观锁单点冲突场景下事务的唤醒顺序,避免无效唤醒,大大降低原有唤醒机制中的随机性对事务延迟带来的不确定性。如果业务场景中遇到了单点悲观锁冲突频繁的情况(如高频更新同一行数据等),并进而引起语句重试频繁、尾延迟高,甚至偶尔发生 <code>pessimistic lock retry limit reached</code> 错误,可以尝试开启该变量来解决问题。</li><li>对于从 v7.0.0 以前的版本升级到 v7.0.0 或更新版本的 TiDB 集群,该选项默认关闭。</li></ul><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardInfo MuiAlert-standard css-1bzshic" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="InfoOutlinedIcon"><path d="M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">注意</div><ul><li>视具体业务场景的不同,启用该选项可能对存在频繁锁冲突的事务造成一定程度的吞吐下降(平均延迟上升)。</li><li>该选项目前仅对需要上锁单个 key 的语句有效。如果一个语句需要对多行同时上锁,则该选项不会对此类语句生效。</li><li>该功能从 v6.6.0 版本引入。在 v6.6.0 版本中,该功能由变量 <a href="https://docs.pingcap.com/zh/tidb/v6.6/system-variables#tidb_pessimistic_txn_aggressive_locking-%E4%BB%8E-v660-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5" target="_blank" referrerpolicy="no-referrer-when-downgrade"><code>tidb_pessimistic_txn_aggressive_locking</code></a> 控制,默认关闭。</li></ul></div></div></div><h3 id="tidb_placement_mode-span-classversion-mark从-v600-版本开始引入span" style="position:relative"><code>tidb_placement_mode</code> <span class="version-mark">从 v6.0.0 版本开始引入</span><a href="#tidb_placement_mode-span-classversion-mark%E4%BB%8E-v600-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_placement_mode span classversion mark从 v600 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:枚举型</li><li>默认值:<code>STRICT</code></li><li>可选值:<code>STRICT</code>,<code>IGNORE</code></li><li>该变量用于控制 DDL 语句是否忽略 <a href="/zh/tidb/stable/placement-rules-in-sql">Placement Rules in SQL</a> 指定的放置规则。变量值为 <code>IGNORE</code> 时将忽略所有放置规则选项。</li><li>该变量可由逻辑转储或逻辑恢复工具使用,确保即使绑定了不合适的放置规则,也始终可以成功创建表。这类似于 mysqldump 将 <code>SET FOREIGN_KEY_CHECKS=0;</code> 写入每个转储文件的开头部分。</li></ul><h3 id="tidb_plan_cache_invalidation_on_fresh_stats-span-classversion-mark从-v710-版本开始引入span" style="position:relative"><code>tidb_plan_cache_invalidation_on_fresh_stats</code> <span class="version-mark">从 v7.1.0 版本开始引入</span><a href="#tidb_plan_cache_invalidation_on_fresh_stats-span-classversion-mark%E4%BB%8E-v710-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_plan_cache_invalidation_on_fresh_stats span classversion mark从 v710 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>该变量用于控制当某张表上的统计信息更新后,与该表相关的 Plan Cache 是否自动失效。</li><li>开启此变量有助于 Plan Cache 更有效地利用可用的统计信息生成执行计划,例如:<ul><li>有时 Plan Cache 会在统计信息尚不可用时生成执行计划。开启此变量后,Plan Cache 会在统计信息可用时重新生成执行计划。</li><li>当表上数据分布发生变化时,之前的最优执行计划可能对于现在不再是最优的。开启此变量后,Plan Cache 会在重新收集统计信息后重新生成执行计划。</li></ul></li><li>对于从 v7.1.0 以前的版本升级到 v7.1.0 及以上版本的 TiDB 集群,该选项默认关闭 (<code>OFF</code>)。</li></ul><h3 id="tidb_plan_cache_max_plan_size-span-classversion-mark从-v710-版本开始引入span" style="position:relative"><code>tidb_plan_cache_max_plan_size</code> <span class="version-mark">从 v7.1.0 版本开始引入</span><a href="#tidb_plan_cache_max_plan_size-span-classversion-mark%E4%BB%8E-v710-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_plan_cache_max_plan_size span classversion mark从 v710 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>默认值:<code>2097152</code>(即 2 MiB)</li><li>取值范围:<code>[0, 9223372036854775807]</code>,单位为 Byte。支持带单位的内存格式 "KiB|MiB|GiB|TiB"。<code>0</code> 表示表示不设限制。</li><li>这个变量用来控制可以缓存的 Prepare 或非 Prepare 语句执行计划的最大大小。超过该值的执行计划将不会被缓存到 Plan Cache 中。详情请参考 <a href="/zh/tidb/stable/sql-prepared-plan-cache#prepared-plan-cache-的内存管理">Prepare 语句执行计划缓存</a>和<a href="/zh/tidb/stable/sql-non-prepared-plan-cache#使用方法">非 Prepare 语句执行计划缓存</a>。</li></ul><h3 id="tidb_pprof_sql_cpu-span-classversion-mark从-v40-版本开始引入span" style="position:relative"><code>tidb_pprof_sql_cpu</code> <span class="version-mark">从 v4.0 版本开始引入</span><a href="#tidb_pprof_sql_cpu-span-classversion-mark%E4%BB%8E-v40-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_pprof_sql_cpu span classversion mark从 v40 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:否,仅作用于当前连接的 TiDB 实例</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>0</code></li><li>范围:<code>[0, 1]</code></li><li>这个变量用来控制是否在 profile 输出中标记出对应的 SQL 语句,用于定位和排查性能问题。</li></ul><h3 id="tidb_opt_prefix_index_single_scan-span-classversion-mark从-v640-版本开始引入span" style="position:relative"><code>tidb_opt_prefix_index_single_scan</code> <span class="version-mark">从 v6.4.0 版本开始引入</span><a href="#tidb_opt_prefix_index_single_scan-span-classversion-mark%E4%BB%8E-v640-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_opt_prefix_index_single_scan span classversion mark从 v640 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>这个变量用于控制 TiDB 优化器是否将某些过滤条件下推到前缀索引,尽量避免不必要的回表,从而提高查询性能。</li><li>将该变量设置为 <code>ON</code> 时,会将过滤条件下推到前缀索引。此时,假设一张表中 <code>col</code> 列是索引前缀列,查询语句中的 <code>col is null</code> 或者 <code>col is not null</code> 条件会被归为索引上的过滤条件,而不是回表时的过滤条件,从而避免不必要的回表。</li></ul><details><summary>该变量的使用示例</summary><p>创建一张带前缀索引的表:</p><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia"><span class="hljs-keyword">CREATE</span> <span class="hljs-keyword">TABLE</span> t (a <span class="hljs-type">INT</span>, b <span class="hljs-type">VARCHAR</span>(<span class="hljs-number">10</span>), c <span class="hljs-type">INT</span>, INDEX idx_a_b(a, b(<span class="hljs-number">5</span>))); </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre><p>此时关闭 <code>tidb_opt_prefix_index_single_scan</code>:</p><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia"><span class="hljs-keyword">SET</span> tidb_opt_prefix_index_single_scan <span class="hljs-operator">=</span> <span class="hljs-string">'OFF'</span>; </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre><p>对于以下查询,执行计划使用了前缀索引 <code>idx_a_b</code> 但需要回表(出现了 <code>IndexLookUp</code> 算子)。</p><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia">EXPLAIN FORMAT<span class="hljs-operator">=</span><span class="hljs-string">'brief'</span> <span class="hljs-keyword">SELECT</span> <span class="hljs-built_in">COUNT</span>(<span class="hljs-number">1</span>) <span class="hljs-keyword">FROM</span> t <span class="hljs-keyword">WHERE</span> a <span class="hljs-operator">=</span> <span class="hljs-number">1</span> <span class="hljs-keyword">AND</span> b <span class="hljs-keyword">IS</span> <span class="hljs-keyword">NOT</span> <span class="hljs-keyword">NULL</span>; <span class="hljs-operator">+</span><span class="hljs-comment">-------------------------------+---------+-----------+------------------------------+-------------------------------------------------------+</span> <span class="hljs-operator">|</span> id <span class="hljs-operator">|</span> estRows <span class="hljs-operator">|</span> task <span class="hljs-operator">|</span> access object <span class="hljs-operator">|</span> operator info <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">-------------------------------+---------+-----------+------------------------------+-------------------------------------------------------+</span> <span class="hljs-operator">|</span> HashAgg <span class="hljs-operator">|</span> <span class="hljs-number">1.00</span> <span class="hljs-operator">|</span> root <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> funcs:<span class="hljs-built_in">count</span>(<span class="hljs-keyword">Column</span>#<span class="hljs-number">8</span>)<span class="hljs-operator">-</span><span class="hljs-operator">></span><span class="hljs-keyword">Column</span>#<span class="hljs-number">5</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─IndexLookUp <span class="hljs-operator">|</span> <span class="hljs-number">1.00</span> <span class="hljs-operator">|</span> root <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> ├─IndexRangeScan(Build) <span class="hljs-operator">|</span> <span class="hljs-number">99.90</span> <span class="hljs-operator">|</span> cop[tikv] <span class="hljs-operator">|</span> <span class="hljs-keyword">table</span>:t, index:idx_a_b(a, b) <span class="hljs-operator">|</span> <span class="hljs-keyword">range</span>:[<span class="hljs-number">1</span> <span class="hljs-operator">-</span>inf,<span class="hljs-number">1</span> <span class="hljs-operator">+</span>inf], keep <span class="hljs-keyword">order</span>:<span class="hljs-literal">false</span>, stats:pseudo <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─HashAgg(Probe) <span class="hljs-operator">|</span> <span class="hljs-number">1.00</span> <span class="hljs-operator">|</span> cop[tikv] <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> funcs:<span class="hljs-built_in">count</span>(<span class="hljs-number">1</span>)<span class="hljs-operator">-</span><span class="hljs-operator">></span><span class="hljs-keyword">Column</span>#<span class="hljs-number">8</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─Selection <span class="hljs-operator">|</span> <span class="hljs-number">99.90</span> <span class="hljs-operator">|</span> cop[tikv] <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> <span class="hljs-keyword">not</span>(isnull(test.t.b)) <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─TableRowIDScan <span class="hljs-operator">|</span> <span class="hljs-number">99.90</span> <span class="hljs-operator">|</span> cop[tikv] <span class="hljs-operator">|</span> <span class="hljs-keyword">table</span>:t <span class="hljs-operator">|</span> keep <span class="hljs-keyword">order</span>:<span class="hljs-literal">false</span>, stats:pseudo <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">-------------------------------+---------+-----------+------------------------------+-------------------------------------------------------+</span> <span class="hljs-number">6</span> <span class="hljs-keyword">rows</span> <span class="hljs-keyword">in</span> <span class="hljs-keyword">set</span> (<span class="hljs-number">0.00</span> sec) </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre><p>此时打开 <code>tidb_opt_prefix_index_single_scan</code>:</p><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia"><span class="hljs-keyword">SET</span> tidb_opt_prefix_index_single_scan <span class="hljs-operator">=</span> <span class="hljs-string">'ON'</span>; </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre><p>开启该变量后,对于以下查询,执行计划使用了前缀索引 <code>idx_a_b</code> 且不需要回表。</p><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia">EXPLAIN FORMAT<span class="hljs-operator">=</span><span class="hljs-string">'brief'</span> <span class="hljs-keyword">SELECT</span> <span class="hljs-built_in">COUNT</span>(<span class="hljs-number">1</span>) <span class="hljs-keyword">FROM</span> t <span class="hljs-keyword">WHERE</span> a <span class="hljs-operator">=</span> <span class="hljs-number">1</span> <span class="hljs-keyword">AND</span> b <span class="hljs-keyword">IS</span> <span class="hljs-keyword">NOT</span> <span class="hljs-keyword">NULL</span>; <span class="hljs-operator">+</span><span class="hljs-comment">--------------------------+---------+-----------+------------------------------+-------------------------------------------------------+</span> <span class="hljs-operator">|</span> id <span class="hljs-operator">|</span> estRows <span class="hljs-operator">|</span> task <span class="hljs-operator">|</span> access object <span class="hljs-operator">|</span> operator info <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">--------------------------+---------+-----------+------------------------------+-------------------------------------------------------+</span> <span class="hljs-operator">|</span> StreamAgg <span class="hljs-operator">|</span> <span class="hljs-number">1.00</span> <span class="hljs-operator">|</span> root <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> funcs:<span class="hljs-built_in">count</span>(<span class="hljs-keyword">Column</span>#<span class="hljs-number">7</span>)<span class="hljs-operator">-</span><span class="hljs-operator">></span><span class="hljs-keyword">Column</span>#<span class="hljs-number">5</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─IndexReader <span class="hljs-operator">|</span> <span class="hljs-number">1.00</span> <span class="hljs-operator">|</span> root <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> index:StreamAgg <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─StreamAgg <span class="hljs-operator">|</span> <span class="hljs-number">1.00</span> <span class="hljs-operator">|</span> cop[tikv] <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> funcs:<span class="hljs-built_in">count</span>(<span class="hljs-number">1</span>)<span class="hljs-operator">-</span><span class="hljs-operator">></span><span class="hljs-keyword">Column</span>#<span class="hljs-number">7</span> <span class="hljs-operator">|</span> <span class="hljs-operator">|</span> └─IndexRangeScan <span class="hljs-operator">|</span> <span class="hljs-number">99.90</span> <span class="hljs-operator">|</span> cop[tikv] <span class="hljs-operator">|</span> <span class="hljs-keyword">table</span>:t, index:idx_a_b(a, b) <span class="hljs-operator">|</span> <span class="hljs-keyword">range</span>:[<span class="hljs-number">1</span> <span class="hljs-operator">-</span>inf,<span class="hljs-number">1</span> <span class="hljs-operator">+</span>inf], keep <span class="hljs-keyword">order</span>:<span class="hljs-literal">false</span>, stats:pseudo <span class="hljs-operator">|</span> <span class="hljs-operator">+</span><span class="hljs-comment">--------------------------+---------+-----------+------------------------------+-------------------------------------------------------+</span> <span class="hljs-number">4</span> <span class="hljs-keyword">rows</span> <span class="hljs-keyword">in</span> <span class="hljs-keyword">set</span> (<span class="hljs-number">0.00</span> sec) </div><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-1rmx1rm" tabindex="0" type="button" aria-label="Toggle code wrap"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="WrapTextIcon"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></svg></button><button class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall css-fxo539" tabindex="0" type="button" aria-label="copy"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ContentCopyIcon"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg></button></code></pre></details><h3 id="tidb_prefer_broadcast_join_by_exchange_data_size-span-classversion-mark从-v710-版本开始引入span" style="position:relative"><code>tidb_prefer_broadcast_join_by_exchange_data_size</code> <span class="version-mark">从 v7.1.0 版本开始引入</span><a href="#tidb_prefer_broadcast_join_by_exchange_data_size-span-classversion-mark%E4%BB%8E-v710-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_prefer_broadcast_join_by_exchange_data_size span classversion mark从 v710 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>这个变量用于设定 TiDB 选择 <a href="/zh/tidb/stable/use-tiflash-mpp-mode#mpp-模式的算法支持">MPP Hash Join 算法</a>时,是否使用最小网络交换的数据量策略。开启该变量后,TiDB 会估算 Broadcast Hash Join 和 Shuffled Hash Join 两种算法所需进行网络交换的数据量,并选择网络交换数据量较小的算法。</li><li>该功能开启后 <a href="#tidb_broadcast_join_threshold_count-%E4%BB%8E-v50-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5"><code>tidb_broadcast_join_threshold_count</code></a> 和 <a href="#tidb_broadcast_join_threshold_size-%E4%BB%8E-v50-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5"><code>tidb_broadcast_join_threshold_size</code></a> 将不再生效。</li></ul><h3 id="tidb_prepared_plan_cache_memory_guard_ratio-span-classversion-mark从-v610-版本开始引入span" style="position:relative"><code>tidb_prepared_plan_cache_memory_guard_ratio</code> <span class="version-mark">从 v6.1.0 版本开始引入</span><a href="#tidb_prepared_plan_cache_memory_guard_ratio-span-classversion-mark%E4%BB%8E-v610-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_prepared_plan_cache_memory_guard_ratio span classversion mark从 v610 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:浮点数</li><li>默认值:<code>0.1</code></li><li>范围:<code>[0, 1]</code></li><li>这个变量用来控制 Prepared Plan Cache 触发内存保护机制的阈值,具体可见 <a href="/zh/tidb/stable/sql-prepared-plan-cache#prepared-plan-cache-的内存管理">Prepared Plan Cache 的内存管理</a>。</li><li>在 v6.1.0 之前这个开关通过 TiDB 配置文件 (<code>prepared-plan-cache.memory-guard-ratio</code>) 进行配置,升级到 v6.1.0 时会自动继承原有设置。</li></ul><h3 id="tidb_prepared_plan_cache_size-span-classversion-mark从-v610-版本开始引入span" style="position:relative"><code>tidb_prepared_plan_cache_size</code> <span class="version-mark">从 v6.1.0 版本开始引入</span><a href="#tidb_prepared_plan_cache_size-span-classversion-mark%E4%BB%8E-v610-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_prepared_plan_cache_size span classversion mark从 v610 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardError MuiAlert-standard css-kdwypz" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ErrorOutlineIcon"><path d="M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">警告</div><p>从 v7.1.0 开始,该变量被废弃。请使用 <a href="#tidb_session_plan_cache_size-%E4%BB%8E-v710-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5"><code>tidb_session_plan_cache_size</code></a> 进行设置。</p></div></div></div><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>100</code></li><li>范围:<code>[1, 100000]</code></li><li>这个变量用来控制单个 <code>SESSION</code> 的 Prepared Plan Cache 最多能够缓存的计划数量,具体可见 <a href="/zh/tidb/stable/sql-prepared-plan-cache#prepared-plan-cache-的内存管理">Prepared Plan Cache 的内存管理</a>。</li><li>在 v6.1.0 之前这个开关通过 TiDB 配置文件 (<code>prepared-plan-cache.capacity</code>) 进行配置,升级到 v6.1.0 时会自动继承原有设置。</li></ul><h3 id="tidb_projection_concurrency" style="position:relative"><code>tidb_projection_concurrency</code><a href="#tidb_projection_concurrency" aria-label="tidb_projection_concurrency permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardError MuiAlert-standard css-kdwypz" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ErrorOutlineIcon"><path d="M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">警告</div><p>从 v5.0 版本开始,该变量被废弃。请使用 <a href="#tidb_executor_concurrency-%E4%BB%8E-v50-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5"><code>tidb_executor_concurrency</code></a> 进行设置。</p></div></div></div><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>-1</code></li><li>范围:<code>[-1, 256]</code></li><li>单位:线程</li><li>这个变量用来设置 <code>Projection</code> 算子的并发度。</li><li>默认值 <code>-1</code> 表示使用 <code>tidb_executor_concurrency</code> 的值。</li></ul><h3 id="tidb_query_log_max_len" style="position:relative"><code>tidb_query_log_max_len</code><a href="#tidb_query_log_max_len" aria-label="tidb_query_log_max_len permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>4096</code> (4 KiB)</li><li>范围:<code>[0, 1073741824]</code></li><li>单位:字节</li><li>该变量控制 SQL 语句输出的最大长度。当一条 SQL 语句的输出长度大于 <code>tidb_query_log_max_len</code> 时,输出将会被截断。</li><li>在 v6.1.0 之前这个开关也可以通过 TiDB 配置文件 (<code>log.query-log-max-len</code>) 进行配置,升级到 v6.1.0 后仅可通过系统变量配置。</li></ul><h3 id="tidb_rc_read_check_ts-span-classversion-mark从-v600-版本开始引入span" style="position:relative"><code>tidb_rc_read_check_ts</code> <span class="version-mark">从 v6.0.0 版本开始引入</span><a href="#tidb_rc_read_check_ts-span-classversion-mark%E4%BB%8E-v600-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_rc_read_check_ts span classversion mark从 v600 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardError MuiAlert-standard css-kdwypz" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ErrorOutlineIcon"><path d="M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">警告</div><ul><li>该特性与 <a href="#tidb_replica_read-%E4%BB%8E-v40-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5"><code>replica-read</code></a> 尚不兼容,开启 <code>tidb_rc_read_check_ts</code> 的读请求无法使用 <a href="#tidb_replica_read-%E4%BB%8E-v40-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5"><code>replica-read</code></a>,请勿同时开启两项特性。</li><li>如果客户端使用游标操作,建议不开启 <code>tidb_rc_read_check_ts</code> 这一特性,避免前一批返回数据已经被客户端使用而语句最终会报错的情况。</li><li>自 v7.0.0 版本开始,该变量对于使用 prepared statement 协议下 cursor fetch read 游标模式不再生效。</li></ul></div></div></div><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:否,仅作用于当前连接的 TiDB 实例</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>该变量用于优化时间戳的获取,适用于悲观事务 <code>READ-COMMITTED</code> 隔离级别下读写冲突较少的场景,开启此变量可以避免获取全局 timestamp 带来的延迟和开销,并优化事务内读语句延迟。</li><li>如果读写冲突较为严重,开启此功能会增加额外开销和延迟,造成性能回退。更详细的说明,请参考<a href="/zh/tidb/stable/transaction-isolation-levels#读已提交隔离级别-read-committed">读已提交隔离级别 (Read Committed) 文档</a>。</li></ul><h3 id="tidb_rc_write_check_ts-span-classversion-mark从-v630-版本开始引入span" style="position:relative"><code>tidb_rc_write_check_ts</code> <span class="version-mark">从 v6.3.0 版本开始引入</span><a href="#tidb_rc_write_check_ts-span-classversion-mark%E4%BB%8E-v630-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_rc_write_check_ts span classversion mark从 v630 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardError MuiAlert-standard css-kdwypz" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ErrorOutlineIcon"><path d="M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">警告</div><p>该特性与 <a href="#tidb_replica_read-%E4%BB%8E-v40-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5"><code>replica-read</code></a> 尚不兼容。开启本变量后,客户端发送的所有请求都将无法使用 <code>replica-read</code>,因此请勿同时开启 <code>tidb_rc_write_check_ts</code> 和 <code>replica-read</code>。</p></div></div></div><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>该变量用于优化时间戳的获取,适用于悲观事务 <code>READ-COMMITTED</code> 隔离级别下点写冲突较少的场景。开启此变量可以避免点写语句获取全局时间戳带来的延迟和开销。目前该变量适用的点写语句包括 <code>UPDATE</code>、<code>DELETE</code>、<code>SELECT ...... FOR UPDATE</code> 三种类型。点写语句是指将主键或者唯一键作为过滤条件且最终执行算子包含 <code>POINT-GET</code> 的写语句。</li><li>如果点写冲突较为严重,开启此变量会增加额外开销和延迟,造成性能回退。更详细的说明,请参考<a href="/zh/tidb/stable/transaction-isolation-levels#读已提交隔离级别-read-committed">读已提交隔离级别 (Read Committed) 文档</a>。</li></ul><h3 id="tidb_read_consistency-span-classversion-mark从-v540-版本开始引入span" style="position:relative"><code>tidb_read_consistency</code> <span class="version-mark">从 v5.4.0 版本开始引入</span><a href="#tidb_read_consistency-span-classversion-mark%E4%BB%8E-v540-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_read_consistency span classversion mark从 v540 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:字符串</li><li>默认值:<code>strict</code></li><li>此变量用于控制自动提交的读语句的读一致性。</li><li>如果将变量值设置为 <code>weak</code>,则直接跳过读语句遇到的锁,读的执行可能会更快,这就是弱一致性读模式。但在该模式下,事务语义(例如原子性)和分布式一致性(线性一致性)并不能得到保证。</li><li>如果用户场景中需要快速返回自动提交的读语句,并且可接受弱一致性的读取结果,则可以使用弱一致性读取模式。</li></ul><h3 id="tidb_read_staleness-span-classversion-mark从-v540-版本开始引入span" style="position:relative"><code>tidb_read_staleness</code> <span class="version-mark">从 v5.4.0 版本开始引入</span><a href="#tidb_read_staleness-span-classversion-mark%E4%BB%8E-v540-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_read_staleness span classversion mark从 v540 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:整数型</li><li>默认值:<code>0</code></li><li>范围 <code>[-2147483648, 0]</code></li><li>这个变量用于设置当前会话允许读取的历史数据范围。设置后,TiDB 会从参数允许的范围内选出一个尽可能新的时间戳,并影响后继的所有读操作。比如,如果该变量的值设置为 <code>-5</code>,TiDB 会在 5 秒时间范围内,保证 TiKV 拥有对应历史版本数据的情况下,选择尽可能新的一个时间戳。</li></ul><h3 id="tidb_record_plan_in_slow_log" style="position:relative"><code>tidb_record_plan_in_slow_log</code><a href="#tidb_record_plan_in_slow_log" aria-label="tidb_record_plan_in_slow_log permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:否,仅作用于当前连接的 TiDB 实例</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>这个变量用于控制是否在 slow log 里包含慢查询的执行计划。</li></ul><h3 id="tidb_redact_log" style="position:relative"><code>tidb_redact_log</code><a href="#tidb_redact_log" aria-label="tidb_redact_log permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:枚举型</li><li>默认值:<code>OFF</code></li><li>可选值:<code>OFF</code>、<code>ON</code>、<code>MARKER</code></li><li>这个变量用于控制在记录 TiDB 日志和慢日志时,是否将 SQL 中的用户信息遮蔽。</li><li>默认值为 <code>OFF</code>,即对用户输入的信息不做任何处理。</li><li>将该变量设置为 <code>ON</code> 后,用户输入的信息被遮蔽。假设执行的 SQL 为 <code>INSERT INTO t VALUES (1,2)</code>,则日志中记录的 SQL 语句为 <code>INSERT INTO t VALUES (?,?)</code>。</li><li>将该变量设置为 <code>MARKER</code> 后,用户输入的信息被标记符号 <code>‹ ›</code> 包裹。假设执行的 SQL 为 <code>INSERT INTO t VALUES (1,2)</code>,则日志中记录的 SQL 语句为 <code>INSERT INTO t VALUES (‹1›,‹2›)</code>。输入信息中的 <code>‹</code> 会转义成 <code>‹‹</code>,<code>›</code> 会转义成 <code>››</code>。基于标记后的日志,你可以在展示日志时决定是否对被标记信息进行脱敏处理。</li></ul><h3 id="tidb_regard_null_as_point-span-classversion-mark从-v540-版本开始引入span" style="position:relative"><code>tidb_regard_null_as_point</code> <span class="version-mark">从 v5.4.0 版本开始引入</span><a href="#tidb_regard_null_as_point-span-classversion-mark%E4%BB%8E-v540-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_regard_null_as_point span classversion mark从 v540 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>ON</code></li><li>这个变量用来控制优化器是否可以将包含 null 的等值条件作为前缀条件来访问索引。</li><li>该变量默认开启。开启后,该变量可以使优化器减少需要访问的索引数据量,从而提高查询的执行速度。例如,在有多列索引 <code>index(a, b)</code> 且查询条件为 <code>a<=>null and b=1</code> 的情况下,优化器可以同时使用查询条件中的 <code>a<=>null</code> 和 <code>b=1</code> 进行索引访问。如果关闭该变量,因为 <code>a<=>null and b=1</code> 包含 null 的等值条件,优化器不会使用 <code>b=1</code> 进行索引访问。</li></ul><h3 id="tidb_remove_orderby_in_subquery-span-classversion-mark从-v610-版本开始引入span" style="position:relative"><code>tidb_remove_orderby_in_subquery</code> <span class="version-mark">从 v6.1.0 版本开始引入</span><a href="#tidb_remove_orderby_in_subquery-span-classversion-mark%E4%BB%8E-v610-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_remove_orderby_in_subquery span classversion mark从 v610 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:在 v7.2.0 之前版本中为 <code>OFF</code>,在 v7.2.0 及之后版本中为 <code>ON</code>。</li><li>指定是否在子查询中移除 <code>ORDER BY</code> 子句。</li><li>在 ISO/IEC SQL 标准中,<code>ORDER BY</code> 主要用于对顶层查询结果进行排序。对于子查询中的 <code>ORDER BY</code>,SQL 标准并不要求子查询结果按 <code>ORDER BY</code> 排序。</li><li>如果需要对子查询结果排序,通常可以在外层查询中处理,例如使用窗口函数或在外层查询中再次使用 <code>ORDER BY</code>。这样做可以确保最终结果集的顺序。</li></ul><h3 id="tidb_replica_read-span-classversion-mark从-v40-版本开始引入span" style="position:relative"><code>tidb_replica_read</code> <span class="version-mark">从 v4.0 版本开始引入</span><a href="#tidb_replica_read-span-classversion-mark%E4%BB%8E-v40-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_replica_read span classversion mark从 v40 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:枚举型</li><li>默认值:<code>leader</code></li><li>可选值:<code>leader</code>、<code>follower</code>、<code>leader-and-follower</code>、<code>prefer-leader</code>、<code>closest-replicas</code>、<code>closest-adaptive</code> 和 <code>learner</code>。其中,<code>learner</code> 从 v6.6.0 开始引入。</li><li>这个变量用于控制 TiDB 的 Follower Read 功能的行为。</li><li>关于使用方式与实现原理,见 <a href="/zh/tidb/stable/follower-read">Follower Read</a>。</li></ul><h3 id="tidb_request_source_type-span-classversion-mark从-v740-版本开始引入span" style="position:relative"><code>tidb_request_source_type</code> <span class="version-mark">从 v7.4.0 版本开始引入</span><a href="#tidb_request_source_type-span-classversion-mark%E4%BB%8E-v740-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_request_source_type span classversion mark从 v740 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:字符串</li><li>默认值:<code>""</code></li><li>可选值:<code>"ddl"</code>、<code>"stats"</code>、<code>"br"</code>、<code>"lightning"</code>、<code>"background"</code></li><li>显式指定当前会话的任务类型,用于<a href="/zh/tidb/stable/tidb-resource-control">资源管控</a>识别并控制。如 <code>SET @@tidb_request_source_type = "background"</code>。</li></ul><h3 id="tidb_retry_limit" style="position:relative"><code>tidb_retry_limit</code><a href="#tidb_retry_limit" aria-label="tidb_retry_limit permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>10</code></li><li>范围:<code>[-1, 9223372036854775807]</code></li><li>这个变量用来设置乐观事务的最大重试次数。一个事务执行中遇到可重试的错误(例如事务冲突、事务提交过慢或表结构变更)时,会根据该变量的设置进行重试。注意当 <code>tidb_retry_limit = 0</code> 时,也会禁用自动重试。该变量仅适用于乐观事务,不适用于悲观事务。</li></ul><h3 id="tidb_row_format_version" style="position:relative"><code>tidb_row_format_version</code><a href="#tidb_row_format_version" aria-label="tidb_row_format_version permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li><p>作用域:SESSION | GLOBAL</p></li><li><p>是否持久化到集群:是</p></li><li><p>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</p></li><li><p>类型:整数型</p></li><li><p>默认值:<code>2</code></p></li><li><p>范围:<code>[1, 2]</code></p></li><li><p>控制新保存数据的表数据格式版本。TiDB v4.0 中默认使用版本号为 2 的<a href="https://github.com/pingcap/tidb/blob/release-8.1/docs/design/2018-07-19-row-format.md" target="_blank" referrerpolicy="no-referrer-when-downgrade">新表数据格式</a>保存新数据。</p></li><li><p>但如果从 4.0.0 之前的版本升级到 4.0.0,不会改变表数据格式版本,TiDB 会继续使用版本为 1 的旧格式写入表中,即<strong>只有新创建的集群才会默认使用新表数据格式</strong>。</p></li><li><p>需要注意的是修改该变量不会对已保存的老数据产生影响,只会对修改变量后的新写入数据使用对应版本格式保存。</p></li></ul><h3 id="tidb_runtime_filter_mode-span-classversion-mark从-v720-版本开始引入span" style="position:relative"><code>tidb_runtime_filter_mode</code> <span class="version-mark">从 v7.2.0 版本开始引入</span><a href="#tidb_runtime_filter_mode-span-classversion-mark%E4%BB%8E-v720-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_runtime_filter_mode span classversion mark从 v720 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:枚举型</li><li>默认值:<code>OFF</code></li><li>可选值:<code>OFF</code>,<code>LOCAL</code></li><li>控制 Runtime Filter 的模式,即<strong>生成 Filter 算子</strong>和<strong>接收 Filter 算子</strong>之间的关系。当前可设置为两种模式:<code>OFF</code>、<code>LOCAL</code>。<code>OFF</code> 代表关闭 Runtime Filter,<code>LOCAL</code> 代表开启 <code>LOCAL</code> 模式的 Runtime Filter。详细说明见 <a href="/zh/tidb/stable/runtime-filter#runtime-filter-mode">Runtime Filter Mode</a>。</li></ul><h3 id="tidb_runtime_filter_type-span-classversion-mark从-v720-版本开始引入span" style="position:relative"><code>tidb_runtime_filter_type</code> <span class="version-mark">从 v7.2.0 版本开始引入</span><a href="#tidb_runtime_filter_type-span-classversion-mark%E4%BB%8E-v720-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_runtime_filter_type span classversion mark从 v720 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:枚举型</li><li>默认值:<code>IN</code></li><li>可选值:<code>IN</code></li><li>控制 Runtime Filter 的类型,即生成的 Filter 算子使用的谓词类型。当前仅支持 <code>IN</code>,所以无需更改此设置。详细说明见 <a href="/zh/tidb/stable/runtime-filter#runtime-filter-type">Runtime Filter Type</a>。</li></ul><h3 id="tidb_scatter_region" style="position:relative"><code>tidb_scatter_region</code><a href="#tidb_scatter_region" aria-label="tidb_scatter_region permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>TiDB 默认会在建表时为新表分裂 Region。开启该变量后,会在建表语句执行时,同步打散刚分裂出的 Region。适用于批量建表后紧接着批量写入数据,能让刚分裂出的 Region 先在 TiKV 分散而不用等待 PD 进行调度。为了保证后续批量写入数据的稳定性,建表语句会等待打散 Region 完成后再返回建表成功,建表语句执行时间会是该变量关闭时的数倍。</li><li>如果建表时设置了 <code>SHARD_ROW_ID_BITS</code> 和 <code>PRE_SPLIT_REGIONS</code>,建表成功后会均匀切分出指定数量的 Region。</li></ul><h3 id="tidb_schema_cache_size-span-classversion-mark从-v800-版本开始引入span" style="position:relative"><code>tidb_schema_cache_size</code> <span class="version-mark">从 v8.0.0 版本开始引入</span><a href="#tidb_schema_cache_size-span-classversion-mark%E4%BB%8E-v800-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_schema_cache_size span classversion mark从 v800 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><div class="MuiBox-root css-1weqspv"><div class="MuiPaper-root MuiPaper-elevation MuiPaper-rounded MuiPaper-elevation0 MuiAlert-root MuiAlert-standardError MuiAlert-standard css-kdwypz" role="alert"><div class="MuiAlert-icon css-1l54tgj"><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeInherit css-1cw4hi4" focusable="false" aria-hidden="true" viewbox="0 0 24 24" data-testid="ErrorOutlineIcon"><path d="M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></svg></div><div class="MuiAlert-message css-1xsto0d"><div class="MuiTypography-root MuiTypography-body1 MuiTypography-gutterBottom MuiAlertTitle-root css-o4nulc">警告</div><p>当前版本中该变量控制的功能尚未生效,请保留默认值。</p></div></div></div><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>0</code></li><li>范围:<code>[0, 9223372036854775807]</code></li><li>这个变量用来控制 TiDB schema 信息缓存的大小。单位为 byte。默认值为 <code>0</code>,表示不打开缓存限制功能。开启该功能后,TiDB 将使用该变量的值做为可用的内存上限,并使用 Least Recently Used (LRU) 算法缓存所需的表,有效降低 schema 信息占用的内存。</li></ul><h3 id="tidb_schema_version_cache_limit-span-classversion-mark从-v740-版本开始引入span" style="position:relative"><code>tidb_schema_version_cache_limit</code> <span class="version-mark">从 v7.4.0 版本开始引入</span><a href="#tidb_schema_version_cache_limit-span-classversion-mark%E4%BB%8E-v740-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_schema_version_cache_limit span classversion mark从 v740 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>默认值:<code>16</code></li><li>取值范围:<code>[2, 255]</code></li><li>该变量用于限制 TiDB 实例可以缓存多少个历史版本的表结构信息。默认值为 <code>16</code>,即默认缓存 16 个历史版本的表结构信息。</li><li>一般不需要修改该变量。当使用 <a href="/zh/tidb/stable/stale-read">Stale Read</a> 功能且 DDL 执行非常频繁时,会导致表结构信息的版本号变更非常频繁,进而导致 Stale Read 在获取 Snapshot 的表结构信息时,可能会因为未命中表结构信息的缓存而需要消耗大量时间重新构建该信息。此时可以适当调大 <code>tidb_schema_version_cache_limit</code> 的值(例如 <code>32</code> )来避免表结构信息的缓存不命中的问题。</li><li>修改该变量会使 TiDB 的内存占用轻微上升。使用时请注意 TiDB 的内存占用,避免出现 OOM 问题。</li></ul><h3 id="tidb_server_memory_limit-span-classversion-mark从-v640-版本开始引入span" style="position:relative"><code>tidb_server_memory_limit</code> <span class="version-mark">从 v6.4.0 版本开始引入</span><a href="#tidb_server_memory_limit-span-classversion-mark%E4%BB%8E-v640-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_server_memory_limit span classversion mark从 v640 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>默认值:<code>80%</code></li><li>取值范围:<ul><li>你可以将该变量值设为百分比格式,表示内存用量占总内存的百分比,取值范围为 <code>[1%, 99%]</code>。</li><li>你还可以将变量值设为内存大小,取值范围为 <code>0</code> 以及 <code>[536870912, 9223372036854775807]</code>,单位为 Byte。支持带单位的内存格式 "KiB|MiB|GiB|TiB"。<code>0</code> 值表示不设内存限制。</li><li>当设置的内存值小于 512 MiB 且不为 0 时,TiDB 将会使用 512 MiB 作为替代。</li></ul></li><li>该变量指定 TiDB 实例的内存限制。TiDB 会在内存用量达到该限制时,对当前内存用量最高的 SQL 语句进行取消 (Cancel) 操作。在该 SQL 语句被成功 Cancel 掉后,TiDB 会尝试调用 Golang GC 立刻回收内存,以最快速度缓解内存压力。</li><li>只有内存使用大于 <code>tidb_server_memory_limit_sess_min_size</code> 的 SQL 语句会被选定为最优先被 Cancel 的 SQL 语句。</li><li>目前 TiDB 一次只能 Cancel 一条 SQL 语句。如果 TiDB 完全 Cancel 掉一条 SQL 语句并回收资源后,内存使用仍然大于该变量所设限制,TiDB 会开始下一次 Cancel 操作。</li></ul><h3 id="tidb_server_memory_limit_gc_trigger-span-classversion-mark从-v640-版本开始引入span" style="position:relative"><code>tidb_server_memory_limit_gc_trigger</code> <span class="version-mark">从 v6.4.0 版本开始引入</span><a href="#tidb_server_memory_limit_gc_trigger-span-classversion-mark%E4%BB%8E-v640-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_server_memory_limit_gc_trigger span classversion mark从 v640 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>默认值:<code>70%</code></li><li>取值范围:<code>[50%, 99%]</code></li><li>TiDB 尝试触发 GC 的阈值。当 TiDB 的内存使用达到 <code>tidb_server_memory_limit</code> 值 <!-- -->*<!-- --> <code>tidb_server_memory_limit_gc_trigger</code> 值时,则会主动触发一次 Golang GC。在一分钟之内只会主动触发一次 GC。</li></ul><h3 id="tidb_server_memory_limit_sess_min_size-span-classversion-mark从-v640-版本开始引入span" style="position:relative"><code>tidb_server_memory_limit_sess_min_size</code> <span class="version-mark">从 v6.4.0 版本开始引入</span><a href="#tidb_server_memory_limit_sess_min_size-span-classversion-mark%E4%BB%8E-v640-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_server_memory_limit_sess_min_size span classversion mark从 v640 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>默认值:<code>134217728</code>(即 128 MiB)</li><li>取值范围:<code>[128, 9223372036854775807]</code>,单位为 Byte。支持带单位的内存格式 "KiB|MiB|GiB|TiB"。</li><li>开启内存限制后,TiDB 会终止当前实例上内存用量最高的 SQL 语句。本变量指定此情况下 SQL 语句被终止的最小内存用量。如果 TiDB 实例的内存超限是由许多内存使用量不明显的会话导致的,可以适当调小该变量值,使得更多会话成为 Cancel 的对象。</li></ul><h3 id="tidb_service_scope-span-classversion-mark从-v740-版本开始引入span" style="position:relative"><code>tidb_service_scope</code> <span class="version-mark">从 v7.4.0 版本开始引入</span><a href="#tidb_service_scope-span-classversion-mark%E4%BB%8E-v740-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_service_scope span classversion mark从 v740 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:否</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:字符串</li><li>默认值:""</li><li>可选值:长度小于或等于 64 的字符串,可用合法字符包括数字 <code>0-9</code>、字母 <code>a-zA-Z</code>、下划线 <code>_</code> 和连字符 <code>-</code></li><li>该变量是一个实例级别的变量,用于控制 <a href="/zh/tidb/stable/tidb-distributed-execution-framework">TiDB 分布式执行框架</a> 下各 TiDB 节点的服务范围。分布式执行框架会根据该变量的值决定将分布式任务调度到哪些 TiDB 节点上执行,具体规则请参考<a href="/zh/tidb/stable/tidb-distributed-execution-framework#任务调度">任务调度</a>。</li></ul><h3 id="tidb_session_alias-span-classversion-mark从-v740-版本开始引入span" style="position:relative"><code>tidb_session_alias</code> <span class="version-mark">从 v7.4.0 版本开始引入</span><a href="#tidb_session_alias-span-classversion-mark%E4%BB%8E-v740-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_session_alias span classversion mark从 v740 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION</li><li>是否持久化到集群:否</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:是</li><li>类型:字符串</li><li>默认值:""</li><li>用来自定义当前会话相关日志中 <code>session_alias</code> 列的值,方便故障定位时识别该会话。此设置会对语句执行过程中涉及的多个节点的日志生效(包括 TiKV)。此变量限制长度最大为 64 个字符,超出的部分将会被自动截断。如果变量值的末尾存在空格,也会被自动去除。</li></ul><h3 id="tidb_session_plan_cache_size-span-classversion-mark从-v710-版本开始引入span" style="position:relative"><code>tidb_session_plan_cache_size</code> <span class="version-mark">从 v7.1.0 版本开始引入</span><a href="#tidb_session_plan_cache_size-span-classversion-mark%E4%BB%8E-v710-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_session_plan_cache_size span classversion mark从 v710 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>100</code></li><li>范围:<code>[1, 100000]</code></li><li>这个变量用来控制 Plan Cache 最多能够缓存的计划数量。其中,<a href="/zh/tidb/stable/sql-prepared-plan-cache">Prepare 语句执行计划缓存</a>和<a href="/zh/tidb/stable/sql-non-prepared-plan-cache">非 Prepare 语句执行计划缓存</a>共用一个缓存。</li><li>从旧版本升级到 v7.1.0 及之后的版本,<code>tidb_session_plan_cache_size</code> 的值与 <a href="#tidb_prepared_plan_cache_size-%E4%BB%8E-v610-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5"><code>tidb_prepared_plan_cache_size</code></a> 保持一致。</li></ul><h3 id="tidb_shard_allocate_step-span-classversion-mark从-v50-版本开始引入span" style="position:relative"><code>tidb_shard_allocate_step</code> <span class="version-mark">从 v5.0 版本开始引入</span><a href="#tidb_shard_allocate_step-span-classversion-mark%E4%BB%8E-v50-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_shard_allocate_step span classversion mark从 v50 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:整数型</li><li>默认值:<code>9223372036854775807</code></li><li>范围:<code>[1, 9223372036854775807]</code></li><li>该变量设置为 <a href="/zh/tidb/stable/auto-random"><code>AUTO_RANDOM</code></a> 或 <a href="/zh/tidb/stable/shard-row-id-bits"><code>SHARD_ROW_ID_BITS</code></a> 属性列分配的最大连续 ID 数。通常,<code>AUTO_RANDOM</code> ID 或带有 <code>SHARD_ROW_ID_BITS</code> 属性的行 ID 在一个事务中是增量和连续的。你可以使用该变量来解决大事务场景下的热点问题。</li></ul><h3 id="tidb_simplified_metrics" style="position:relative"><code>tidb_simplified_metrics</code><a href="#tidb_simplified_metrics" aria-label="tidb_simplified_metrics permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>该变量开启后,TiDB 将不会收集或记录 Grafana 面板未使用到的 metrics。</li></ul><h3 id="tidb_skip_ascii_check-span-classversion-mark从-v50-版本开始引入span" style="position:relative"><code>tidb_skip_ascii_check</code> <span class="version-mark">从 v5.0 版本开始引入</span><a href="#tidb_skip_ascii_check-span-classversion-mark%E4%BB%8E-v50-%E7%89%88%E6%9C%AC%E5%BC%80%E5%A7%8B%E5%BC%95%E5%85%A5span" aria-label="tidb_skip_ascii_check span classversion mark从 v50 版本开始引入span permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>这个变量用来设置是否校验 ASCII 字符的合法性。</li><li>校验 ASCII 字符会损耗些许性能。当你确认输入的字符串为有效的 ASCII 字符时,可以将其设置为 <code>ON</code>。</li></ul><h3 id="tidb_skip_isolation_level_check" style="position:relative"><code>tidb_skip_isolation_level_check</code><a href="#tidb_skip_isolation_level_check" aria-label="tidb_skip_isolation_level_check permalink" class="anchor after"><svg aria-hidden="true" focusable="false" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"/></svg></a></h3><ul><li>作用域:SESSION | GLOBAL</li><li>是否持久化到集群:是</li><li>是否受 Hint <a href="/zh/tidb/stable/optimizer-hints#set_varvar_namevar_value">SET_VAR</a> 控制:否</li><li>类型:布尔型</li><li>默认值:<code>OFF</code></li><li>开启这个开关之后,如果对 <code>tx_isolation</code> 赋值一个 TiDB 不支持的隔离级别,不会报错,有助于兼容其他设置了(但不依赖于)不同隔离级别的应用。</li></ul><pre><code class="hljs language-sql"><div class="MuiBox-root css-1qhimia">tidb<span class="hljs-operator">></span> <span class="hljs-keyword">set</span> tx_isolation<span class="hljs-operator">=</span><span class="hljs-string">'serializable'</span>; ERROR <span class="hljs-number">8048</span> (HY000): The isolation level <span class="hljs-string">'serializable'</span> <span class="hljs-keyword">is</span> <span class="hljs-keyword">not</span> supported. <span class="hljs-keyword">Set</span> tidb_skip_isolation_level_check<span class="hljs-operator">=</span><span class="hljs-number">1</span> <span class="hljs-keyword">to</span> <span class="hljs-keyword">skip</span> this error
推荐文章
风度翩翩的煎鸡蛋
·
C++使用ssl发送https请求_c++ https请求_宝宝可乖了的博客-CSDN博客
2 年前
博学的鸵鸟
·
C++ pair方法与vector方法案例详解_C 语言_脚本之家
2 年前
时尚的蘑菇
·
Swift 新并发框架之 async/await_程序员大咖的博客-CSDN博客
2 年前