基于回报的慢查询优化建议
2025-11-16 12:19
在MySQL 5.7之中,这些操作者蒙受的当前绝对值都可以进自为备有。为了幅度度出原先建新议书的总蒙受,还须要概要一些数据资料,如备注数据资料幅度尺寸、表单资料和书目信息等。MySQL的蒙受最佳化筒框架主体如下由此可知简述:
蒙受框架3、基于蒙受的书目预设
还是继续拿上述的SQL select * from sync_test1 where name like 'Bobby%' and dt> '2021-07-06'为例,我们看看MySQL最佳化筒是如何根据蒙受框架预设书目的。首先,我们这样一来在建新备注时加入四个候选书目。
Create Table: CREATE TABLE 于大sync_test1于大 (
于大id于大 int(11) NOT NULL AUTO_INCREMENT,
于大cid于大 int(11) NOT NULL,
于大phone于大 int(11) NOT NULL,
于大name于大 varchar(10) NOT NULL,
于大address于大 varchar(255) DEFAULT NULL,
于大dt于大 datetime DEFAULT NULL,
PRIMARY KEY (于大id于大),
KEY 于大IX_name于大 (于大name于大),
KEY 于大IX_dt于大 (于大dt于大),
KEY 于大IX_dt_name于大 (于大dt于大,于大name于大),
KEY 于大IX_name_dt于大 (于大name于大,于大dt于大)
) ENGINE=InnoDB
通过拒绝执自为explain显露原先MySQL再度预设了IX_name书目。
mysql> explain select * from sync_test1 where name like 'Bobby%' and dt> '2021-07-06';
+----+-------------+------------+------------+-------+-------------------------------------+---------+---------+------+------+----------+------------------------------------+
id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
+----+-------------+------------+------------+-------+-------------------------------------+---------+---------+------+------+----------+------------------------------------+
1 | SIMPLE | sync_test1 | NULL | range | IX_name,IX_dt,IX_dt_name,IX_name_dt | IX_name | 12 | NULL | 572 | 36.83 | Using index condition; Using where |
+----+-------------+------------+------------+-------+-------------------------------------+---------+---------+------+------+----------+------------------------------------+
然后再继续锁住MySQL监控最佳化筒Trace功能。可以显露原先,不用预设其他三个书目的情况均是因为在其他三个书目上常用range scan的蒙受均>= IX_name。
mysql> select * from INFORMATION_SCHEMA.OPTIMIZER_TRACEG;
*************************** 1. row ***************************
TRACE: {
"rows_estimation": [
{
"table": "于大sync_test1于大",
"range_analysis": {
"table_scan": {
"rows": 105084,
"cost": 21628
},
"analyzing_range_alternatives": {
"range_scan_alternatives": [
{
"index": "IX_name",
"ranges": [
"Bobbyu0000u0000u0000u0000u0000
],
"index_dives_for_eq_ranges": true,
"rowid_ordered": false,
"using_mrr": false,
"index_only": false,
"rows": 572,
"cost": 687.41,
"chosen": true
},
{
"index": "IX_dt",
"ranges": [
"0x99aa0c0000
],
"index_dives_for_eq_ranges": true,
"rowid_ordered": false,
"using_mrr": false,
"index_only": false,
"rows": 38698,
"cost": 46439,
"chosen": false,
"cause": "cost"
},
{
"index": "IX_dt_name",
"ranges": [
"0x99aa0c0000
],
"index_dives_for_eq_ranges": true,
"rowid_ordered": false,
"using_mrr": false,
"index_only": false,
"rows": 38292,
"cost": 45951,
"chosen": false,
"cause": "cost"
},
{
"index": "IX_name_dt",
"ranges": [
"Bobbyu0000u0000u0000u0000u0000
],
"index_dives_for_eq_ranges": true,
"rowid_ordered": false,
"using_mrr": false,
"index_only": false,
"rows": 572,
"cost": 687.41,
"chosen": false,
"cause": "cost"
}
],
"analyzing_roworder_intersect": {
"usable": false,
"cause": "too_few_roworder_scans"
}
},
"chosen_range_access_summary": {
"range_access_plan": {
"type": "range_scan",
"index": "IX_name",
"rows": 572,
"ranges": [
"Bobbyu0000u0000u0000u0000u0000
]
},
"rows_for_plan": 572,
"cost_for_plan": 687.41,
"chosen": true
}
}
示意由此可知我们根据蒙受框架来说明了一下蒙受的幅度度现实生活:
停下来正因如此备注显像的蒙受:io_cost + cpu_cost = (数据资料页取值 * io_block_read_cost)+ (数据资料以此类推 * row_evaluate_cost + 1.1) = (data_length / block_size + 1)+ (rows * 0.2 + 1.1) = (9977856 / 16384 + 1) + (105084 * 0.2 + 1.1) = 21627.9。 停下来二级书目IX_name的蒙受:io_cost + cpu_cost = (预期之内以此类推 * io_block_read_cost + 1) + (数据资料以此类推 * row_evaluate_cost + 0.01) = (572 * 1 + 1) + (572*0.2 + 0.01) = 687.41。 停下来二级书目IX_dt的蒙受:io_cost + cpu_cost = (预期之内以此类推 * io_block_read_cost + 1) + (数据资料以此类推 * row_evaluate_cost + 0.01) = (38698 * 1 + 1) + (38698*0.2 + 0.01) = 46438.61。 停下来二级书目IX_dt_name的蒙受: io_cost + cpu_cost = (预期之内以此类推 * io_block_read_cost + 1) + (数据资料以此类推 * row_evaluate_cost + 0.01) = (38292 * 1 + 1) + (38292 * 0.2 + 0.01) = 45951.41。 停下来二级书目IX_name_dt的蒙受:io_cost + cpu_cost = (预期之内以此类推 * io_block_read_cost + 1) + (数据资料以此类推 * row_evaluate_cost + 0.01) = (572 * 1 + 1) + (572*0.2 + 0.01) = 687.41。足幅度说明
幅度度结果在负数上有偏离,因为MySQL常用%g打印浮点数,负数确实会以最短的方式将举例来说。 除“+1.1 +1”这种调节绝对值外,Cost幅度度还确实会出原先现+0.01, 它是为了避免index scan和range scan出原先现Cost的竞争。 Cost幅度度是基于MySQL的当前变幅度备有,如果Cost Model变幅度转变,optimizer_switch的预设不尽不同,数据资料分布不尽不同都确实会造成了再度Cost的幅度度结果不尽不同。 data_length可浏览information_schema.tables,block_size当前16K。4、基于蒙受的书目之中选设想
如果不想借助MySQL最佳化筒给来得慢浏览幅度度出原先最佳书目,那么须要单纯地在销售业务备注上填充所有候选书目。对于线上销售业务来说,这样一来填充书目的星期密闭费用太高,是不可接受的。MySQL最佳化筒选最佳书目用到的数据资料是书目表单资料和数据资料,所以我们不想是否是可以通过给它共享候选书目的这些数据资料,而非单纯填充书目的这种方式将来解决问题缺陷。
通过深入实地调查MySQL的示例结构设计和最佳化筒程序,我们发现是可自为的:一一小实际上于Server层的frm明文之中,比如书目假定;另一一小实际上于Engine层之中,或者通过加载Engine层的接口变数来赚取,比如书目之中某个佩的不尽不同绝对值取值、书目占据的页面尺寸等。书目就其的信息,如下由此可知简述:
基于蒙受的书目之中选设想因为MySQL本身就默许自订加载变速箱,所以书目之中选设想是紧密结合一个默许虚有假书目的加载变速箱,在它上面建新立机器箱含候选书目的空备注,再继续收集检验数据资料,幅度度出原先数据资料共享给最佳化筒,让最佳化筒投票第一时间最优书目,整个加载关系如下由此可知简述:
基于蒙受的书目之中选设想三、书目之中选解决问题缺陷
因为加载变速箱本身并就其官方共享咨询服务的战斗能力,这样一来在MySQL Server层修改也难以维护,所以我们将整个书目之中选种系统拆掉分为默许虚有假书目的Fakeindex加载变速箱和官方共享咨询服务的Go-Server两一小,主体架构由此可知如下:
架构由此可知首先简短概要一下Fakeindex加载变速箱,这是一个轻幅度级的加载变速箱,负责将书目的就其接口浮传到Go-Server一小。因为它不必转用C++解决问题缺陷,与Go-Server间实际上串连语言加载的缺陷,我们常用了Go原生的轻幅度级RPC架构技术+cgo来避免扩展重幅度级的RPC开放性,也不必扩展第三方缺少机器箱。变数加载端口如下简述,MySQL最佳化筒加载Fakeindex的C++变数,变幅度转换成C语言,然后通过cgo加载到Go语言的法则,再继续通过Go自带的RPC客户端向咨询服务端筹划加载。
加载端口示意由此可知将重点项目阐述架构逻辑Go-Server一小,主要程序程序如下。
1、同一星期置校验
首先根据专业知识规章,剔除一些不默许通过填充书目来提高浏览可靠性的片中,如查种系统库的SQL,非select、update、delete SQL等。
2、提炼出原先关键佩名
这一步提炼出原先SQL举例来说来填充书目的候选佩名,除了预设证明了那时候where之中的佩填充书目,MySQL对排序、生成、备注相连、生成变数(如max)也默许常用书目来提高浏览可靠性。我们对SQL进自为词汇榕给定,在榕节点的where、join、order by、group by、生成变数之中提炼出原先佩名,作为书目的候选佩。绝对相比较的是,对于某些SQL,还必需结合备注结构设计才能准确地提炼出原先,比如:
select * from tb1, tb2 where a = 1,佩a归属tb1还是tb2各不相同谁唯一机器箱含佩a。 select * from tb1 natural join tb2 where tb1.a = 1,在自然相连之中,tb1和tb2当前常用了不同佩名进自为相连,但SQL之中并不用接踵而来原先这些举例来说于填充书目的佩。3、转化候选书目
将提炼出原先出原先的关键佩名进自为正因如此排佩即机器箱含所有的书目组合成,如佩A、B、C的所有书目组合成是['A', 'B', 'C', 'AB', 'AC', 'BA', 'BC', 'CA', 'CB', 'ABC', 'ACB', 'BAC', 'BCA', 'CAB', 'CBA'],但还必需剔除一些书目才能赢取所有的候选书目,比如:
之同一星期实际上的书目,如实际上AB,必需剔除AB、A,因为MySQL默许常用同一星期缀书目。 超过较大书目长度3072字节受限的书目。 一些暂时不默许的书目,如带地理数据资料类型佩的密闭书目。4、数据资料收集
这样一来从销售业务数据资料库收集,数据资料分为表单资料、数据资料、检验数据资料三一小:
表单资料:即备注的假定数据资料,机器箱括佩假定、书目假定,可通过show create table赚取。 数据资料:如备注的以此类推、备注数据资料尺寸、书目尺寸,可以通过浏览infromation_schema.tables赚取;已实际上书目的cardinality(关键绝对值:即书目佩的不尽不同绝对值取值,绝对值得越大,书目最佳化效用得越值得注意),可以通过浏览mysql.innodb_index_stats备注赚取。 检验数据资料:候选书目为有假书目,收集的数据资料并不机器箱含有假书目的数据资料,这里我们通过收集原备注的检验数据资料来幅度度出原先有假书目的数据资料。 数据资料收集示意由此可知概要检验数据资料的频域解法,好的频域解法应尽较大确实收集到符合原备注数据资料分布的检验。比如基于平滑随机频域的方式将select * from table where rand() < rate,然而它确实会给线上数据资料库遭受大幅度I/O的缺陷,严重时可引发数据资料库机件。所以我们转用了基于块的频域方式将:它概要了MySQL 8.0的直方由此可知频域解法,如对于一张100万的备注,收集10万以此类推,根据主键的最小绝对值较大绝对值将备注数据资料均分为100个上行,每个上行取一块1000以此类推据资料,收集数据资料的SQL,最后将收集到的数据资料装入频域备注之中。示例如下:
select A,B,C,id from table where id>= 1000 and id
select A,B,C,id from table where id>= 10000 and id
5、数据资料幅度度
示意由此可知譬如说两个架构数据资料的幅度度方式将。首先是records_in_range,最佳化筒在解决问题问题之内浏览时,如果可以用书目,就确实会加载该变数估算停下来该书目可软性出原先的以此类推,以此第一时间再度选用的书目。
比如,对于SQLselect * from table1 where A> 100 and B < 1000,候选书目A、B来说,最佳化筒确实会加载此变数在书目页A上估算A> 100有多少以此类推,在书目页B上估计B
其次是用以幅度度书目区分度的cardinality。如果这样一来看成上述公式:检验佩上不尽不同绝对值取值 * (原备注以此类推 / 检验备注以此类推), 如上述的候选书目A,根据检验总和出原先计有100个不尽不同绝对值,那么在原备注之中,该佩有多少不尽不同绝对值?一般以为是10,000 =100 *(1,000,000/100,000)。但这样幅度度不等同于某些片中,比如状态元组段,确实最多100个不尽不同绝对值。针对该缺陷,我们扩展最小值和两趟幅度度来绕开,程序如下:
第一趟幅度度:取检验数据资料一半来总和A的不尽不同绝对值取值R1,上行[min_id, min_id+(max_id - min_id) / 2]。 第二趟幅度度:取所有检验据总和A的不尽不同绝对值取值R2,上行[min_id, max_id] 幅度度最小值:R2/R1。 辨别最小值:如果最小值相等1.1,为固定绝对值100,否则根据频域比例翻转,为10,000。 数据资料幅度度6、候选书目蒙受归纳报告
这一步让最佳化筒帮助我们从候选书目之中投票第一时间最佳书目,主要程序如下:
建新机器箱含候选书目的备注:将候选书目装入原备注假定,并把加载变速箱改为Fakeindex,在之中选变速箱的mysqld上创建人新备注。 通过在之中选变速箱mysqld上explain format=json SQL,赚取最佳化筒预设的书目。绝对相比较的是,MySQL备注最多建新64个书目(二级书目),幅度度所有候选书目的确实时,常用的是六倍比指称数还恐怖的正因如此排佩解法。如下由此可知简述,随着佩数的上升,候选书目为数急剧回升,在5个候选佩时的书目组合成为数就超过了MySQL较大绝对值,显然不必满足一些简单SQL的供给。总和美团线上书目佩数分布后,我们发现,95%以上的书目佩数都
候选书目蒙受归纳报告但即便最多之中选3佩书目,在5个候选佩时其排佩为数85=也相比之下64。这里我们转用分立设想。如下由此可知简述,将所有候选书目拆掉分到多个备注之中,转用两次幅度度,先让MySQL最佳化筒投票第一时间同型一的最佳书目,可转用并自为幅度度保证时效性,再继续MySQL投票第一时间同型一所有最佳书目的最佳书目,该建新议书可以最多默许4096个候选书目,结合较大书目3佩受限,可以默许幅度度出原先17个候选佩的最佳书目。
候选书目蒙受归纳报告四、之中选密度保证
为了赢取书目之中选密度大致的主体数据资料,我们常用美团数据资料库最据统计一周的方以来得慢浏览数据资料,共246G、共约3万个SQL模板用例做了一个初步正确性。
第一时间密度保证从结果可以显露原先,种系统大体上能伸展到大一小的来得慢浏览。但还是确实会出原先现有罪的之中选,大致情况如下:
书目之中选幅度度出原先的Cost严重缺少检验数据资料的密度,在当备注数据资料分布不均或数据资料垂直确实会造成了数据资料出原先现误差,造成了之中投票第一时间出错书目。 书目之中选种系统本身实际上局限,从而造成了之中投票第一时间出错书目。 MySQL最佳化筒自身实际上的局限,造成了之中投票第一时间出错书目。因此,我们在销售业务填充书迄今为止后上升了书目的正确性正确性和效用监控两个程序,整个程序如下简述:
正因如此端口1、正确性正确性
因为迄今为止还就其大规模数据资料库硬碟快速催化反应的战斗能力,所以不必常用非常简单的硬碟数据资料做正确性。我们据统计似地指出,如果之中选书目在销售业务库上拿下很差的效用,那么在检验库也确实会拿下优异效用。通过确实地在检验库上单纯拒绝执自为SQL,并填充书目来正确性其正确性,正确性结果展示如下:
正确性正确性2、效用监控
受制于常用频域数据资料正确性的局限,所以当在制造自然环境书目填充先行在此之后,确实会第一时间对填充的书目进自为效用监控。一方面通过explain正确性书目是否是被确实用到,以及Cost是否是减小;另一方面用Flink动态监视该数据资料库的正因如此幅度SQL访问数据资料,通过对比书目填充同一星期后,该SQL的单纯拒绝执自为星期来辨别书目是否是必需。如果发既有性能指称标方面的之内,则第一时间警告原先通信系统,而今到DBA和研发人员。转化的报告如下:
效用监控3、建新模自然环境
当之中选端口出原先现缺陷时,这样一来在线上排查正确性缺陷的话,很较易给销售业务遭受违章,同时也增大了种系统的反应性。对此我们搭建新了离线建新模自然环境,依靠数据资料库硬碟紧密结合了和制造自然环境一样的数据资料源,并非常简单复刻了线上之中选端口的各个程序,在建新模自然环境音频异常与此就其,复现缺陷、排查根因,反复正确性改进型建新议书后再继续团购到制造种系统,进而不断最佳化既有种系统,提升之中选密度。
建新模自然环境4、正确性与此就其库
在团购现实生活之中,多半确实会出原先现改进型建新议书修整了一个Bug,遭受了来得多Bug的具体情况。能否做好书目之中选战斗能力的转回正确性,这样一来第一时间了之中选密度的反应性。于是,我们概要了阿里云的架构技术建新议书,计划紧密结合一个尽确实严谨的正确性与此就其库用以衡幅度书目之中选咨询服务战斗能力强弱。但考虑直接影响MySQL书目预设的环境因素数以百计,各环境因素间的组合成,SQL的简单性,如果根本原因去设计正则备注达式是是不切实际的,我们通过下佩法则管理系统收集正则备注达式:
依靠美团线上的丰富数据资料,以直接影响MySQL书目预设的环境因素特质为抓手,这样一来从正因如此幅度SQL和来得慢SQL之中掺入最单纯的与此就其,不断系统升级既有正确性与此就其库。 在制造的之中选种系统端口上埋点,则会收集异常与此就其,留住到既有的正确性与此就其库。 对于既有数据资料不用伸展到的排外片中,转用根本原因构造的建新议书,足幅度正则备注达式。 正确性与此就其库五、来得慢浏览休养生息开通
我们主要从星期维度的三个顺时针将来得慢浏览路中书目之中选,推广休养生息:
来得慢浏览休养生息开通1、无论如何-在历史上来得慢浏览
这类来得慢浏览不属于无论如何诱发的,并且一直实际上,为数并不多,休养生息驱动力偏低,可通过收集在历史上来得慢浏览会话发现,分为两类路中:
架构数据资料库:该类来得慢浏览一般来说确实会被周期性地重视,如来得慢浏览日报、月报,可这样一来将最佳化第一时间提同一星期转化出原先来,路中它们,亦同开通休养生息。 平常数据资料库:可将最佳化第一时间这样一来路中数据资料库该平台的来得慢浏览接口,让研发自助地预设休养生息哪些来得慢浏览。2、那时候-原先增来得慢浏览
这类来得慢浏览不属于现阶段诱发的,为数较少,不属于休养生息的重点项目,也可通过动态收集来得慢浏览会话发现,分为两类路中:
直接影响程度一般的来得慢浏览:可通过动态归纳来得慢浏览会话,对比在历史上来得慢浏览,定位出原先原先增来得慢浏览,并转化最佳化第一时间,为软件创建人新数据资料库确实性项,发稿休养生息。 直接影响程度较小的来得慢浏览:该类一般来说确实会引发数据资料库通信系统,如来得慢浏览造成了数据资料库Load过高,可通过机件诊断根因种系统,定位出原先说明的来得慢浏览SQL,并转化最佳化第一时间,及时推送到机件解决问题问题群集,增大机件解决问题问题时长。3、更进一步-潜在来得慢浏览
这类浏览不属于现阶段还不用被假定成来得慢浏览,随着星期推进确实变成转变成来得慢浏览,对于一些架构销售业务来说,多半确实会引发机件,不属于他们休养生息的重点项目,分为两类路中:
未团购的准来得慢浏览:项目作准备团购而扩展的原先的准来得慢浏览,可路中发布原先闻同一星期的集成正确性流水线,Java项目可通过 agentmain的代理方式将拦截被正则备注达式伸展到的SQL,再继续通过专业知识+explain定位出原先来得慢浏览,并转化最佳化第一时间,给软件在供给管理种系统上创建人新局限护航,解决问题后才能发布原先闻团购。 已团购的准来得慢浏览:该类不属于现阶段拒绝执自为星期较快的SQL,随着备注数据资料幅度的上升,确实会转变成来得慢浏览,最典型的就是正因如此备注显像,这类可通过上升来得慢浏览备有变幅度log_queries_not_using_indexes记录到来得慢会话,并转化最佳化第一时间,为软件创建人新数据资料库确实性项,发稿休养生息。六、项目运自为具体情况
现阶段,主要以原先增来得慢浏览为突破点,重点项目为正因如此备注显像之中选最佳化第一时间。迄今为止我们之同一星期明度路中了一小一小销售业务,共归纳了六千多条来得慢浏览,之中选了一千多条高效书目第一时间。另外,美团内外的研发同学们也可通过数据资料库该平台自助筹划SQL最佳化第一时间工单,如下由此可知简述:
RDS该平台筹划另外在美团内外,我们之同一星期和数据资料库通信系统直抵,解决问题缺陷了机件发现、根因归纳、解决问题建新议书的管理系统解决问题问题,极大地提高了机件解决问题问题可靠性。示意由此可知是一个展示与此就其,当数据资料库战斗群集发生通信系统,我们确实会拉一个机件群集,先通过根因定位种系统,如果定位出原先来得慢浏览遭受的,确实会马上加载SQL最佳化第一时间种系统,之中投票第一时间书目,整个解决问题问题程序是分钟档次,都确实会在群集上面推送最原先消息。如下由此可知简述:
通信系统诊断七、更进一步工程建新设
受制于美团日均诱发据统计亿档次的来得慢浏览数据资料,为知晓决缺陷对它们的诊断归纳,我们还须要提高种系统大规模的数据资料并发解决问题问题的战斗能力。另外,现阶段该种系统还是针对单SQL的最佳化,不用考虑维护原先书目遭受的蒙受,如清空额外的加载筒密闭,使写成操作者变来得慢,也不用受制于MySQL选错书目引发其他SQL的性能指称标之内。对于销售业务或者DBA来说,我们来得多关心的是整取值据资料库或者战斗群集某种程度的最佳化。
同业如阿里云的DAS则是站在说明来说的视角考幅度,整体考虑各个环境因素,举例来说须要创建人新的原先书目、须要改写成的书目、须要删除的书目,解决问题缺陷数据资料库性能指称标较大化提升,同时较大化增大加载筒密闭损耗。更进一步我们也将不断最佳化和改进型,解决问题缺陷相同基于Workload的说明来说最佳化。
>>>>请注意
MySQL Writing a Custom Storage Engine MySQL Optimizer Guide MySQL 直方由此可知 Golang cgo 阿里云-DAS之基于Workload的说明来说则会最佳化有系统 SQL诊断最佳化,以后就都转给数据资料库地方议会咨询服务DAS吧作者丨粟含
来源不明丨香港市民号:美团架构技术团队(ID:meituantech)
dbaplus贡献者爱戴广大架构管理人员写成稿,写成稿邮件:editor@dbaplus.cn
>>>>来得多数据资料库干货
来自工自为、之中自为、自始、民生、 平安、摩根士丹利、微众、 阿里、的产品云、字节的数据资料库实战分享, 分布式选型、迁移改造、智能运维等疑难, 帮你揪出!>>>>下载方式将
重视【dbaplus贡献者】香港市民号,往常回复【220318】赚取4期精选辑“数据资料库”主旨现场转播回看和PPT。
活动之中选
2022 Gdevops正因如此球性敏捷运维峰确实会·广州站将于6月17日举办,精选辑数据资料库受欢迎议题,共同探讨数据资料库停下来向架构技术融汇及国产化下的同样和突破,一小议题先于剧浮:
【平安银自为】数据资料库智能化运维有系统之机件自愈 【哔哩哔哩】B站均会其实的数据资料库保障 【浙江静止】“AN”移民潮下数据资料库智能运维的有系统与理性 【vivo】万级实例规模下的数据资料库安正因如此性保障有系统 【快手】快手在NewSQL数据资料库的探索与有系统 (持续系统升级……)点击镜像知晓来得多峰确实会信息及甄选:_track=SOHU
重视香港市民号【dbaplus贡献者】,赚取来得多原创架构技术文章和精选辑机器下载
。成都看白癜风哪里比较好重庆哪个妇科医院最好
宝芝林寿星补汁说明书
北京白癜风专家
关节僵硬药物用法
减肥
癫痫治疗
新冠后遗症
医院预约挂号
老人新冠

-
【NBA战况】布里奇斯26+11+4,罗齐尔25,黄蜂107-101打败爵士
北京整整3月26日,2021-22赛季NBA本赛季一直进行,猎鹰坐阵主场迎战费舍尔。终于猎鹰以107-101战胜费舍尔。 全场原始数据: 具体内容上半场:2

-
刘国梁做出新近决定!33岁女乒老将,刘国梁力邀担任新近职务!!
张怡宁做到了属于自己决定!33岁的女乒,女兵张怡宁,敦促他出任属于自己职务。 国乒的世界杯之前结束,澳门的决赛也之前结束,国乒还在更进一步总结自己的过剩。例如,谢杏芳回应,她不会退
- 01-31退出国家队?巴西3-0委内瑞拉,梅西:世界杯后将有重要决定!
- 01-31世界羽联官宣打假球!国羽世界冠军被缓刑3个月,林丹能否执教?
- 01-31太小了!欧文训练后名副其实KD嘲讽动作,阿杜曾用此动作直讽法国后卫
- 01-31麦克劳邵:芬奇教练是一个竞争者 任何方面都会信任他
- 01-31梅西:我就不倒地!对手必先踢后推又拽,还追不上他,已考虑离开了
- 01-31保利尼奥证实回归无望,理由太不正职!恒大急需留住的人却不是他
- 01-31鲍尔:唐斯上场就能打出非常稳定的表现 我们的防守还不赖
- 01-31巴萨夏窗签约敲定?或与顶级中场达成相反 科曼同时邀请另一球星
- 01-31萨巴莱塔自嘲阿圭罗9320时刻:抢我风头!我打进了赛季唯一进球
- 01-31逼平沙特国足与足协小组如释重负 出征最后一战相对轻松