SQL(及存储过程)跑得太慢怎么办?

42 篇文章 59 订阅
订阅专栏

  SQL作为目前最常用的数据处理语言,广泛应用于查询、跑批等场景。当数据量较大时,使用SQL(以及存储过程)经常会发生跑得很慢的情况,这就要去优化SQL。优化SQL有一些特定的套路,通常先要查看执行计划来定位SQL慢的原因,然后针对性改写来优化SQL,比如对于连续数值判断可以用between来替代in,select语句指明字段名称,用union all替代union,把exists改写成join等。当然还有一些工程上的优化手段,如建立索引,使用临时表/汇总表等,优化的方法有很多,相信各位DBA都不会陌生。

在这里插入图片描述

  但遗憾的是,仍然有相当多情况无论怎样优化都不可能跑得更快。这里做 SQL 性能优化真是让人干瞪眼 介绍了一些,并做了相应的技术分析。由于其理论基础关系代数的局限,SQL缺乏离散性和有序集合等特性的支持使得SQL在表达某些高性能算法时异常困难,甚至完全写不出来,只能采用比较笨的低性能算法,眼睁睁地看着硬件资源被白白浪费。在 写着简单跑得又快的数据库语言 SPL 中有对SQL理论基础缺陷的通俗解释。也就是说,SQL的慢是理论性的,这种问题仅仅由数据库在工程层面优化只能局部改善(确实有不少商业数据库能够自动识别某些SQL并转换成高性能算法),而不能根本地解决问题(情况复杂时数据库优化引擎都会“晕”掉,只能按SQL的书写逻辑执行成低性能算法)。理论性的缺陷当然也不能寄希望于更换数据库而得到解决,只要还是用SQL,即使采用分布式数据库、内存数据库也还是这种情况,在消耗更大成本的资源后当然也能有一定的性能提升,但和硬件本应能够达到的性能仍然有巨大的差距。

  那还能怎么办?

  那就不能再用SQL!也就不能再用关系数据库了。

  那用什么?

  SQL描述不了这些高性能算法,用Java,C++行吗?

  没问题!从理论上讲,Java、C++什么算法都能实现,而且因为可以控制计算机底层的动作,这类代码通常可以跑出很好的速度(只要程序员能力不是太差)。

  不过,不要高兴得太早,虽然都写得出来,但由于这些开发语言过于原生,本身没有提供什么面向数据处理的高性能计算类库,想实现这些算法就必须从头实现,而这恐怕要累死。以哈希关联为例,Java实现至少要写几百行代码,不仅要设计合适的哈希函数,还要解决可能出现的哈希冲突,这一套下来的工程量可不小;还有在Java中进行多线程编程也并非易事,但并行计算又是提升计算性能的有效手段。类似的,涉及结构化数据计算的算法还有很多,这些都自己来做的复杂度可想而知。如果一个计算的实现过于复杂,其开发代价已经远远超过性能优化本身,那也就没有优化的意义了。

  Python也面临类似的问题,虽然在结构化数据计算类库方面要比Java丰富得多,但并没有提供必要的高性能算法库和存储方案,比如没有提供为大数据服务的游标类型及相关运算,也没提供有效的并行机制。想要实施那些高性能算法也只能自己开发,但Python作为解释执行语言,本身运行效率不高,在此基础上再开发的算法也往往达不到高性能要求。同样,Scala也缺乏足够的高性能计算类库,自己编写的算法同样复杂度相当高,对于不熟悉这些算法的程序员来讲,从头实现的代码的运行效率往往还不如努力优化后商用数据库SQL的速度。

  那就只能忍受SQL的慢了吗?

  还可以用SPL!

SPL和高性能

  开源SPL(Structured Process Language),一个专门面向结构化数据处理的程序语言。使用SPL可以让原本SQL跑得慢的计算变快。

  为什么SPL能跑得快?是拥有了什么改变硬件性能的黑科技吗?

  那倒没有。软件改变不了硬件的计算性能,SPL也一样。简单来说,SPL快就是上面说的,要使用更高性能的算法。SPL中提供了大量基础的高性能算法类库,基于这些算法库实现的代码可以有效减少计算量,而我们做计算就是组合运用这些算法,每种计算都快一些,那整体上就会快很多,从而达到提升计算性能的目的。

  SPL设计的这些高性能算法,像遍历复用、有序归并、外键预关联、标签位维度、并行计算等,都已经封装好。这其中有很多算法都是SPL独创的,在业内也是首次出现。

在这里插入图片描述

  基于这些封装好的算法库,再写程序会就很方便,拿来直接用而不需要从头自己开发,不仅性能高,开发也快。从这个角度来看,跑得快和写着简单其实是一回事,就是能高效率地编写高性能算法。反观Java、C++、Python、Scala由于缺少这些算法库,想要实现高性能也就很难了。

  这里有一些SPL 中高性能算法的例子及与SQL的对比用例:
性能优化技巧:遍历复用
性能优化技巧:TopN
性能优化技巧:预关联
性能优化技巧:外键序号化
性能优化技巧:附表
性能优化技巧:单边分堆
性能优化技巧:有序分组

  SPL采用和SQL不同的观念看待同一个计算任务,继而可以采用不同(更低)复杂度的计算方法。

  在实战中,SPL目前已经做过不少性能优化案例,少则提速数倍,多则数十倍,极端情况还有提速上千倍的,提速一个数量级基本上是常态。

  比如在优化某保险公司车险保单跑批的案例( 开源 SPL 优化保险公司跑批优从 2 小时到 17 分钟 )中,使用SPL将计算时间从2小时缩短到17分钟,同时代码量减少了2/3。这里使用了SPL特有的遍历复用技术,可以在对大数据的一次遍历过程中实现多种运算,有效地减少外存访问量。这个案例涉及对一个大表进行三次关联和汇总的运算,使用SQL要将大表遍历三次,而使用SPL只需要遍历一次,并在关联运算上也采用了不同的方法,因此获得了巨大的性能提升。

  还有在 开源 SPL 将银行手机账户查询的预先关联变成实时关联 的案例中,使用SPL将原本只能预关联的手机账户查询变成实时关联,同时服务器数量从6台降为1台。这里充分利用了SPL的有序存储机制,一次性读取整个账户数据时可以有效减少硬盘时间(物理存储连续),再借助区分维表和事实表的外键实时关联技术使用单机就能完成实时关联查询,性能提升明显,硬件需求也降低了许多。

这里还整理了一些常见的业务场景,可以利用SPL的算法库来实现的高性能:

如何让 JOIN 跑得更快?

内存数据库如何发挥内存优势?

列存数据仓库怎样更高效

高并发帐户查询怎么做?

多标签用户画像分析跑得快的关键在哪里?

双维有序结构提速大数据量用户行为分析

  关于SPL高性能的原因在 快出数量级的性能是怎样炼成的 里也进行了详细分析,并给出了更多实际优化案例供参考。

进一步讨论

  说到这里你可能会想,那是不是学会SPL语法就能把计算跑得快了?

  也没这么简单!

关于算法

  使用SPL可以获得更高性能不是因为SPL语法,SPL语法虽然有些特色,但并不是跑得快的根本原因。最关键的是掌握和运用高性能算法

  实现性能优化有两步:第一步设计出低复杂的计算方案,第二步用足够低的成本实现它。其中更关键的是第一步,这需要由有一定经验和知识储备的程序员来做(即掌握和运用高性能算法),第二步才是用SPL来做。换句话说,SPL并不负责设计解决问题的方法,而只是负责让解法更容易实现出来。

  SPL语法很简单,比 Java 容易得多,两小时就能基本上手,两三周就能比较熟练了。但算法却没那么简单,需要认真学习反复练习才能掌握。反过来,只要掌握了算法,用什么语法就是个相对次要的问题了(当然用 SQL 这种太粗线条的语言还是不行)。这就像给病人看病,找出病理原因后,能分析出什么成分的药能管用。无论直接购买成药(使用封装过的 SPL),还是上山采药(使用 Java/C++ 硬写),都可以治好病,无非就是麻烦程度和支付成本不同。

  因为实际中很少使用,有不少应用程序员工作几年后都把大学时代学过的数据结构和算法课程内容忘了,而不理解这些基础算法知识时也就没办法设计出高性能算法方案。为此,SPL设置了专门的高性能专题,不仅涵盖高性能算法与优化技巧,还有性能优化课程与性能图书来授人以渔。

高性能计算专题

性能优化图书

性能优化课程

关于存储

  和算法密切相关的,高性能计算还有一个关键点是数据存储,高性能计算离不开合理的数据存储方式。使用SPL实施高性能计算时也不能再基于数据库来做,需要将数据从数据库里搬出来重新组织。

  为什么呢?

  慢的数据计算任务可以分为计算密集型和数据密集型两大类。单纯的计算密集型任务涉及的数据量不大而只是计算量很大,计算量大并不是由于数据量大造成的,这样不用改变存储方式,只要实施了好的计算方法也能大幅提升性能,也就是说,可以继续在原有的存储方式(比如数据库)上使用SPL来优化性能。而数据密集型任务涉及的计算量也很大,但计算量大主要是由数据量大造成的,这时候如果不改变存储方式,数据读取时间很可能会很长,即使能把计算时间优化到0,整体运算时间也不能得到有效的优化。

  遗憾的是,我们面临的计算慢的场景绝大部分属于数据密集型计算。如果数据还存在数据库中,而数据库取数接口(如JDBC)通常又非常慢,将数据读出就要消耗很长时间(IO效率很低),经常远远超过后续SPL计算的时间,这也就不可能达到优化效果了。而且,SPL中有相当多的算法也对存储组织有要求,比如单边分堆算法就要求有序的存储方式,而常规关系数据库无法满足这个前提,这些算法也无法实施了。

  为了解决这个问题,SPL提供了自有的存储机制,直接采用文件系统,将数据从数据库导出到特定格式的文件中,不仅可以获得更高的IO存取效率以及文件系统灵活的管理能力,还可以充分利用自有格式的列存、有序、压缩、并行分段等数据存储优势,从而高效地发挥高性能算法效力。

  使用文件存储数据还可以有效减少数据入库的时间,进一步提升计算性能。有些计算场景不仅要从数据源读,还要将计算结果落地,存入数据库以方便后续计算使用。像ETL就是典型的读写并存的计算,还有某些大数据计算或复杂计算需要将中间结果暂存,后续计算还需要再使用的情况。我们知道,数据库写入是非常慢的动作,伴随写入的计算场景性能自然低下。这时就可以将原本需要入库的数据存储在文件中(虽然这是工程方面的优势,但仍可获得接近数量级的读写性能提升),再利用SPL的文件计算能力直接计算,从而实现高性能。

关于T+0

  如果把数据都移到数据库外,那么是不是就无法完成实时数据计算了?毕竟数据总是在不断地产生。
  
没有问题。

  对于全量T+0实时查询,SPL提供了多源混合计算的能力以满足这类场景。冷数据量大且不再变化使用SPL的高性能文件存储,这样可以获得更高地计算性能;热数据量小仍然存放在原有数据源中,SPL直接读取计算(支持多样性数据源),由于热数据量并不大,直接基于生产数据源查询也不会对其造成太大影响,访问时间也不会太长。冷热数据混合计算,就可以获得针对全量数据的T+0实时查询。我们只要定期将变冷的数据固化到SPL的高性能存储中,原数据源只需要保持少量近期新产生的热数据即可。整体架构如下:

在这里插入图片描述

如何开始

  从前面的分析可以知道,完成性能优化任务必须熟悉高性能算法和存储机制,但从上面的课程图书也可以看出来,这些内容并不少,都要融会贯通也不是很容易的事。特别是很多程序员都习惯了SQL的思维方式,很难跳出这个窠臼。面对一个性能优化任务,即使有了开源SPL这样的有利武器,也常常有点无从下手。打个比方,一个赶马车的高手想跑得更快时,会习惯于寻找缰绳和鞭子,而对于初次见到的汽车上的方向盘和油门却会感到一头雾水。

  为此,SPL团队也提供相应的咨询服务:你可以把遇到的性能问题拿过来与我们一起讨论和设计优化方案,必要的时候还可以进行POC。

  我们通常关心这样一些必要的问题信息:业务场景、面临痛点、当前计算的数据量和并发量以及响应时间,如果还能提供SQL脚本、表结构和测试数据就更好了。留个邮箱方便交流: spl@scudata.com。

  相信我们,从不失手!

  经历过一两个案子,程序员们就会熟悉SPL的思维方式(理解了方向盘和油门),以后再自己做性能优化就不是问题了。

  天下武功,唯快不破,但只有掌握了快的本质和方法才能所向无敌。你说是不是?

SPL资料

  • SPL下载
  • SPL源代码
Mysql学习总结(74)——慢SQL!压垮团队的最后一根稻草!
科技D人生
06-21 595
背景 今天只讨论一种应用模式,就是最普遍的,前端实时调用后端Web服务,服务端经过DB的增删改查作出响应的应用。至于离线数据分析,在线规则引擎模板执行,流式计算等不在本次讨论范畴。 一、重SQL还是重Java的开发场景演示 先看一个例子吧,需求是:查询出每个学生所在的城市名以及分数展示到前端。用经典的Controller、Service、DAO开发模式描述,设计数据库表如下: (1)重...
大数据计算,如何优化SQL _聚合函数 sum 耗时(1)
最新发布
2401_84181193的博客
05-01 332
-遍历中的第三种分组。left join shipper sh on o.shid=sh.# --订单表运货商号通过序号#关联运货商表。left join supplier su on o.suid=su.#–订单表供应商号通过序号#关联供应商表。left join employee e on o.eid=e.# --订单表的雇员编号通过序号#关联雇员表。--遍历中的第二种分组。left join city c on o.cid = c.# --订单表的城市编号通过序号#关联城市表。
存储过程运行超慢解决一例
weixin_34075268的博客
10-10 470
利用国庆假期,将数据库从8i升级到10G,测试人员发现有一个存储过程运行的非常慢,在8i下需要不到1秒的时间,10G下几分钟竟然不出来.而这个存储过程非常长,有两千行,经过几代人的修改,已经很难改了.着急!!! 修改Optimizer_mode由all_rows到rule后,请测试人员再试,恢复之前的速度,虚惊一场. 转载于:https://www.cnblo...
【云原生】SQL(及存储过程太慢怎么办?
码农飞哥
07-19 9327
SQL太慢不用慌
我的 Hive 为什么不起来/得慢?看看是不是少了这几行代码?
小数据研究院
11-30 4947
《饮食男女》开头说:“人生不能像做菜,把所有的料都准备好了才下锅。” 但做大数据挖掘不一样,MapReduce 不同于人生,一定要把准备工作做好了,才能顺利运行后面的步骤。如果你的 HiveQL 代码没毛病,却一运行就出现 Fail 提示,可以看看,是不是少了下面哪项准备工作? 指定队列 set mapred.job.queue.name=queue01; //自己指定一个队列 在 H...
Oracle 存储过程优化(一)
s9434的博客
05-16 2970
Oracle 存储过程优化(一) 当前遇到的问题: 1、一个存储过程一个多小时。 2、拎出来单独(只select不insert)的时候速度不慢,使用PLSQL可以很快查看到结果。 针对以上问题,在多次测试发现,使用PL/SQL工具select出来的结果很快就会出来,但是当获取最后页的时候却很慢。如图一所示。 点击 获取"最后一页"时,速度超级慢。因此考虑是在显示的时候又有计算的地方。 通过查看代码知,在select的时候有一段sql。 如下: select cust_payright_typ,
hive 很慢解决办法
热门推荐
暮雨听轩的专栏
04-09 1万+
hive 很慢:运行一下一下语句:set mapred.child.java.opts=-Xmx1024m;set mapreduce.map.java.opts=-Xmx1310m;set yarn.app.mapreduce.am.command-opts=-Xmx2457m;set mapreduce.reduce.java.opts=-Xmx2620m;...
MySQL数据库查询优化技巧:让你的SQL语句得更快,提升查询性能
[MySQL数据库查询优化技巧:让你的SQL语句得更快,提升查询性能](https://opengraph.githubassets.com/fc14326b2f1b44a5b125a4c240126fa36a161b3c1bf1e0a4138daa58e0c5d2da/Significant-Gravitas/AutoGPT) ...
基于Oracle PLSQL存储过程性能优化方法案例
秋夜无霜
05-15 7923
【前言】:最近忙着一个项目,Oracle有个JOB基于定时任务处理,经过我多次冥思苦索优化后,该存储过程最终依然需要花费1小时6分。这个JOB处理是为了生成年度、季度、月度三张统计分析报表以供用户查询使用,但客户知情后,指出必须实现时时查询汇总。由于鄙人技术能力有限,领导安排协调oracle高手来上海协助解决该问题,经过两天的学习,从中也跟这位师父学到不少东西,因此,今天特此总结,以供分享学习。
数据仓库的性能优化方法
AI天才研究院
01-07 657
1.背景介绍 数据仓库是一种用于存储和管理大量历史数据的系统,它通常用于支持企业的决策制定和数据分析。随着数据规模的增加,数据仓库的性能优化成为了一个重要的问题。在这篇文章中,我们将讨论数据仓库性能优化的方法和技术,以及相关的算法和实例。 2.核心概念与联系 数据仓库性能优化的核心概念包括: 1.数据仓库的查询性能:查询性能是指数据仓库系统对于用户查询请求的响应速度和效率。查询性能是数据仓...
Hive Server 运行 SQL 慢排查手册
houzhizhen的专栏
06-10 2458
对于分布式系统, 任何地方出问题都有可能导致任务运行慢。 本手册仅排查通过 Hive Server 执行 SQL 任务。通过 Hive Server 运行 SQL 主要设计 4 个部分,分别是 MYSQL 数据库、 Hive Metastore、Hive Server 和客户端。每个部分都可能对性能造成影响。MYSQL 数据库: 存储 Hive 的元信息,如表有哪些字段,只有一个 MYSQL 数据库。 Hive Metastore:通过 api 接口对 Hive Server 提供元信息服务。多个 Hive
写着简单得又快的数据库语言 SPL
02-13 1320
数据库语言的目标要说清这个目标,先要理解数据库是做什么的。数据库这个软件,名字中有个“库”字,会让人觉得它主要是为了存储的。其实不然,数据库实现的重要功能有两条:计算、事务!也就是我们常说...
存储过程执行速度优化
颜朵ccy的博客
08-23 7193
存储过程做的报表在实际运用中时快时慢:   1.首先查看存储过程中是否有很多重复的实体表(一般给报表写存储过程,第一步就是使用临时表);     2.如果反复使用的实体表很多,就要考虑将这个实体表最小范围的数据放到临时表中,这样就可以大大提高查询效率;     3.如果前两条都做到了还是很慢,就分步执行你的存储过程,看看慢在哪个SQL。     4.如果临时表做到了,问题基本就是在临时表提取数据的...
存储过程很慢单独执行很快_DB2中存储过程执行慢问题故障处理
weixin_39719427的博客
12-19 1977
其实这个问题是以前同一个客户遇见的问题,当时一个工程师解决后记录的过程如下:应用同事反映但是对应到执行存储过程,执行了2,3个小时了,还没出来结果。存储过程主要是执行一条update sql语句,单独将语句拿出来,clp命令行执行很快,2-3s即可执行完成。执行的SP:call pdw.P_OCS_ACTIVE_UPDATE('20120304',?)存储过程主要业务SQL:/**********...
SQL Server存储过程性能瓶颈:参数嗅探解析
SQL Server中,存储过程相对于直接运行SQL语句可能显得相对较慢,这主要有以下几个原因: 1. **编译开销**:存储过程在创建时进行一次编译,之后每次执行只需调用,无需重新编译,节省了每次执行时的编译时间。...
写文章

热门文章

  • 父母在人生尚有来处,父母去人生只剩归途!@程序员们 822516
  • SQL优化最干货总结 - MySQL(2020最新版) 763453
  • MySQL中特别实用的几种SQL语句送给大家 641609
  • JAVA高频216道面试题+答案!!面试必备 412597
  • java.net.UnknownHostException 解决方法 208281

分类专栏

  • 备战软考 - 信息系统项目管理师 3篇
  • MySQL江湖路 63篇
  • Java岗大厂面试百日冲刺 - 每日3题 60篇
  • 好奇心害死Java人 42篇
  • 我程序生涯那些事儿 25篇
  • 不会点儿Linux可还行? 22篇
  • 开发工具分享(自取不谢) 17篇
  • 常用字典信息数据(自取) 1篇
  • 扣着算盘写算法 1篇
  • 那些羞涩的报错解决记录 1篇
  • 人工智能吃瓜人 7篇
  • Git需要知道点儿啥 2篇
  • 开发工具那些事儿 6篇
  • elasticSearch 3篇
  • Oracle 3篇
  • 操作系统 2篇
  • 前端开发 7篇

最新评论

  • 聊聊统一认证中的四种安全认证协议(干货分享)

    Mars0505: refreshToken

  • 软考高项(第四版)十五至尊图最新总结

    weixin_50709708: 中级还是高级,怎么实现,求指导

  • 成功解决:1136 - Column count doesn‘t match value count at row 1

    2401_87314701: 请问一下,我插入的数据表比当前数据表多了一行应该怎么解决呀?

  • delete、truncate、drop的区别有哪些,该如何选择

    囧欧歌打: 最后的比喻直接给我任督二脉打通了

  • windows下快速安装nginx 并配置 开机自启动

    余聪元: 兄弟们需要注意WinSW工具和nginx的版本兼容,我用博主这个可以正常开启服务并且可以停止服务,其他版本我用了发现可以开启服务,也可以关闭服务,但是关闭服务实际上并没有把全部进程杀掉

最新文章

  • 聊聊统一认证中的四种安全认证协议(干货分享)
  • 190 → 169,50天瘦20斤随感
  • 程序员参加5月软考高项考试的体会分享,是机会还是坑?
2023年5篇
2022年17篇
2021年88篇
2020年103篇
2019年47篇

目录

目录

评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_陈哈哈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳坪山网站建设公司放心的网站优化推广价格优惠大数据网站优化越来越好扬中市网站seo优化排名罗湖网站关键词优化哪家强月嫂行业网站优化获客西昌网站优化定做峄城优化网站怎么优化php网站云浮企业网站优化哪家好网站架构seo优化华容区网站排名优化彭州市网站优化软件外贸seo网站优化太原家居行业网站优化推广怎么样网站优化要点安徽网站首页优化去哪找大悟县网站排名优化要多少钱什么样的网站利于优化医疗保健网站优化获客焦作网站seo优化排名华容网站优化公司优化网站排名注意事项教程西乡小企业网站优化网站怎么优化蕉云速捷好青浦区推广网站优化价格网站自动优化怎么样宁波海曙区网站优化定制网络营销网站优化软件红桥区网站关键词优化哪家便宜企业网站seo优化方法找哪些香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

深圳坪山网站建设公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化