PostgreSQL和MySQL区别
PostgreSQL 和 MySQL 有以下一些主要区别:
一、功能特性
1. 数据类型支持
- PostgreSQL:支持丰富的数据类型,包括数组、JSON、JSONB、hstore(键值对存储)、范围类型等。例如,可以直接在数据库中存储和查询 JSON 格式的数据,非常适合处理半结构化数据。
- MySQL:数据类型相对较为传统,虽然也在不断扩展,但在一些高级数据类型的支持上不如 PostgreSQL 丰富。例如,对 JSON 的支持是在较新版本中才逐步完善的。
2. 存储过程和函数
- PostgreSQL:提供强大的存储过程和函数语言 PL/pgSQL,以及其他多种语言支持(如 Python、Java 等)。可以编写复杂的业务逻辑并在数据库中执行,提高数据处理的效率和可维护性。
- MySQL:也支持存储过程和函数,但在功能和灵活性上相对较弱。例如,在 MySQL 中编写存储过程的语法相对较为简单,一些高级的编程特性可能不太容易实现。
3. 索引类型
- PostgreSQL:支持多种索引类型,如 B-tree、哈希、GiST(Generalized Search Tree,通用搜索树)、SP-GiST(Space Partitioned GiST)、GIN(Generalized Inverted Index,通用倒排索引)等。不同的索引类型适用于不同的查询场景,可以根据具体需求选择合适的索引来提高查询性能。
- MySQL:主要支持 B-tree 和哈希索引。虽然在大多数情况下能够满足基本的查询需求,但在处理一些复杂的查询场景时,可能不如 PostgreSQL 的索引类型灵活。
4. 事务和并发控制
- PostgreSQL:提供强大的事务处理能力,支持多版本并发控制(MVCC),可以确保高并发环境下的数据一致性和完整性。同时,PostgreSQL 对事务的隔离级别有严格的控制,可以根据不同的业务需求进行调整。
- MySQL:也支持事务处理,但在某些方面可能不如 PostgreSQL 稳定和强大。例如,在高并发环境下,MySQL 的事务处理可能会出现一些性能问题。
二、性能方面
1. 查询性能
- 在简单查询和小规模数据集上,MySQL 和 PostgreSQL 的性能可能相差不大。但在复杂查询、大数据集和高并发环境下,两者的表现可能会有所不同。
- PostgreSQL 通常在处理复杂查询和多表连接时表现较好,因为它的查询优化器更加智能,可以选择更优的执行计划。而 MySQL 在某些情况下可能需要手动进行查询优化。
- 对于大数据集,PostgreSQL 的索引和存储机制可能会使其在查询性能上更具优势。
2. 写入性能
- MySQL 在写入性能方面通常表现较好,尤其是在使用 InnoDB 存储引擎时。InnoDB 采用了一些优化技术,如缓冲池和预写日志(WAL),可以提高写入的效率。
- PostgreSQL 在写入性能上相对较弱一些,但它可以通过调整配置参数和使用合适的存储引擎(如 pg_xlog 等)来提高写入性能。
三、扩展性和高可用性
1. 扩展性
- PostgreSQL:具有良好的扩展性,可以通过插件和扩展模块来增加新的功能。例如,可以安装 PostGIS 插件来进行地理空间数据的处理。同时,PostgreSQL 支持水平扩展,可以通过复制和分区等技术来实现高可用性和可扩展性。
- MySQL:也可以通过主从复制、分区等技术进行扩展,但在扩展性方面可能不如 PostgreSQL 灵活。MySQL 的插件机制相对较为简单,新功能的添加可能需要对数据库进行较大的改动。
2. 高可用性
- PostgreSQL:提供多种高可用解决方案,如流复制、逻辑复制、同步复制等。可以根据不同的需求和场景选择合适的高可用方案,确保数据库的持续可用。
- MySQL:同样提供了主从复制、集群等高可用方案。但在一些高可用场景下,可能需要借助第三方工具来实现更复杂的高可用架构。
四、开源社区和支持
1. 开源社区
- PostgreSQL 拥有一个活跃的开源社区,开发者来自世界各地。社区不断地为 PostgreSQL 贡献新的功能、修复漏洞和提供技术支持。同时,PostgreSQL 的文档非常详细和全面,对于用户来说是一个很好的学习资源。
- MySQL 也有庞大的用户群体和活跃的社区。但在某些方面,MySQL 的社区可能更加商业化,一些高级功能可能需要付费才能使用。
2. 商业支持
- PostgreSQL 有一些商业公司提供支持和服务,如 EnterpriseDB 等。这些公司可以为企业用户提供专业的技术支持、培训和咨询服务。
- MySQL 被 Oracle 公司收购后,Oracle 也提供了商业支持。同时,还有很多第三方公司提供 MySQL 的支持和服务。
综上所述,PostgreSQL 和 MySQL 都有各自的优势和适用场景。选择哪个数据库取决于具体的业务需求、技术栈和团队经验等因素。如果需要处理复杂的数据类型、支持高级的查询功能和追求更好的扩展性和高可用性,PostgreSQL 可能是一个更好的选择。而如果对写入性能要求较高、更注重简单易用和广泛的商业支持,MySQL 可能更适合。
相关文章:

PostgreSQL和MySQL区别
PostgreSQL 和 MySQL 有以下一些主要区别: 一、功能特性 1. 数据类型支持 - PostgreSQL:支持丰富的数据类型,包括数组、JSON、JSONB、hstore(键值对存储)、范围类型等。例如,可以直接在数据库中存储和查…...

Android笔记(三十四):onCreate执行Handler.post在onResume后才能执行?
背景 偶然发现一个点,就是在onCreate执行Handler.post在onResume后才执行,以下是测试代码 多次运行的结果一致,为什么execute runnable不是在onCreate和onResume之间执行的呢,带着疑问撸了一遍Activity启动流程 关键源码分析 …...

动手学深度学习d2l包M4芯片 gpu加速
conda创建环境 CONDA_SUBDIRosx-arm64 conda create -n ml python3.9 -c conda-forge conda env config vars set CONDA_SUBDIRosx-arm64 conda activate mlpip安装包 pip install --pre torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/n…...

游戏引擎学习第35天
开场介绍 今天的任务是继续改进一个虚拟的瓦片地图系统,使其适合处理更大的世界。我们希望这个系统能管理大范围的游戏世界,其中包含按需存储的小区域。昨天,我们介绍了“内存区域”的概念,用于管理持久性存储。我们计划今天继续…...

Python 3 和 MongoDB 的集成使用
Python 3 和 MongoDB 的集成使用 MongoDB 是一个流行的 NoSQL 数据库,以其灵活的数据模型和强大的查询功能而闻名。Python 3 作为一种广泛使用的编程语言,与 MongoDB 的集成变得日益重要。本文将介绍如何在 Python 3 环境中集成和使用 MongoDBÿ…...

MperReduce学习笔记下
自定义InputFormat合并小文件 案例需求 无论hdfs还是mapreduce,对于小文件都有损效率,实践中,又难免面临处理大量小文件的场景,此时,就需要有相应解决方案。 案例分析 小文件的优化无非以下几种方式: …...

react + antd desgin 使用form功能时upload,radio,checkbox不能回显的问题
最近使用react开发 遇到form回显的问题 ,处理upload回显的问题,提示 react-refresh:160 Warning: [antd: Upload] value is not a valid prop, do you mean fileList? 查看文档后,在form.item 组件下有一个特殊属性 valuePropName 子节点的值…...

【NLP修炼系列之Bert】Bert多分类多标签文本分类实战(附源码下载)
引言 今天我们就要用Bert做项目实战,实现文本多分类任务和我在实际公司业务中的多标签文本分类任务。通过本篇文章,可以让想实际入手Bert的NLP学习者迅速上手Bert实战项目。 1 项目介绍 本文是Bert文本多分类和多标签文本分类实战,其中多分…...

OpenSSL 自建CA 以及颁发证书(网站部署https双向认证)
前言 1、前面写过一篇 阿里云免费ssl证书申请与部署,大家可以去看下 2、建议大家看完本篇博客,可以再去了解 openssel 命令 openssl系列,写的很详细 一、openssl 安装说明 1、这部分就不再说了,我使用centos7.9,是自…...

YOLOv11改进,YOLOv11添加U-Netv2分割网络中SDI信息融合模块,助力小目标检测
摘要 理论介绍 SDI模块的架构: 平滑卷积(SmoothConv):用于平滑特征图,帮助减少噪声并使得特征更加稳定。Hadamard积:用于在特征图中进行逐元素相乘(点乘),以加强语义信息和细节信息的融合。通道注意力(ChannelAttention):利用通道注意力机制来自动关注重要的特征通…...

flex布局 flex-end为什么overflow无法滚动及解决方法
flex-end为什么overflow无法滚动及解决方法 在使用Flexbox布局时,我们经常使用justify-content和align-items属性来定位子元素。其中,align-items属性用于控制子元素在交叉轴上的位置,例如顶部对齐、底部对齐或居中对齐等。当我们将align-it…...

从ground_truth mask中获取图像的轮廓图
引言 在图像取证领域,主要分为检测和定位两个方面。检测就是判断一张图片是否为伪造图,定位与传统意义上的语义分割任务相近,就是定位伪造像素的区域。如果单纯使用语义分割网络训练,只能获得次优解,而像多任务学习那样…...

Java项目实战II基于微信小程序的旅游社交平台(开发文档+数据库+源码)
目录 一、前言 二、技术介绍 三、系统实现 四、核心代码 五、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。 一、前言 随着移动互联网的迅猛发展,旅游已经成为人…...

开源即时通讯与闭源即时通讯该怎么选择,其优势是什么?
在选择即时通讯软件时,应根据企业的经营领域来选择适合自身需求的开源或闭源方案。不同领域对开源和闭源即时通讯的理念存在差异,因此总结两个点简要分析这两种选择,有助于做出更明智的决策。 一、开源与闭源的根本区别在于软件的源代码是否…...

【计算机网络】实验15:VLAN间通信的实现方法“单臂路由”
实验15 VLAN间通信的实现方法“单臂路由” 一、实验目的 加深对VLAN间通信的实现方法“单臂路由”的理解。 二、实验环境 Cisco Packet Tracer模拟器 三、实验过程 1.构建网络拓扑,并配置好主机的IP地址、子网掩码、默认网关,如图1,2所…...

数据库学习记录04
DDL【数据定义语言】 MySQL命名规则 数据库名不得超过30个字符,变量名限制为29个必须只能包含A-Z,a-z,0-9,_共63个字符不能在对象名的字符间留空格必须不能和用户定义的其他对象重名必须保证你的字段没有和保留字、数据库系统或常用方法冲突保持字段名和类型的一致…...

PDF文件打开之后不能打印,怎么解决?
正常的PDF文件是可以打印的,如果PDF文件打开之后发现文件不能打印,我们需要先查看一下自己的打印机是否能够正常运行,如果打印机是正常的,我们再查看一下,文件中的打印功能按钮是否是灰色的状态。 如果PDF中的大多数功…...

A* 算法 是什么?
A*(A-star)算法是一种启发式搜索算法,用于在图或网格中找到从起点到目标的最短路径。它被广泛用于路径规划问题,例如导航、游戏开发中的角色移动,以及机器人路径规划。 1. A 算法的基本概念* A* 算法结合了两种经典搜…...

ORM框架详解:为什么不直接写SQL?
想象一下,你正在开发一个小型的在线书店应用。你需要存储书籍信息、用户数据和订单记录。作为一个初学者,你可能会想:“我已经学会了SQL,为什么还要使用ORM框架呢?直接写SQL语句不是更简单、更直接吗?” 如…...

厘米级高精度RTK手持终端北斗卫星定位手持pda
RTK是一种测量技术叫“载波相位差分技术”,是实时处理两个测量站载波相位观测量的差分方法,将基准站采集的载波相位发给用户接收机,进行求差解算坐标,以此得到高精度坐标。随着技术的不断革新,GPS接收机也由原来只能用…...

Kafka-Connect源码分析
一、上下文 《Kafka-Connect自带示例》中我们尝试了零配置启动producer和consumer去生产和消费数据,那么它内部是如何实现的呢?下面我们从源码来揭开它神秘的面纱。 二、入口类有哪些? 从启动脚本(connect-standalone.sh&#…...

【STM32 Modbus编程】-作为主设备读取保持/输入寄存器
作为主设备读取保持/输入寄存器 文章目录 作为主设备读取保持/输入寄存器1、硬件准备与连接1.1 RS485模块介绍1.2 硬件配置与接线1.3 软件准备2、读保持寄存器2.1 主设备发送请求2.2 从设备响应请求2.3 主机接收数据3、读输入寄存器4、结果4.1 保持寄存器4.2 输入寄存器在前面的…...

Kubesphere上搭建redis集群
Kubesphere上搭建redis集群 版本:redis:6.2.3 1)挂载配置 redis.conf: cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 cluster-require-full-coverage no cluster-migration-barrier 1 appendonly yes …...

learn-(Uni-app)跨平台应用的框架
使用 Vue.js 开发所有前端应用的框架,开发者编写一份代码,可发布到iOS、Android、Web(包括微信小程序、百度小程序、支付宝小程序、字节跳动小程序、H5、App等)等多个平台。 跨平台:Uni-app 支持编译到iOS、Android、W…...

target_compile_definitions
这个接口给目标定义的宏,不能像C中定义的宏一样,尝试利用宏进行替换: cmake_minimum_required(VERSION 3.8) project(compile_definitions_pro)add_executable(main_exec src/main.cpp)set(SYSTEM_NAME "") if(CMAKE_SYSTEM_NAME S…...

浏览器同源策略、跨域、跨域请求,服务器处理没、跨域解决方案
目录 什么是同源策略什么是跨域发生跨域时,服务器有没有接到请求并处理响应:(两种情况) 如何解决跨域 什么是同源策略 概念: 同源策略是浏览器的一种安全机制,用于防止恶意网站对用户的敏感数据进行未经授…...

深入理解网络安全等级保护:保障信息安全的关键策略与实践
随着信息技术的飞速发展,网络安全问题日益凸显。为了应对这一挑战,网络安全等级保护制度应运而生,旨在确保不同等级的信息和信息系统的安全。本文将探讨网络安全等级保护的基本概念、重要性及其实践方法。 一、信息安全等级保护的基本概念 1…...

MySQL
InnoDB 引擎底层存储和缓存原理 到目前为止,MySQL 对于我们来说还是一个黑盒,我们只负责使用客户端发 送请求并等待服务器返回结果,表中的数据到底存到了哪里?以什么格式存放的? MySQL 是以什么方式来访问的这些数据&…...

新书速览|循序渐进Node.js企业级开发实践
《循序渐进Node.js企业级开发实践》 1 本书内容 《循序渐进Node.js企业级开发实践》结合作者多年一线开发实践,系统地介绍了Node.js技术栈及其在企业级开发中的应用。全书共分5部分,第1部分基础知识(第1~3章)…...

2024三掌柜赠书活动第三十五期:Redis 应用实例
目录 前言 Redis操作都会,却不知道怎么用? 关于《Redis 应用实例》 编辑推荐 内容简介 作者简介 图书目录 《Redis 应用实例》全书速览 拓展:Redis使用场景 实例1:缓存应用 场景描述 实现方法 具体代码示例 实例2&a…...

Android 第三方框架:RxJava:源码分析:观察者模式
文章目录 观察者模式RxJava中的观察者模式总结 观察者模式 RxJava中的观察者模式 以Observable、ObservableOnSubscribe、Observer为例 Observable是被观察者 负责发射事件或数据 Observer是观察器 负责对从被观察者中获取的数…...

开源模型应用落地-安全合规篇-用户输入价值观判断(四)
一、前言 在深度合规功能中,对用户输入内容的价值观判断具有重要意义。这一功能不仅仅是对信息合法性和合规性的简单审核,更是对信息背后隐含的伦理道德和社会责任的深刻洞察。通过对价值观的判断,系统能够识别可能引发不当影响或冲突的内容,从而为用户提供更安全、更和谐的…...

【js逆向专题】13.jsvmp补环境篇一
目录 一.了解jsvmp技术1. js虚拟机保护方案2.jsvmp实现原理3. 模拟jsvmp执行过程 二.环境检测1. 什么是环境检测2.案例讲解 三. 项目实战1. 案例11.逆向目标2. 项目分析1.补第一个referrer2. 调试技巧13. 调试技巧24. 补充sign5. 补 length6. 参数长短补充 3. 逆向结果 2. 案例…...

Java---每日小题
题目1-极大极小游戏 给你一个下标从 0 开始的整数数组 nums ,其长度是 2 的幂。 对 nums 执行下述算法: 设 n 等于 nums 的长度,如果 n 1 ,终止 算法过程。否则,创建 一个新的整数数组 newNums ,新数组长度…...

leetcode 23. 合并 K 个升序链表
给你一个链表数组,每个链表都已经按升序排列。 输入:lists [[1,4,5],[1,3,4],[2,6]] 输出:[1,1,2,3,4,4,5,6] 解释:链表数组如下: [1->4->5,1->3->4,2->6 ] 将它们合并到一个有序链表中得到。 1->…...

Windows 小记 6 -- 为什么我的全局消息钩子卸载不掉?
Hook dll 在其消息循环中被卸载。强制它们进入消息循环有助于卸载它们。在 UnhookWindowsHookEx 之后添加此代码以强制唤醒所有消息循环: DWORD dwResult; SendMessageTimeout(HWND_BROADCAST, WM_NULL, 0, 0, SMTO_ABORTIFHUNG|SMTO_NOTIMEOUTIFNOTHUNG, 1000, &a…...

Python+onlyoffice 实现在线word编辑
onlyoffice部署 version: "3" services:onlyoffice:image: onlyoffice/documentserver:7.5.1container_name: onlyofficerestart: alwaysenvironment:- JWT_ENABLEDfalse#- USE_UNAUTHORIZED_STORAGEtrue#- ONLYOFFICE_HTTPS_HSTS_ENABLEDfalseports:- "8080:8…...

LC低通滤波器Bode图分析(传递函数零极点)
LC低通滤波器 我们使得L4.7uH,C220uF;电感L的阻抗为Xl;电容C的阻抗为Xc; 传递函数 H ( s ) u o u i X C X C X L 1 s C 1 s C s L 1 1 s 2 L C (其中 s j ω ) H(s)\frac{u_{o} }{u_{i} } \frac{…...

【机器学习】机器学习的基本分类-无监督学习(Unsupervised Learning)
无监督学习(Unsupervised Learning) 无监督学习是一种机器学习方法,主要用于没有标签的数据集。其目标是从数据中挖掘出潜在的结构和模式。常见的无监督学习任务包括 聚类、降维、密度估计 和 异常检测。 1. 无监督学习的核心目标 1.1 聚类…...

六、docker compose单机容器编排工具
六、docker compose单机容器编排工具 6.1 compose简介 Compose是一个用于定义和运行多容器Docker应用程序的工具。您可以使用Compose文件来配置应用程序的服务,然后使用单个命令从配置中创建并启动所有服务。compose的配置文件示例如下 compose的github网址&#…...

Python3 operator 模块
Python2.x 版本中,使用 cmp() 函数来比较两个列表、数字或字符串等的大小关系。 Python 3.X 的版本中已经没有 cmp() 函数,如果你需要实现比较功能,需要引入 operator 模块,适合任何对象,包含的方法有: o…...

沪合共融 “汽”势如虹 | 昂辉科技参加合肥上海新能源汽车产业融合对接会
为积极响应制造业重点产业链高质量发展行动号召,促进合肥、上海两地新能源汽车产业链上下游企业融合对接、协同发展,共同打造长三角世界级新能源汽车产业集群,11月28日,合肥市工信局组织部分县区工信部门及全市30余户新能源汽车产…...

访问http网页强制跳转到了https的解决办法
目录 解决浏览器自动从 HTTP 重定向到 HTTPS 的问题问题原因:HSTS(HTTP Strict Transport Security)什么是 HSTS?HSTS 的工作原理 如何解决?1. 清除浏览器的 HSTS 信息在 Chrome 中清除 HSTS 信息:在 Firef…...

PDF处理的创新工具:福昕低代码平台尝鲜
在当今数字化时代,PDF文件的处理和管理变得越来越重要。福昕低代码平台是新发布的一款创新的工具,旨在简化PDF处理和管理的流程。通过这个平台,用户可以通过简单的拖拽界面上的按钮,轻松完成对Cloud API的调用工作流,而…...

EmoAva:首个大规模、高质量的文本到3D表情映射数据集。
2024-12-03,由哈尔滨工业大学(深圳)的计算机科学系联合澳门大学、新加坡南洋理工大学等机构创建了EmoAva数据集,这是首个大规模、高质量的文本到3D表情映射数据集,对于推动情感丰富的3D头像生成技术的发展具有重要意义…...

SpringMVC ——(1)
1.SpringMVC请求流程 1.1 SpringMVC请求处理流程分析 Spring MVC框架也是⼀个基于请求驱动的Web框架,并且使⽤了前端控制器模式(是⽤来提供⼀个集中的请求处理机制,所有的请求都将由⼀个单⼀的处理程序处理来进⾏设计,再根据请求…...

测试工具LoadRunner Professional脚本编写-脚本设置
勾选扩展日志-全选 原因:在并发完成后,通过抽查关键用户日志的方式,检查参数化是否如预期一致,比如抽查用户1(仓库一,物品一),用户11(仓库二,物品一),用户100(仓库十,物品十) 设置忽略思考时间 原因:是否忽略思考时间,请求数可能会有几十倍的差距…...

运用蓝光三维扫描仪的艺术与科技的完美融合-石膏头像模型3D扫描真实复刻
石膏头像具有独特的魅力,每一处细节都彰显着艺术之美。无论是深邃的眼神,还是精致的轮廓,都让人陶醉其中。 随着雕塑形式的日渐丰富,越来越多的新材料和新的塑造手法被运用到雕塑创作中,蓝光三维扫描技术的应用&#…...

文本域设置高度 加上文字限制并show出来:
文本域设置高度 :rows"4" 加上文字限制并show出来: maxlength"30" show-word-limit 效果: <el-form-item label"产品备注" prop"remark"><el-input v-model"form.remark" type"textarea"…...

探索数据确权、隐私保护、安全共享等方面的挑战与解决方案
在数据确权、隐私保护、安全共享等方面,当前确实面临着诸多挑战,同时也存在一些有效的解决方案。以下是对这些方面的详细探讨: 一、数据确权 挑战 权属关系模糊:由于数据具有复杂性和隐蔽性等特点,使得数据的权属关…...

脱离毛泽东思想,中华民族将会走上四分五裂的不归路
毛泽东思想是中国共产党革命和建设历程中形成的重要理论成果,也是中华民族迈向独立、团结和繁荣的重要思想基石。从抗日战争到解放战争,从新中国成立到社会主义建设的全面展开,毛泽东思想指引中国人民在无数困境中找到了解决问题的正确方法,为中华民族的独立和统一做出了不…...

评kimi人工智能的错误思想
kimi人工智能(简称kimi),是由清华大学交叉信息学院团队建立的北京月之暗面科技有限公司开发的。近日,我在网上与kimi就一些问题进行了咨询与讨论。我感到,kimi对一些问题的看法是不符合马克思主义的。例如,Kimi对“目前中国是否存在剥削现象”这一问题…...

为《沉湖军垦一书》出版而作
一红旗猎猎映云天,军垦军声卷地绵。拼将青春挥汗雨,雄师转战谱芳妍。二战友英姿梦似还,殷殷笑语话心篇。生平只能和泪忆,忍把牺牲作策鞭。三三千学子也成兵,荆襄人民勠力行。十万并身何不克,湖波尽绘稻丰盈。献给一军的战友及其他参加军垦兄弟部队的战友。献给曾朝夕相处…...

保卫革命叙事下的《魔童闹海》
愚昧的国家-民族主义者们喜欢玩连线游戏,他们用魔童闹海里的符号和现实的符号一一对应,要证明哪吒是一部隐喻反美的电影,他们的连线游戏是这样做的:像不像小时候做的连线游戏是的,他们宁可用外在的像似符号的外观做连线游戏,来把握魔童闹海的主旨,也不肯真正进入魔童闹海…...

“颜革”离我们还有多远
经常听到网上有官文说,其实间谍离我们并不远。事实上吧,只能经常上网,碰到那些被称为反贼间谍、美狗日杂的汉奸的黄皮白心的人,机率还是很大的。这些香蕉人分布在社会的各个层级,各个系统,有几个相当明显的藏污纳垢的系统中,这样的货色特别引人注目,尤其是在网上,他们…...

柬埔寨运河项目黄了?中柬关系完了?我驻柬使馆发文
1月28日,中国驻柬埔寨大使馆微信公众号发表文章《柬埔寨运河项目黄了?中柬关系完了?一派胡言!》,全文如下:近期,很多国内外媒体将注意力聚焦柬埔寨扶南德佐运河项目,有的宣传中国不再向柬埔寨提供支持,运河项目就要黄了,中柬铁杆友谊受到冲击。这真是一本正经的胡说八…...