tencentcloud-sdk-python-cynosdb 3.1.103__tar.gz → 3.1.104__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (17) hide show
  1. {tencentcloud_sdk_python_cynosdb-3.1.103 → tencentcloud_sdk_python_cynosdb-3.1.104}/PKG-INFO +2 -2
  2. {tencentcloud_sdk_python_cynosdb-3.1.103 → tencentcloud_sdk_python_cynosdb-3.1.104}/setup.py +1 -1
  3. {tencentcloud_sdk_python_cynosdb-3.1.103 → tencentcloud_sdk_python_cynosdb-3.1.104}/tencentcloud/__init__.py +1 -1
  4. {tencentcloud_sdk_python_cynosdb-3.1.103 → tencentcloud_sdk_python_cynosdb-3.1.104}/tencentcloud/cynosdb/v20190107/cynosdb_client.py +46 -0
  5. {tencentcloud_sdk_python_cynosdb-3.1.103 → tencentcloud_sdk_python_cynosdb-3.1.104}/tencentcloud/cynosdb/v20190107/cynosdb_client_async.py +36 -0
  6. {tencentcloud_sdk_python_cynosdb-3.1.103 → tencentcloud_sdk_python_cynosdb-3.1.104}/tencentcloud/cynosdb/v20190107/models.py +918 -61
  7. {tencentcloud_sdk_python_cynosdb-3.1.103 → tencentcloud_sdk_python_cynosdb-3.1.104}/tencentcloud_sdk_python_cynosdb.egg-info/PKG-INFO +2 -2
  8. tencentcloud_sdk_python_cynosdb-3.1.104/tencentcloud_sdk_python_cynosdb.egg-info/requires.txt +1 -0
  9. tencentcloud_sdk_python_cynosdb-3.1.103/tencentcloud_sdk_python_cynosdb.egg-info/requires.txt +0 -1
  10. {tencentcloud_sdk_python_cynosdb-3.1.103 → tencentcloud_sdk_python_cynosdb-3.1.104}/README.rst +0 -0
  11. {tencentcloud_sdk_python_cynosdb-3.1.103 → tencentcloud_sdk_python_cynosdb-3.1.104}/setup.cfg +0 -0
  12. {tencentcloud_sdk_python_cynosdb-3.1.103 → tencentcloud_sdk_python_cynosdb-3.1.104}/tencentcloud/cynosdb/__init__.py +0 -0
  13. {tencentcloud_sdk_python_cynosdb-3.1.103 → tencentcloud_sdk_python_cynosdb-3.1.104}/tencentcloud/cynosdb/v20190107/__init__.py +0 -0
  14. {tencentcloud_sdk_python_cynosdb-3.1.103 → tencentcloud_sdk_python_cynosdb-3.1.104}/tencentcloud/cynosdb/v20190107/errorcodes.py +0 -0
  15. {tencentcloud_sdk_python_cynosdb-3.1.103 → tencentcloud_sdk_python_cynosdb-3.1.104}/tencentcloud_sdk_python_cynosdb.egg-info/SOURCES.txt +0 -0
  16. {tencentcloud_sdk_python_cynosdb-3.1.103 → tencentcloud_sdk_python_cynosdb-3.1.104}/tencentcloud_sdk_python_cynosdb.egg-info/dependency_links.txt +0 -0
  17. {tencentcloud_sdk_python_cynosdb-3.1.103 → tencentcloud_sdk_python_cynosdb-3.1.104}/tencentcloud_sdk_python_cynosdb.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tencentcloud-sdk-python-cynosdb
3
- Version: 3.1.103
3
+ Version: 3.1.104
4
4
  Summary: Tencent Cloud Cynosdb SDK for Python
5
5
  Home-page: https://github.com/TencentCloud/tencentcloud-sdk-python
6
6
  Author: Tencent Cloud
@@ -15,7 +15,7 @@ Classifier: Programming Language :: Python :: 2.7
15
15
  Classifier: Programming Language :: Python :: 3
16
16
  Classifier: Programming Language :: Python :: 3.6
17
17
  Classifier: Programming Language :: Python :: 3.7
18
- Requires-Dist: tencentcloud-sdk-python-common<4.0.0,>=3.1.103
18
+ Requires-Dist: tencentcloud-sdk-python-common<4.0.0,>=3.1.104
19
19
 
20
20
  ============================
21
21
  Tencent Cloud SDK for Python
@@ -8,7 +8,7 @@ ROOT = os.path.dirname(__file__)
8
8
 
9
9
  setup(
10
10
  name='tencentcloud-sdk-python-cynosdb',
11
- install_requires=["tencentcloud-sdk-python-common>=3.1.103,<4.0.0"],
11
+ install_requires=["tencentcloud-sdk-python-common>=3.1.104,<4.0.0"],
12
12
 
13
13
  version=tencentcloud.__version__,
14
14
  description='Tencent Cloud Cynosdb SDK for Python',
@@ -14,4 +14,4 @@
14
14
  # limitations under the License.
15
15
 
16
16
 
17
- __version__ = '3.1.103'
17
+ __version__ = '3.1.104'
@@ -164,6 +164,29 @@ class CynosdbClient(AbstractClient):
164
164
  raise TencentCloudSDKException(type(e).__name__, str(e))
165
165
 
166
166
 
167
+ def AddServerlessRoInstances(self, request):
168
+ r"""添加serverless集群只读实例
169
+
170
+ :param request: Request instance for AddServerlessRoInstances.
171
+ :type request: :class:`tencentcloud.cynosdb.v20190107.models.AddServerlessRoInstancesRequest`
172
+ :rtype: :class:`tencentcloud.cynosdb.v20190107.models.AddServerlessRoInstancesResponse`
173
+
174
+ """
175
+ try:
176
+ params = request._serialize()
177
+ headers = request.headers
178
+ body = self.call("AddServerlessRoInstances", params, headers=headers)
179
+ response = json.loads(body)
180
+ model = models.AddServerlessRoInstancesResponse()
181
+ model._deserialize(response["Response"])
182
+ return model
183
+ except Exception as e:
184
+ if isinstance(e, TencentCloudSDKException):
185
+ raise
186
+ else:
187
+ raise TencentCloudSDKException(type(e).__name__, str(e))
188
+
189
+
167
190
  def AssociateSecurityGroups(self, request):
168
191
  r"""本接口(AssociateSecurityGroups)用于安全组批量绑定云资源。
169
192
 
@@ -2740,6 +2763,29 @@ class CynosdbClient(AbstractClient):
2740
2763
  raise TencentCloudSDKException(type(e).__name__, str(e))
2741
2764
 
2742
2765
 
2766
+ def DescribeSQLExecutionPlan(self, request):
2767
+ r"""本接口(DescribeSQLExecutionPlan)用于查询执行计划详情
2768
+
2769
+ :param request: Request instance for DescribeSQLExecutionPlan.
2770
+ :type request: :class:`tencentcloud.cynosdb.v20190107.models.DescribeSQLExecutionPlanRequest`
2771
+ :rtype: :class:`tencentcloud.cynosdb.v20190107.models.DescribeSQLExecutionPlanResponse`
2772
+
2773
+ """
2774
+ try:
2775
+ params = request._serialize()
2776
+ headers = request.headers
2777
+ body = self.call("DescribeSQLExecutionPlan", params, headers=headers)
2778
+ response = json.loads(body)
2779
+ model = models.DescribeSQLExecutionPlanResponse()
2780
+ model._deserialize(response["Response"])
2781
+ return model
2782
+ except Exception as e:
2783
+ if isinstance(e, TencentCloudSDKException):
2784
+ raise
2785
+ else:
2786
+ raise TencentCloudSDKException(type(e).__name__, str(e))
2787
+
2788
+
2743
2789
  def DescribeSSLStatus(self, request):
2744
2790
  r"""查询实例SSL状态
2745
2791
 
@@ -133,6 +133,24 @@ class CynosdbClient(AbstractClient):
133
133
 
134
134
  return await self.call_and_deserialize(**kwargs)
135
135
 
136
+ async def AddServerlessRoInstances(
137
+ self,
138
+ request: models.AddServerlessRoInstancesRequest,
139
+ opts: Dict = None,
140
+ ) -> models.AddServerlessRoInstancesResponse:
141
+ """
142
+ 添加serverless集群只读实例
143
+ """
144
+
145
+ kwargs = {}
146
+ kwargs["action"] = "AddServerlessRoInstances"
147
+ kwargs["params"] = request._serialize()
148
+ kwargs["resp_cls"] = models.AddServerlessRoInstancesResponse
149
+ kwargs["headers"] = request.headers
150
+ kwargs["opts"] = opts or {}
151
+
152
+ return await self.call_and_deserialize(**kwargs)
153
+
136
154
  async def AssociateSecurityGroups(
137
155
  self,
138
156
  request: models.AssociateSecurityGroupsRequest,
@@ -2149,6 +2167,24 @@ class CynosdbClient(AbstractClient):
2149
2167
 
2150
2168
  return await self.call_and_deserialize(**kwargs)
2151
2169
 
2170
+ async def DescribeSQLExecutionPlan(
2171
+ self,
2172
+ request: models.DescribeSQLExecutionPlanRequest,
2173
+ opts: Dict = None,
2174
+ ) -> models.DescribeSQLExecutionPlanResponse:
2175
+ """
2176
+ 本接口(DescribeSQLExecutionPlan)用于查询执行计划详情
2177
+ """
2178
+
2179
+ kwargs = {}
2180
+ kwargs["action"] = "DescribeSQLExecutionPlan"
2181
+ kwargs["params"] = request._serialize()
2182
+ kwargs["resp_cls"] = models.DescribeSQLExecutionPlanResponse
2183
+ kwargs["headers"] = request.headers
2184
+ kwargs["opts"] = opts or {}
2185
+
2186
+ return await self.call_and_deserialize(**kwargs)
2187
+
2152
2188
  async def DescribeSSLStatus(
2153
2189
  self,
2154
2190
  request: models.DescribeSSLStatusRequest,
@@ -1713,6 +1713,323 @@ class AddLibraDBInstancesResponse(AbstractModel):
1713
1713
  self._RequestId = params.get("RequestId")
1714
1714
 
1715
1715
 
1716
+ class AddServerlessRoInstancesRequest(AbstractModel):
1717
+ r"""AddServerlessRoInstances请求参数结构体
1718
+
1719
+ """
1720
+
1721
+ def __init__(self):
1722
+ r"""
1723
+ :param _ClusterId: <p>集群Id</p>
1724
+ :type ClusterId: str
1725
+ :param _MinCpu: <p>ro实例最小规格</p>
1726
+ :type MinCpu: float
1727
+ :param _MaxCpu: <p>ro实例最大规格</p>
1728
+ :type MaxCpu: float
1729
+ :param _InstanceName: <p>ro实例名称</p>
1730
+ :type InstanceName: str
1731
+ :param _VpcId: <p>所属VPC网络ID</p>
1732
+ :type VpcId: str
1733
+ :param _SubnetId: <p>所属子网ID,如果设置了VpcId,则SubnetId必填</p>
1734
+ :type SubnetId: str
1735
+ :param _Port: <p>新增RO组时使用的Port,取值范围为[0,65535)</p>
1736
+ :type Port: int
1737
+ :param _SecurityGroupIds: <p>安全组ID,新建只读实例时可以指定安全组</p>
1738
+ :type SecurityGroupIds: list of str
1739
+ :param _AutoPause: <p>是否自动暂停</p><p>枚举值:</p><ul><li>yes: 是</li><li>no: 否</li></ul>
1740
+ :type AutoPause: str
1741
+ :param _AutoPauseDelay: <p>自动暂停时间</p><p>单位:秒</p>
1742
+ :type AutoPauseDelay: int
1743
+ :param _InstanceParams: <p>实例参数</p>
1744
+ :type InstanceParams: list of ModifyParamItem
1745
+ :param _ParamTemplateId: <p>参数模板</p>
1746
+ :type ParamTemplateId: int
1747
+ :param _RoCount: <p>新增的只读实例数量</p>
1748
+ :type RoCount: int
1749
+ """
1750
+ self._ClusterId = None
1751
+ self._MinCpu = None
1752
+ self._MaxCpu = None
1753
+ self._InstanceName = None
1754
+ self._VpcId = None
1755
+ self._SubnetId = None
1756
+ self._Port = None
1757
+ self._SecurityGroupIds = None
1758
+ self._AutoPause = None
1759
+ self._AutoPauseDelay = None
1760
+ self._InstanceParams = None
1761
+ self._ParamTemplateId = None
1762
+ self._RoCount = None
1763
+
1764
+ @property
1765
+ def ClusterId(self):
1766
+ r"""<p>集群Id</p>
1767
+ :rtype: str
1768
+ """
1769
+ return self._ClusterId
1770
+
1771
+ @ClusterId.setter
1772
+ def ClusterId(self, ClusterId):
1773
+ self._ClusterId = ClusterId
1774
+
1775
+ @property
1776
+ def MinCpu(self):
1777
+ r"""<p>ro实例最小规格</p>
1778
+ :rtype: float
1779
+ """
1780
+ return self._MinCpu
1781
+
1782
+ @MinCpu.setter
1783
+ def MinCpu(self, MinCpu):
1784
+ self._MinCpu = MinCpu
1785
+
1786
+ @property
1787
+ def MaxCpu(self):
1788
+ r"""<p>ro实例最大规格</p>
1789
+ :rtype: float
1790
+ """
1791
+ return self._MaxCpu
1792
+
1793
+ @MaxCpu.setter
1794
+ def MaxCpu(self, MaxCpu):
1795
+ self._MaxCpu = MaxCpu
1796
+
1797
+ @property
1798
+ def InstanceName(self):
1799
+ r"""<p>ro实例名称</p>
1800
+ :rtype: str
1801
+ """
1802
+ return self._InstanceName
1803
+
1804
+ @InstanceName.setter
1805
+ def InstanceName(self, InstanceName):
1806
+ self._InstanceName = InstanceName
1807
+
1808
+ @property
1809
+ def VpcId(self):
1810
+ r"""<p>所属VPC网络ID</p>
1811
+ :rtype: str
1812
+ """
1813
+ return self._VpcId
1814
+
1815
+ @VpcId.setter
1816
+ def VpcId(self, VpcId):
1817
+ self._VpcId = VpcId
1818
+
1819
+ @property
1820
+ def SubnetId(self):
1821
+ r"""<p>所属子网ID,如果设置了VpcId,则SubnetId必填</p>
1822
+ :rtype: str
1823
+ """
1824
+ return self._SubnetId
1825
+
1826
+ @SubnetId.setter
1827
+ def SubnetId(self, SubnetId):
1828
+ self._SubnetId = SubnetId
1829
+
1830
+ @property
1831
+ def Port(self):
1832
+ r"""<p>新增RO组时使用的Port,取值范围为[0,65535)</p>
1833
+ :rtype: int
1834
+ """
1835
+ return self._Port
1836
+
1837
+ @Port.setter
1838
+ def Port(self, Port):
1839
+ self._Port = Port
1840
+
1841
+ @property
1842
+ def SecurityGroupIds(self):
1843
+ r"""<p>安全组ID,新建只读实例时可以指定安全组</p>
1844
+ :rtype: list of str
1845
+ """
1846
+ return self._SecurityGroupIds
1847
+
1848
+ @SecurityGroupIds.setter
1849
+ def SecurityGroupIds(self, SecurityGroupIds):
1850
+ self._SecurityGroupIds = SecurityGroupIds
1851
+
1852
+ @property
1853
+ def AutoPause(self):
1854
+ r"""<p>是否自动暂停</p><p>枚举值:</p><ul><li>yes: 是</li><li>no: 否</li></ul>
1855
+ :rtype: str
1856
+ """
1857
+ return self._AutoPause
1858
+
1859
+ @AutoPause.setter
1860
+ def AutoPause(self, AutoPause):
1861
+ self._AutoPause = AutoPause
1862
+
1863
+ @property
1864
+ def AutoPauseDelay(self):
1865
+ r"""<p>自动暂停时间</p><p>单位:秒</p>
1866
+ :rtype: int
1867
+ """
1868
+ return self._AutoPauseDelay
1869
+
1870
+ @AutoPauseDelay.setter
1871
+ def AutoPauseDelay(self, AutoPauseDelay):
1872
+ self._AutoPauseDelay = AutoPauseDelay
1873
+
1874
+ @property
1875
+ def InstanceParams(self):
1876
+ r"""<p>实例参数</p>
1877
+ :rtype: list of ModifyParamItem
1878
+ """
1879
+ return self._InstanceParams
1880
+
1881
+ @InstanceParams.setter
1882
+ def InstanceParams(self, InstanceParams):
1883
+ self._InstanceParams = InstanceParams
1884
+
1885
+ @property
1886
+ def ParamTemplateId(self):
1887
+ r"""<p>参数模板</p>
1888
+ :rtype: int
1889
+ """
1890
+ return self._ParamTemplateId
1891
+
1892
+ @ParamTemplateId.setter
1893
+ def ParamTemplateId(self, ParamTemplateId):
1894
+ self._ParamTemplateId = ParamTemplateId
1895
+
1896
+ @property
1897
+ def RoCount(self):
1898
+ r"""<p>新增的只读实例数量</p>
1899
+ :rtype: int
1900
+ """
1901
+ return self._RoCount
1902
+
1903
+ @RoCount.setter
1904
+ def RoCount(self, RoCount):
1905
+ self._RoCount = RoCount
1906
+
1907
+
1908
+ def _deserialize(self, params):
1909
+ self._ClusterId = params.get("ClusterId")
1910
+ self._MinCpu = params.get("MinCpu")
1911
+ self._MaxCpu = params.get("MaxCpu")
1912
+ self._InstanceName = params.get("InstanceName")
1913
+ self._VpcId = params.get("VpcId")
1914
+ self._SubnetId = params.get("SubnetId")
1915
+ self._Port = params.get("Port")
1916
+ self._SecurityGroupIds = params.get("SecurityGroupIds")
1917
+ self._AutoPause = params.get("AutoPause")
1918
+ self._AutoPauseDelay = params.get("AutoPauseDelay")
1919
+ if params.get("InstanceParams") is not None:
1920
+ self._InstanceParams = []
1921
+ for item in params.get("InstanceParams"):
1922
+ obj = ModifyParamItem()
1923
+ obj._deserialize(item)
1924
+ self._InstanceParams.append(obj)
1925
+ self._ParamTemplateId = params.get("ParamTemplateId")
1926
+ self._RoCount = params.get("RoCount")
1927
+ memeber_set = set(params.keys())
1928
+ for name, value in vars(self).items():
1929
+ property_name = name[1:]
1930
+ if property_name in memeber_set:
1931
+ memeber_set.remove(property_name)
1932
+ if len(memeber_set) > 0:
1933
+ warnings.warn("%s fileds are useless." % ",".join(memeber_set))
1934
+
1935
+
1936
+
1937
+ class AddServerlessRoInstancesResponse(AbstractModel):
1938
+ r"""AddServerlessRoInstances返回参数结构体
1939
+
1940
+ """
1941
+
1942
+ def __init__(self):
1943
+ r"""
1944
+ :param _TranId: <p>冻结流水,一次开通一个冻结流水</p>
1945
+ 注意:此字段可能返回 null,表示取不到有效值。
1946
+ :type TranId: str
1947
+ :param _DealNames: <p>后付费订单号</p>
1948
+ 注意:此字段可能返回 null,表示取不到有效值。
1949
+ :type DealNames: list of str
1950
+ :param _ResourceIds: <p>发货资源id列表</p>
1951
+ 注意:此字段可能返回 null,表示取不到有效值。
1952
+ :type ResourceIds: list of str
1953
+ :param _BigDealIds: <p>大订单号</p>
1954
+ 注意:此字段可能返回 null,表示取不到有效值。
1955
+ :type BigDealIds: list of str
1956
+ :param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
1957
+ :type RequestId: str
1958
+ """
1959
+ self._TranId = None
1960
+ self._DealNames = None
1961
+ self._ResourceIds = None
1962
+ self._BigDealIds = None
1963
+ self._RequestId = None
1964
+
1965
+ @property
1966
+ def TranId(self):
1967
+ r"""<p>冻结流水,一次开通一个冻结流水</p>
1968
+ 注意:此字段可能返回 null,表示取不到有效值。
1969
+ :rtype: str
1970
+ """
1971
+ return self._TranId
1972
+
1973
+ @TranId.setter
1974
+ def TranId(self, TranId):
1975
+ self._TranId = TranId
1976
+
1977
+ @property
1978
+ def DealNames(self):
1979
+ r"""<p>后付费订单号</p>
1980
+ 注意:此字段可能返回 null,表示取不到有效值。
1981
+ :rtype: list of str
1982
+ """
1983
+ return self._DealNames
1984
+
1985
+ @DealNames.setter
1986
+ def DealNames(self, DealNames):
1987
+ self._DealNames = DealNames
1988
+
1989
+ @property
1990
+ def ResourceIds(self):
1991
+ r"""<p>发货资源id列表</p>
1992
+ 注意:此字段可能返回 null,表示取不到有效值。
1993
+ :rtype: list of str
1994
+ """
1995
+ return self._ResourceIds
1996
+
1997
+ @ResourceIds.setter
1998
+ def ResourceIds(self, ResourceIds):
1999
+ self._ResourceIds = ResourceIds
2000
+
2001
+ @property
2002
+ def BigDealIds(self):
2003
+ r"""<p>大订单号</p>
2004
+ 注意:此字段可能返回 null,表示取不到有效值。
2005
+ :rtype: list of str
2006
+ """
2007
+ return self._BigDealIds
2008
+
2009
+ @BigDealIds.setter
2010
+ def BigDealIds(self, BigDealIds):
2011
+ self._BigDealIds = BigDealIds
2012
+
2013
+ @property
2014
+ def RequestId(self):
2015
+ r"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
2016
+ :rtype: str
2017
+ """
2018
+ return self._RequestId
2019
+
2020
+ @RequestId.setter
2021
+ def RequestId(self, RequestId):
2022
+ self._RequestId = RequestId
2023
+
2024
+
2025
+ def _deserialize(self, params):
2026
+ self._TranId = params.get("TranId")
2027
+ self._DealNames = params.get("DealNames")
2028
+ self._ResourceIds = params.get("ResourceIds")
2029
+ self._BigDealIds = params.get("BigDealIds")
2030
+ self._RequestId = params.get("RequestId")
2031
+
2032
+
1716
2033
  class Addr(AbstractModel):
1717
2034
  r"""数据库地址
1718
2035
 
@@ -28732,28 +29049,187 @@ class DescribeRollbackTimeRangeRequest(AbstractModel):
28732
29049
  r"""保险箱id
28733
29050
  :rtype: str
28734
29051
  """
28735
- return self._VaultId
29052
+ return self._VaultId
29053
+
29054
+ @VaultId.setter
29055
+ def VaultId(self, VaultId):
29056
+ self._VaultId = VaultId
29057
+
29058
+ @property
29059
+ def VaultRegion(self):
29060
+ r"""保险箱地域
29061
+ :rtype: str
29062
+ """
29063
+ return self._VaultRegion
29064
+
29065
+ @VaultRegion.setter
29066
+ def VaultRegion(self, VaultRegion):
29067
+ self._VaultRegion = VaultRegion
29068
+
29069
+
29070
+ def _deserialize(self, params):
29071
+ self._ClusterId = params.get("ClusterId")
29072
+ self._VaultId = params.get("VaultId")
29073
+ self._VaultRegion = params.get("VaultRegion")
29074
+ memeber_set = set(params.keys())
29075
+ for name, value in vars(self).items():
29076
+ property_name = name[1:]
29077
+ if property_name in memeber_set:
29078
+ memeber_set.remove(property_name)
29079
+ if len(memeber_set) > 0:
29080
+ warnings.warn("%s fileds are useless." % ",".join(memeber_set))
29081
+
29082
+
29083
+
29084
+ class DescribeRollbackTimeRangeResponse(AbstractModel):
29085
+ r"""DescribeRollbackTimeRange返回参数结构体
29086
+
29087
+ """
29088
+
29089
+ def __init__(self):
29090
+ r"""
29091
+ :param _TimeRangeStart: 有效回归时间范围开始时间点(已废弃)
29092
+ :type TimeRangeStart: str
29093
+ :param _TimeRangeEnd: 有效回归时间范围结束时间点(已废弃)
29094
+ :type TimeRangeEnd: str
29095
+ :param _RollbackTimeRanges: 可回档时间范围
29096
+ :type RollbackTimeRanges: list of RollbackTimeRange
29097
+ :param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
29098
+ :type RequestId: str
29099
+ """
29100
+ self._TimeRangeStart = None
29101
+ self._TimeRangeEnd = None
29102
+ self._RollbackTimeRanges = None
29103
+ self._RequestId = None
29104
+
29105
+ @property
29106
+ def TimeRangeStart(self):
29107
+ r"""有效回归时间范围开始时间点(已废弃)
29108
+ :rtype: str
29109
+ """
29110
+ return self._TimeRangeStart
29111
+
29112
+ @TimeRangeStart.setter
29113
+ def TimeRangeStart(self, TimeRangeStart):
29114
+ self._TimeRangeStart = TimeRangeStart
29115
+
29116
+ @property
29117
+ def TimeRangeEnd(self):
29118
+ r"""有效回归时间范围结束时间点(已废弃)
29119
+ :rtype: str
29120
+ """
29121
+ return self._TimeRangeEnd
29122
+
29123
+ @TimeRangeEnd.setter
29124
+ def TimeRangeEnd(self, TimeRangeEnd):
29125
+ self._TimeRangeEnd = TimeRangeEnd
29126
+
29127
+ @property
29128
+ def RollbackTimeRanges(self):
29129
+ r"""可回档时间范围
29130
+ :rtype: list of RollbackTimeRange
29131
+ """
29132
+ return self._RollbackTimeRanges
29133
+
29134
+ @RollbackTimeRanges.setter
29135
+ def RollbackTimeRanges(self, RollbackTimeRanges):
29136
+ self._RollbackTimeRanges = RollbackTimeRanges
29137
+
29138
+ @property
29139
+ def RequestId(self):
29140
+ r"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
29141
+ :rtype: str
29142
+ """
29143
+ return self._RequestId
29144
+
29145
+ @RequestId.setter
29146
+ def RequestId(self, RequestId):
29147
+ self._RequestId = RequestId
29148
+
29149
+
29150
+ def _deserialize(self, params):
29151
+ self._TimeRangeStart = params.get("TimeRangeStart")
29152
+ self._TimeRangeEnd = params.get("TimeRangeEnd")
29153
+ if params.get("RollbackTimeRanges") is not None:
29154
+ self._RollbackTimeRanges = []
29155
+ for item in params.get("RollbackTimeRanges"):
29156
+ obj = RollbackTimeRange()
29157
+ obj._deserialize(item)
29158
+ self._RollbackTimeRanges.append(obj)
29159
+ self._RequestId = params.get("RequestId")
29160
+
29161
+
29162
+ class DescribeSQLExecutionPlanRequest(AbstractModel):
29163
+ r"""DescribeSQLExecutionPlan请求参数结构体
29164
+
29165
+ """
29166
+
29167
+ def __init__(self):
29168
+ r"""
29169
+ :param _ClusterId: <p>集群ID</p>
29170
+ :type ClusterId: str
29171
+ :param _InstanceId: <p>实例ID</p>
29172
+ :type InstanceId: str
29173
+ :param _TemplateID: <p>SQL模板ID</p>
29174
+ :type TemplateID: str
29175
+ :param _PlanDetailId: <p>计划详情序列号</p>
29176
+ :type PlanDetailId: int
29177
+ """
29178
+ self._ClusterId = None
29179
+ self._InstanceId = None
29180
+ self._TemplateID = None
29181
+ self._PlanDetailId = None
29182
+
29183
+ @property
29184
+ def ClusterId(self):
29185
+ r"""<p>集群ID</p>
29186
+ :rtype: str
29187
+ """
29188
+ return self._ClusterId
29189
+
29190
+ @ClusterId.setter
29191
+ def ClusterId(self, ClusterId):
29192
+ self._ClusterId = ClusterId
29193
+
29194
+ @property
29195
+ def InstanceId(self):
29196
+ r"""<p>实例ID</p>
29197
+ :rtype: str
29198
+ """
29199
+ return self._InstanceId
29200
+
29201
+ @InstanceId.setter
29202
+ def InstanceId(self, InstanceId):
29203
+ self._InstanceId = InstanceId
29204
+
29205
+ @property
29206
+ def TemplateID(self):
29207
+ r"""<p>SQL模板ID</p>
29208
+ :rtype: str
29209
+ """
29210
+ return self._TemplateID
28736
29211
 
28737
- @VaultId.setter
28738
- def VaultId(self, VaultId):
28739
- self._VaultId = VaultId
29212
+ @TemplateID.setter
29213
+ def TemplateID(self, TemplateID):
29214
+ self._TemplateID = TemplateID
28740
29215
 
28741
29216
  @property
28742
- def VaultRegion(self):
28743
- r"""保险箱地域
28744
- :rtype: str
29217
+ def PlanDetailId(self):
29218
+ r"""<p>计划详情序列号</p>
29219
+ :rtype: int
28745
29220
  """
28746
- return self._VaultRegion
29221
+ return self._PlanDetailId
28747
29222
 
28748
- @VaultRegion.setter
28749
- def VaultRegion(self, VaultRegion):
28750
- self._VaultRegion = VaultRegion
29223
+ @PlanDetailId.setter
29224
+ def PlanDetailId(self, PlanDetailId):
29225
+ self._PlanDetailId = PlanDetailId
28751
29226
 
28752
29227
 
28753
29228
  def _deserialize(self, params):
28754
29229
  self._ClusterId = params.get("ClusterId")
28755
- self._VaultId = params.get("VaultId")
28756
- self._VaultRegion = params.get("VaultRegion")
29230
+ self._InstanceId = params.get("InstanceId")
29231
+ self._TemplateID = params.get("TemplateID")
29232
+ self._PlanDetailId = params.get("PlanDetailId")
28757
29233
  memeber_set = set(params.keys())
28758
29234
  for name, value in vars(self).items():
28759
29235
  property_name = name[1:]
@@ -28764,59 +29240,33 @@ class DescribeRollbackTimeRangeRequest(AbstractModel):
28764
29240
 
28765
29241
 
28766
29242
 
28767
- class DescribeRollbackTimeRangeResponse(AbstractModel):
28768
- r"""DescribeRollbackTimeRange返回参数结构体
29243
+ class DescribeSQLExecutionPlanResponse(AbstractModel):
29244
+ r"""DescribeSQLExecutionPlan返回参数结构体
28769
29245
 
28770
29246
  """
28771
29247
 
28772
29248
  def __init__(self):
28773
29249
  r"""
28774
- :param _TimeRangeStart: 有效回归时间范围开始时间点(已废弃)
28775
- :type TimeRangeStart: str
28776
- :param _TimeRangeEnd: 有效回归时间范围结束时间点(已废弃)
28777
- :type TimeRangeEnd: str
28778
- :param _RollbackTimeRanges: 可回档时间范围
28779
- :type RollbackTimeRanges: list of RollbackTimeRange
29250
+ :param _PlanDetail: <p>执行计划详情</p>
29251
+ 注意:此字段可能返回 null,表示取不到有效值。
29252
+ :type PlanDetail: :class:`tencentcloud.cynosdb.v20190107.models.ExecutionPlanDetail`
28780
29253
  :param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
28781
29254
  :type RequestId: str
28782
29255
  """
28783
- self._TimeRangeStart = None
28784
- self._TimeRangeEnd = None
28785
- self._RollbackTimeRanges = None
29256
+ self._PlanDetail = None
28786
29257
  self._RequestId = None
28787
29258
 
28788
29259
  @property
28789
- def TimeRangeStart(self):
28790
- r"""有效回归时间范围开始时间点(已废弃)
28791
- :rtype: str
28792
- """
28793
- return self._TimeRangeStart
28794
-
28795
- @TimeRangeStart.setter
28796
- def TimeRangeStart(self, TimeRangeStart):
28797
- self._TimeRangeStart = TimeRangeStart
28798
-
28799
- @property
28800
- def TimeRangeEnd(self):
28801
- r"""有效回归时间范围结束时间点(已废弃)
28802
- :rtype: str
28803
- """
28804
- return self._TimeRangeEnd
28805
-
28806
- @TimeRangeEnd.setter
28807
- def TimeRangeEnd(self, TimeRangeEnd):
28808
- self._TimeRangeEnd = TimeRangeEnd
28809
-
28810
- @property
28811
- def RollbackTimeRanges(self):
28812
- r"""可回档时间范围
28813
- :rtype: list of RollbackTimeRange
29260
+ def PlanDetail(self):
29261
+ r"""<p>执行计划详情</p>
29262
+ 注意:此字段可能返回 null,表示取不到有效值。
29263
+ :rtype: :class:`tencentcloud.cynosdb.v20190107.models.ExecutionPlanDetail`
28814
29264
  """
28815
- return self._RollbackTimeRanges
29265
+ return self._PlanDetail
28816
29266
 
28817
- @RollbackTimeRanges.setter
28818
- def RollbackTimeRanges(self, RollbackTimeRanges):
28819
- self._RollbackTimeRanges = RollbackTimeRanges
29267
+ @PlanDetail.setter
29268
+ def PlanDetail(self, PlanDetail):
29269
+ self._PlanDetail = PlanDetail
28820
29270
 
28821
29271
  @property
28822
29272
  def RequestId(self):
@@ -28831,14 +29281,9 @@ class DescribeRollbackTimeRangeResponse(AbstractModel):
28831
29281
 
28832
29282
 
28833
29283
  def _deserialize(self, params):
28834
- self._TimeRangeStart = params.get("TimeRangeStart")
28835
- self._TimeRangeEnd = params.get("TimeRangeEnd")
28836
- if params.get("RollbackTimeRanges") is not None:
28837
- self._RollbackTimeRanges = []
28838
- for item in params.get("RollbackTimeRanges"):
28839
- obj = RollbackTimeRange()
28840
- obj._deserialize(item)
28841
- self._RollbackTimeRanges.append(obj)
29284
+ if params.get("PlanDetail") is not None:
29285
+ self._PlanDetail = ExecutionPlanDetail()
29286
+ self._PlanDetail._deserialize(params.get("PlanDetail"))
28842
29287
  self._RequestId = params.get("RequestId")
28843
29288
 
28844
29289
 
@@ -30951,6 +31396,418 @@ class ExchangeRoGroupInfo(AbstractModel):
30951
31396
 
30952
31397
 
30953
31398
 
31399
+ class ExecutionPlanDetail(AbstractModel):
31400
+ r"""执行计划详情
31401
+
31402
+ """
31403
+
31404
+ def __init__(self):
31405
+ r"""
31406
+ :param _TemplateID: <p>模板ID</p>
31407
+ :type TemplateID: str
31408
+ :param _Db: <p>数据库名</p>
31409
+ :type Db: str
31410
+ :param _SQLSample: <p>原始SQL样例</p>
31411
+ :type SQLSample: str
31412
+ :param _SQLSampleRewritten: <p>改写后SQL样例</p>
31413
+ :type SQLSampleRewritten: str
31414
+ :param _TablePlanBefore: <p>优化前执行计划- 列表</p>
31415
+ :type TablePlanBefore: list of ExplainRow
31416
+ :param _TablePlanAfter: <p>优化后执行计划 - 列表</p>
31417
+ :type TablePlanAfter: list of ExplainRow
31418
+ :param _TreePlanBefore: <p>优化前树形执行计划</p>
31419
+ :type TreePlanBefore: str
31420
+ :param _TreePlanAfter: <p>优化后树形执行计划</p>
31421
+ :type TreePlanAfter: str
31422
+ :param _QueryTimeBefore: <p>优化前查询时间</p>
31423
+ :type QueryTimeBefore: float
31424
+ :param _QueryTimeAfter: <p>优化后查询时间</p>
31425
+ :type QueryTimeAfter: float
31426
+ :param _SQLScanRowsBefore: <p>优化前扫描行数</p>
31427
+ :type SQLScanRowsBefore: int
31428
+ :param _SQLScanRowsAfter: <p>优化后扫描行数</p>
31429
+ :type SQLScanRowsAfter: int
31430
+ """
31431
+ self._TemplateID = None
31432
+ self._Db = None
31433
+ self._SQLSample = None
31434
+ self._SQLSampleRewritten = None
31435
+ self._TablePlanBefore = None
31436
+ self._TablePlanAfter = None
31437
+ self._TreePlanBefore = None
31438
+ self._TreePlanAfter = None
31439
+ self._QueryTimeBefore = None
31440
+ self._QueryTimeAfter = None
31441
+ self._SQLScanRowsBefore = None
31442
+ self._SQLScanRowsAfter = None
31443
+
31444
+ @property
31445
+ def TemplateID(self):
31446
+ r"""<p>模板ID</p>
31447
+ :rtype: str
31448
+ """
31449
+ return self._TemplateID
31450
+
31451
+ @TemplateID.setter
31452
+ def TemplateID(self, TemplateID):
31453
+ self._TemplateID = TemplateID
31454
+
31455
+ @property
31456
+ def Db(self):
31457
+ r"""<p>数据库名</p>
31458
+ :rtype: str
31459
+ """
31460
+ return self._Db
31461
+
31462
+ @Db.setter
31463
+ def Db(self, Db):
31464
+ self._Db = Db
31465
+
31466
+ @property
31467
+ def SQLSample(self):
31468
+ r"""<p>原始SQL样例</p>
31469
+ :rtype: str
31470
+ """
31471
+ return self._SQLSample
31472
+
31473
+ @SQLSample.setter
31474
+ def SQLSample(self, SQLSample):
31475
+ self._SQLSample = SQLSample
31476
+
31477
+ @property
31478
+ def SQLSampleRewritten(self):
31479
+ r"""<p>改写后SQL样例</p>
31480
+ :rtype: str
31481
+ """
31482
+ return self._SQLSampleRewritten
31483
+
31484
+ @SQLSampleRewritten.setter
31485
+ def SQLSampleRewritten(self, SQLSampleRewritten):
31486
+ self._SQLSampleRewritten = SQLSampleRewritten
31487
+
31488
+ @property
31489
+ def TablePlanBefore(self):
31490
+ r"""<p>优化前执行计划- 列表</p>
31491
+ :rtype: list of ExplainRow
31492
+ """
31493
+ return self._TablePlanBefore
31494
+
31495
+ @TablePlanBefore.setter
31496
+ def TablePlanBefore(self, TablePlanBefore):
31497
+ self._TablePlanBefore = TablePlanBefore
31498
+
31499
+ @property
31500
+ def TablePlanAfter(self):
31501
+ r"""<p>优化后执行计划 - 列表</p>
31502
+ :rtype: list of ExplainRow
31503
+ """
31504
+ return self._TablePlanAfter
31505
+
31506
+ @TablePlanAfter.setter
31507
+ def TablePlanAfter(self, TablePlanAfter):
31508
+ self._TablePlanAfter = TablePlanAfter
31509
+
31510
+ @property
31511
+ def TreePlanBefore(self):
31512
+ r"""<p>优化前树形执行计划</p>
31513
+ :rtype: str
31514
+ """
31515
+ return self._TreePlanBefore
31516
+
31517
+ @TreePlanBefore.setter
31518
+ def TreePlanBefore(self, TreePlanBefore):
31519
+ self._TreePlanBefore = TreePlanBefore
31520
+
31521
+ @property
31522
+ def TreePlanAfter(self):
31523
+ r"""<p>优化后树形执行计划</p>
31524
+ :rtype: str
31525
+ """
31526
+ return self._TreePlanAfter
31527
+
31528
+ @TreePlanAfter.setter
31529
+ def TreePlanAfter(self, TreePlanAfter):
31530
+ self._TreePlanAfter = TreePlanAfter
31531
+
31532
+ @property
31533
+ def QueryTimeBefore(self):
31534
+ r"""<p>优化前查询时间</p>
31535
+ :rtype: float
31536
+ """
31537
+ return self._QueryTimeBefore
31538
+
31539
+ @QueryTimeBefore.setter
31540
+ def QueryTimeBefore(self, QueryTimeBefore):
31541
+ self._QueryTimeBefore = QueryTimeBefore
31542
+
31543
+ @property
31544
+ def QueryTimeAfter(self):
31545
+ r"""<p>优化后查询时间</p>
31546
+ :rtype: float
31547
+ """
31548
+ return self._QueryTimeAfter
31549
+
31550
+ @QueryTimeAfter.setter
31551
+ def QueryTimeAfter(self, QueryTimeAfter):
31552
+ self._QueryTimeAfter = QueryTimeAfter
31553
+
31554
+ @property
31555
+ def SQLScanRowsBefore(self):
31556
+ r"""<p>优化前扫描行数</p>
31557
+ :rtype: int
31558
+ """
31559
+ return self._SQLScanRowsBefore
31560
+
31561
+ @SQLScanRowsBefore.setter
31562
+ def SQLScanRowsBefore(self, SQLScanRowsBefore):
31563
+ self._SQLScanRowsBefore = SQLScanRowsBefore
31564
+
31565
+ @property
31566
+ def SQLScanRowsAfter(self):
31567
+ r"""<p>优化后扫描行数</p>
31568
+ :rtype: int
31569
+ """
31570
+ return self._SQLScanRowsAfter
31571
+
31572
+ @SQLScanRowsAfter.setter
31573
+ def SQLScanRowsAfter(self, SQLScanRowsAfter):
31574
+ self._SQLScanRowsAfter = SQLScanRowsAfter
31575
+
31576
+
31577
+ def _deserialize(self, params):
31578
+ self._TemplateID = params.get("TemplateID")
31579
+ self._Db = params.get("Db")
31580
+ self._SQLSample = params.get("SQLSample")
31581
+ self._SQLSampleRewritten = params.get("SQLSampleRewritten")
31582
+ if params.get("TablePlanBefore") is not None:
31583
+ self._TablePlanBefore = []
31584
+ for item in params.get("TablePlanBefore"):
31585
+ obj = ExplainRow()
31586
+ obj._deserialize(item)
31587
+ self._TablePlanBefore.append(obj)
31588
+ if params.get("TablePlanAfter") is not None:
31589
+ self._TablePlanAfter = []
31590
+ for item in params.get("TablePlanAfter"):
31591
+ obj = ExplainRow()
31592
+ obj._deserialize(item)
31593
+ self._TablePlanAfter.append(obj)
31594
+ self._TreePlanBefore = params.get("TreePlanBefore")
31595
+ self._TreePlanAfter = params.get("TreePlanAfter")
31596
+ self._QueryTimeBefore = params.get("QueryTimeBefore")
31597
+ self._QueryTimeAfter = params.get("QueryTimeAfter")
31598
+ self._SQLScanRowsBefore = params.get("SQLScanRowsBefore")
31599
+ self._SQLScanRowsAfter = params.get("SQLScanRowsAfter")
31600
+ memeber_set = set(params.keys())
31601
+ for name, value in vars(self).items():
31602
+ property_name = name[1:]
31603
+ if property_name in memeber_set:
31604
+ memeber_set.remove(property_name)
31605
+ if len(memeber_set) > 0:
31606
+ warnings.warn("%s fileds are useless." % ",".join(memeber_set))
31607
+
31608
+
31609
+
31610
+ class ExplainRow(AbstractModel):
31611
+ r"""执行计划列表
31612
+
31613
+ """
31614
+
31615
+ def __init__(self):
31616
+ r"""
31617
+ :param _Id: <p>查询的序列号</p>
31618
+ :type Id: int
31619
+ :param _SelectType: <p>查询的类型,常见值:SIMPLE(简单查询,不含子查询或 UNION)、PRIMARY(最外层查询)、SUBQUERY(子查询中的第一个 SELECT)、DERIVED(派生表/FROM 子句中的子查询)、UNION(UNION 中第二个及之后的 SELECT)、UNION RESULT(UNION 的结果集)。</p>
31620
+ :type SelectType: str
31621
+ :param _Table: <p>数据表名</p>
31622
+ :type Table: str
31623
+ :param _Partitions: <p>查询匹配的分区</p>
31624
+ :type Partitions: str
31625
+ :param _Type: <p>访问类型(非常重要,衡量查询效率的关键指标),从优到差排列:system &gt; const &gt; eq_ref &gt; ref &gt; fulltext &gt; ref_or_null &gt; index_merge &gt; unique_subquery &gt; index_subquery &gt; range &gt; index &gt; ALL。常见值说明: • system:表只有一行记录(系统表) • const:通过主键或唯一索引匹配一行,常见于 WHERE pk = 1 • eq_ref:连接时使用主键或唯一索引,每个索引值只匹配一行 • ref:使用非唯一索引查找,可能匹配多行 • range:索引范围扫描,如 BETWEEN、&gt;、&lt;、IN • index:全索引扫描(遍历整棵索引树) • ALL:全表扫描(最差,需优化)</p>
31626
+ :type Type: str
31627
+ :param _PossibleKeys: <p>查询中可能使用到的索引。为 NULL 表示没有可用索引。</p>
31628
+ :type PossibleKeys: str
31629
+ :param _Key: <p>实际使用的索引。为 NULL 表示未使用任何索引。</p>
31630
+ :type Key: str
31631
+ :param _KeyLen: <p>实际使用的索引长度(字节数)。可用来判断联合索引中实际使用了哪几个列。值越短说明使用的索引列越少。</p>
31632
+ :type KeyLen: str
31633
+ :param _Ref: <p>显示哪些列或常量与 key 列中的索引进行比较。常见值:const(常量)、某个列名、func(函数结果)。</p>
31634
+ :type Ref: str
31635
+ :param _Rows: <p>预估要扫描的行数</p>
31636
+ :type Rows: int
31637
+ :param _Filtered: <p>表示经过表条件过滤后,剩余行数占 rows 的百分比估算。100% 表示没有额外过滤,值越高越好。</p>
31638
+ :type Filtered: float
31639
+ :param _Extra: <p>附加信息(非常重要),常见值: • Using index:覆盖索引,无需回表(好) • Using where:在存储引擎返回行后再用 WHERE 过滤 • Using temporary:使用了临时表(常见于 GROUP BY/ORDER BY,需优化) • Using filesort:使用了文件排序而非索引排序(需优化) • Using index condition:使用了索引下推(ICP)</p>
31640
+ :type Extra: str
31641
+ """
31642
+ self._Id = None
31643
+ self._SelectType = None
31644
+ self._Table = None
31645
+ self._Partitions = None
31646
+ self._Type = None
31647
+ self._PossibleKeys = None
31648
+ self._Key = None
31649
+ self._KeyLen = None
31650
+ self._Ref = None
31651
+ self._Rows = None
31652
+ self._Filtered = None
31653
+ self._Extra = None
31654
+
31655
+ @property
31656
+ def Id(self):
31657
+ r"""<p>查询的序列号</p>
31658
+ :rtype: int
31659
+ """
31660
+ return self._Id
31661
+
31662
+ @Id.setter
31663
+ def Id(self, Id):
31664
+ self._Id = Id
31665
+
31666
+ @property
31667
+ def SelectType(self):
31668
+ r"""<p>查询的类型,常见值:SIMPLE(简单查询,不含子查询或 UNION)、PRIMARY(最外层查询)、SUBQUERY(子查询中的第一个 SELECT)、DERIVED(派生表/FROM 子句中的子查询)、UNION(UNION 中第二个及之后的 SELECT)、UNION RESULT(UNION 的结果集)。</p>
31669
+ :rtype: str
31670
+ """
31671
+ return self._SelectType
31672
+
31673
+ @SelectType.setter
31674
+ def SelectType(self, SelectType):
31675
+ self._SelectType = SelectType
31676
+
31677
+ @property
31678
+ def Table(self):
31679
+ r"""<p>数据表名</p>
31680
+ :rtype: str
31681
+ """
31682
+ return self._Table
31683
+
31684
+ @Table.setter
31685
+ def Table(self, Table):
31686
+ self._Table = Table
31687
+
31688
+ @property
31689
+ def Partitions(self):
31690
+ r"""<p>查询匹配的分区</p>
31691
+ :rtype: str
31692
+ """
31693
+ return self._Partitions
31694
+
31695
+ @Partitions.setter
31696
+ def Partitions(self, Partitions):
31697
+ self._Partitions = Partitions
31698
+
31699
+ @property
31700
+ def Type(self):
31701
+ r"""<p>访问类型(非常重要,衡量查询效率的关键指标),从优到差排列:system &gt; const &gt; eq_ref &gt; ref &gt; fulltext &gt; ref_or_null &gt; index_merge &gt; unique_subquery &gt; index_subquery &gt; range &gt; index &gt; ALL。常见值说明: • system:表只有一行记录(系统表) • const:通过主键或唯一索引匹配一行,常见于 WHERE pk = 1 • eq_ref:连接时使用主键或唯一索引,每个索引值只匹配一行 • ref:使用非唯一索引查找,可能匹配多行 • range:索引范围扫描,如 BETWEEN、&gt;、&lt;、IN • index:全索引扫描(遍历整棵索引树) • ALL:全表扫描(最差,需优化)</p>
31702
+ :rtype: str
31703
+ """
31704
+ return self._Type
31705
+
31706
+ @Type.setter
31707
+ def Type(self, Type):
31708
+ self._Type = Type
31709
+
31710
+ @property
31711
+ def PossibleKeys(self):
31712
+ r"""<p>查询中可能使用到的索引。为 NULL 表示没有可用索引。</p>
31713
+ :rtype: str
31714
+ """
31715
+ return self._PossibleKeys
31716
+
31717
+ @PossibleKeys.setter
31718
+ def PossibleKeys(self, PossibleKeys):
31719
+ self._PossibleKeys = PossibleKeys
31720
+
31721
+ @property
31722
+ def Key(self):
31723
+ r"""<p>实际使用的索引。为 NULL 表示未使用任何索引。</p>
31724
+ :rtype: str
31725
+ """
31726
+ return self._Key
31727
+
31728
+ @Key.setter
31729
+ def Key(self, Key):
31730
+ self._Key = Key
31731
+
31732
+ @property
31733
+ def KeyLen(self):
31734
+ r"""<p>实际使用的索引长度(字节数)。可用来判断联合索引中实际使用了哪几个列。值越短说明使用的索引列越少。</p>
31735
+ :rtype: str
31736
+ """
31737
+ return self._KeyLen
31738
+
31739
+ @KeyLen.setter
31740
+ def KeyLen(self, KeyLen):
31741
+ self._KeyLen = KeyLen
31742
+
31743
+ @property
31744
+ def Ref(self):
31745
+ r"""<p>显示哪些列或常量与 key 列中的索引进行比较。常见值:const(常量)、某个列名、func(函数结果)。</p>
31746
+ :rtype: str
31747
+ """
31748
+ return self._Ref
31749
+
31750
+ @Ref.setter
31751
+ def Ref(self, Ref):
31752
+ self._Ref = Ref
31753
+
31754
+ @property
31755
+ def Rows(self):
31756
+ r"""<p>预估要扫描的行数</p>
31757
+ :rtype: int
31758
+ """
31759
+ return self._Rows
31760
+
31761
+ @Rows.setter
31762
+ def Rows(self, Rows):
31763
+ self._Rows = Rows
31764
+
31765
+ @property
31766
+ def Filtered(self):
31767
+ r"""<p>表示经过表条件过滤后,剩余行数占 rows 的百分比估算。100% 表示没有额外过滤,值越高越好。</p>
31768
+ :rtype: float
31769
+ """
31770
+ return self._Filtered
31771
+
31772
+ @Filtered.setter
31773
+ def Filtered(self, Filtered):
31774
+ self._Filtered = Filtered
31775
+
31776
+ @property
31777
+ def Extra(self):
31778
+ r"""<p>附加信息(非常重要),常见值: • Using index:覆盖索引,无需回表(好) • Using where:在存储引擎返回行后再用 WHERE 过滤 • Using temporary:使用了临时表(常见于 GROUP BY/ORDER BY,需优化) • Using filesort:使用了文件排序而非索引排序(需优化) • Using index condition:使用了索引下推(ICP)</p>
31779
+ :rtype: str
31780
+ """
31781
+ return self._Extra
31782
+
31783
+ @Extra.setter
31784
+ def Extra(self, Extra):
31785
+ self._Extra = Extra
31786
+
31787
+
31788
+ def _deserialize(self, params):
31789
+ self._Id = params.get("Id")
31790
+ self._SelectType = params.get("SelectType")
31791
+ self._Table = params.get("Table")
31792
+ self._Partitions = params.get("Partitions")
31793
+ self._Type = params.get("Type")
31794
+ self._PossibleKeys = params.get("PossibleKeys")
31795
+ self._Key = params.get("Key")
31796
+ self._KeyLen = params.get("KeyLen")
31797
+ self._Ref = params.get("Ref")
31798
+ self._Rows = params.get("Rows")
31799
+ self._Filtered = params.get("Filtered")
31800
+ self._Extra = params.get("Extra")
31801
+ memeber_set = set(params.keys())
31802
+ for name, value in vars(self).items():
31803
+ property_name = name[1:]
31804
+ if property_name in memeber_set:
31805
+ memeber_set.remove(property_name)
31806
+ if len(memeber_set) > 0:
31807
+ warnings.warn("%s fileds are useless." % ",".join(memeber_set))
31808
+
31809
+
31810
+
30954
31811
  class ExportInstanceErrorLogsRequest(AbstractModel):
30955
31812
  r"""ExportInstanceErrorLogs请求参数结构体
30956
31813
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tencentcloud-sdk-python-cynosdb
3
- Version: 3.1.103
3
+ Version: 3.1.104
4
4
  Summary: Tencent Cloud Cynosdb SDK for Python
5
5
  Home-page: https://github.com/TencentCloud/tencentcloud-sdk-python
6
6
  Author: Tencent Cloud
@@ -15,7 +15,7 @@ Classifier: Programming Language :: Python :: 2.7
15
15
  Classifier: Programming Language :: Python :: 3
16
16
  Classifier: Programming Language :: Python :: 3.6
17
17
  Classifier: Programming Language :: Python :: 3.7
18
- Requires-Dist: tencentcloud-sdk-python-common<4.0.0,>=3.1.103
18
+ Requires-Dist: tencentcloud-sdk-python-common<4.0.0,>=3.1.104
19
19
 
20
20
  ============================
21
21
  Tencent Cloud SDK for Python
@@ -0,0 +1 @@
1
+ tencentcloud-sdk-python-common<4.0.0,>=3.1.104
@@ -1 +0,0 @@
1
- tencentcloud-sdk-python-common<4.0.0,>=3.1.103