- C++ 快速排序算法:从原理到优化的实战指南
暮见朝见暮
算法数据结构排序算法快排
快速排序(QuickSort)作为C++中最常用的高效排序算法之一,凭借其平均O(nlogn)的时间复杂度和原地排序的特性,在实际开发和算法竞赛中被广泛应用。本文将从基本原理出发,逐步深入快速排序的实现细节、优化策略,并结合C++特性探讨其在实际场景中的最佳实践。一、快速排序的核心原理:分治思想的经典应用快速排序的核心思想是“分而治之”,通过以下三个步骤递归实现排序:选择基准值(Pivot):从数
- 机器学习资源
SimpleUmbrella
以下是根据不同语言类型和应用领域收集的各类工具库,持续更新中。C通用机器学习Recommender-一个产品推荐的C语言库,利用了协同过滤.计算机视觉CCV-C-based/Cached/CoreComputerVisionLibrary,是一个现代化的计算机视觉库。VLFeat-VLFeat是开源的computervisionalgorithms库,有Matlabtoolbox。C++计算机视觉
- C++高级技术详解
yz123lucky
c++开发语言
C++高级技术详解目录模板(Templates)右值和移动语义(RvalueandMoveSemantics)定位new(Placementnew)强类型(StrongTypes)智能指针(SmartPointers)容器和算法(ContainersandAlgorithms)Lambda表达式常量表达式(constexpr)多线程和并发(MultithreadingandConcurrency)
- Real-World Blur Dataset for Learning and Benchmarking Deblurring Algorithms
钟屿
深度学习
用于学习和评估去模糊算法的真实世界模糊数据集摘要近年来,针对相机抖动和物体运动模糊的单幅图像去模糊提出了许多基于学习的方法。为了将这些方法推广到真实世界的模糊场景,包含大量真实模糊图像及其对应的清晰真实图像(groundtruth)的数据集至关重要。然而,目前尚不存在这样的数据集,因此所有现有方法都依赖于合成数据集,这导致它们无法有效去除真实世界图像的模糊。在本工作中,我们提出了一个用于学习和评估
- C++17 并行算法:std::execution::par
在多核处理器普及的今天,如何高效利用硬件资源成为提升软件性能的关键。C++17引入的并行算法库(ParallelAlgorithms)为开发者提供了一套标准化的并行编程接口,通过简单的策略切换即可将顺序算法转换为并行执行。本文将深入探讨C++17并行算法中最核心的执行策略std::execution::par,从基础概念到高级应用,全面解析其原理、用法及最佳实践。一、C++17并行算法概述1.1并
- 深入解析C++中 std::sort背后的实现原理 —Introsort(Introspective Sort)
点云SLAM
C++c++算法数据结构快速排序排序算法堆排序深度优先
Introsort简介Introsort是一种混合排序算法,结合了三种经典算法的优点:算法用于特点快速排序通常情况平均时间复杂度O(nlogn)堆排序当快速排序退化(递归过深)时最坏时间复杂度O(nlogn)插入排序小规模数组时(如长度≤16)常数开销小,快Introsort运行机制排序逻辑如下:if(size2*log2(n))堆排序(HeapSort)else快速排序(QuickSort)快速
- 数据结构面试题编程题_您下次编程面试时应该了解的顶级数据结构
cumichun6193
数据结构链表队列pythonjava
数据结构面试题编程题byFahimulHaq通过FahimulHaqNiklausWirth,aSwisscomputerscientist,wroteabookin1976titledAlgorithms+DataStructures=Programs.瑞士计算机科学家NiklausWirth在1976年写了一本书,名为《算法+数据结构=程序》。40+yearslater,thatequatio
- 红外小目标检测算法RIPI
hie98894
目标检测目标跟踪机器学习
红外小目标检测算法RIPI,基于红外块图像,张量加权,PCADENTIST-master/algorithms/detection/NIPPS/demo_generate_nipps_data.m,1244DENTIST-master/algorithms/detection/NIPPS/nipps.m,2649DENTIST-master/algorithms/detection/NIPPS/R
- CppCon 2018 学习:A Little Order! Delving into the STL sorting algorithms
虾球xz
CppCon学习c++排序算法
记录一下一个编译器加密的算法#include#include#include#include#include#include#includenamespacedetail{//编译期伪随机key:每个字符对应不同keytemplateconstexprstd::uint8_tkey8(){returnstatic_cast((N*31+57)^0xAA);}}//namespacedetail//
- 1163 Dijkstra Sequence (30)
圣保罗的大教堂
PAT刷题图pat考试
Dijkstra'salgorithmisoneoftheveryfamousgreedyalgorithms.Itisusedforsolvingthesinglesourceshortestpathproblemwhichgivestheshortestpathsfromoneparticularsourcevertextoalltheotherverticesofthegivengraph.
- 快速排序的详解
分治策略:将大问题分解为小问题解决关键操作:选择基准(Pivot)并进行分区(Partition)递归处理:对分区后的子数组递归排序前言1.快速排序概述快速排序(QuickSort)是由英国计算机科学家TonyHoare于1960年提出的一种高效的分治排序算法。它在平均情况下的时间复杂度为O(nlogn),最坏情况下为O(n²)(但可通过优化避免),且是原地排序(不需要额外空间)。2.算法步骤详解
- colour-demosaicing:实现多款CFA去马赛克算法的Python开源包
常琚蕙
colour-demosaicing:实现多款CFA去马赛克算法的Python开源包colour-demosaicingCFA(ColourFilterArray)DemosaicingAlgorithmsforPython项目地址:https://gitcode.com/gh_mirrors/co/colour-demosaicing项目介绍在数字图像处理领域,马赛克效应(Mosaicing)是
- C++数值算法深度解析:accumulate与max_element
景彡先生
C++进阶c++算法服务器
在C++标准库中,数值算法(NumericAlgorithms)提供了高效处理数值数据的工具。本文将深入解析两个核心数值算法——accumulate(累加求和)与max_element(最大值查找)的底层原理、核心特性及最佳实践,帮助开发者掌握这些“数据统计利器”的正确使用方式。一、accumulate:通用累加器1.1底层原理与实现迭代累加:对[first,last)区间内的元素执行累积操作,初
- C++快速排序算法详解与实现
小小的博客
排序算法c++算法排序算法c++排序算法
快速排序(QuickSort)是一种高效的排序算法,由英国计算机科学家东尼·霍尔(TonyHoare)于1960年发明。本文将详细讲解快速排序算法的原理和实现,并通过C++语言展示其代码实现。1.快速排序算法原理快速排序算法的基本思想是分治法(DivideandConquer),其核心步骤如下:1.选择一个基准元素(pivot),通常选择序列中的第一个或最后一个元素。2.将序列分为两部分,一部分是
- 快速排序(快排)实现及原理
hixiaoyang
排序算法算法java
一、算法概述快速排序(QuickSort)是由TonyHoare在1960年提出的一种分治算法,平均时间复杂度为O(nlogn),最坏情况下为O(n²)。它是目前实践中最高效的通用排序算法之一。核心思想:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,然后递归地对这两部分记录继续进行排序。二、算法原理1.基本步骤选择基准(pivot):从数组中选择一个元素作
- 什么是 Paxos和Raft
MonkeyKing.sun
paxosraft
Raft和Paxos是两种经典的分布式一致性算法(ConsensusAlgorithms),广泛应用于数据库、分布式系统、微服务架构中,用来确保在多个节点中即使有部分节点故障,系统仍然可以就“某一值”达成一致(即:分布式共识)。它们不是区块链专属,但在联盟链、私有链或数据库复制系统中常被用来替代PoW、PBFT等共识机制。一、什么是Paxos?定义:Paxos是一种保证在部分节点失效或网络延迟时,
- 008 【入门】算法和数据结构简介
要天天开心啊
算法专栏算法数据结构
算法与数据结构系统概览|[算法]-[基础]-[通用]一、算法分类与应用1.硬计算类算法|[算法]-[中级]-[通用]特点应用场景复杂度特征-精确求解问题-可能带来较高计算复杂度-大厂笔试/面试-ACM竞赛-所有程序员岗位必考⏱️通常为O(n)~O(n²)//[示例]快速排序算法-分治思想核心实现publicvoidquickSort(int[]arr,intleft,intright){if(le
- 【学习】《算法图解》第四章学习笔记:分而治之与快速排序
程序员
前言《算法图解》第四章引入了一种强大的算法设计策略——分而治之(DivideandConquer,D&C)。这种策略将复杂问题分解为更小、更易于管理的部分,然后递归地解决这些部分,最终合并结果。作为D&C策略的经典应用,本章详细介绍了快速排序(Quicksort)算法,它是一种非常高效且广泛使用的排序方法。本笔记将梳理D&C的核心思想以及快速排序的实现原理与性能分析。一、分而治之(Dividean
- C++——STL标准模板库(算法、容器、迭代器)
木木sa
c++算法java
在被引入C++之前该技术就已经存在了很长的一段时间。后来STL成为ANSI/ISOC++标准的一部分。各个C++厂商也有各自相应的模板库,这些库效率可能很高,但可移植性不一定好。STL以迭代器(Iterators)和容器(Containers)为基础,是一种泛型算法(GenericAlgorithms)库,容器的存在使这些算法有东西可以操作。迭代器(Iterators)是STL的核心,它们是泛型指
- CppCon 2016 学习:STL Algorithms - How to use them; how to write your own
虾球xz
CppCon学习c++开发语言
算法(Algorithms):用模板函数写的、通用且有用的功能块,比如排序、查找、转换等。为什么用STL算法(标准模板库算法):经过充分测试和调试,稳定可靠是编写复杂代码的基本积木使用STL算法写代码更简洁、更易读容易调试和维护方便代码复审和改进你给的例子是经典的冒泡排序实现,然后用STL的std::sort替代:std::vectorv{0,1,3,5,7,9,2,4,6,8};//手写冒泡排序
- 注意!这些CCF推荐会议已更名
爱思德学术
人工智能软件工程人机交互
针对中国计算机学会(CCF)推荐国际会议和期刊列表中部分会议和期刊的名称发生变化的情况,CCF学术工作委员会在2024年5月7日发出征集通知,开展部分更名的期刊、会议的确认和推荐列表信息的修订工作。1、WASA:CCFC类更新点:会议全称原会议信息:TheInternationalConferenceonWirelessAlgorithms,Systems,andApplications更新后会议
- ubuntu22.04和ubuntu20.04 的ssh配置不然repo init失败
Auv开心
ssh运维
ubuntu22.04Host*HostKeyAlgorithms+ssh-rsapubkeyAcceptedKeyTypes+ssh-rsaKexAlgorithms+diffie-hellman-group1-sha1ubuntu20.04ubuntu@ubuntu-HP-ProDesk-480-G7-PCI-Microtower-PC:~/zyh$cat~/.ssh/configHost*K
- 50行matlab算法,一个用matlab实现的50行的实数染色体遗传算法程序 - 计算模拟 - 小木虫 - 学术 科研 互动社区...
kotlit
50行matlab算法
【本文属作者原创,但已发表于科学网(链接地址:http://blog.sciencenet.cn/blog-3102863-1029280.html),现稍作格式上的修该后转载,并发金币祝大家新年快乐!】1.引言遗传算法(geneticalgorithms)是一种很有意思最优化方法,常用于解决一些传统方法力所不及的多变量最优化问题。这种方法很通用,即用同样的思想可以解决很多不同的问题。只要你能对问
- GaussianPro: 3D Gaussian Splatting with Progressive Propagation(Related Work)
于初见月
paper计算机视觉
Multi-viewStereoMVSaimstoreconstructa3Dmodelfromacollectionofposedimages,whichcanbefurthercombinedwithtraditionalrenderingalgorithmstogeneratenovelviews.Traditionalmethodsexplicitlyestablishpixelcorre
- python算法和数据结构_Python中的数据结构和算法
weixin_26713521
算法数据结构pythonjavaleetcode
python算法和数据结构To至LeonardodaVinci达芬奇(LeonardodaVinci)介绍(Introduction)ThepurposeofthisarticleistogiveyouapanoramaofdatastructuresandalgorithmsinPython.ThistopicisveryimportantforaDataScientistinordertohe
- 【C++】C++ 并行算法(Parallel Algorithms)介绍
晴雨日记
C++c++开发语言
C++并行算法:原理与实现C++17引入了并行算法(ParallelAlgorithms),通过在标准库算法中增加执行策略(ExecutionPolicy),实现对多核处理器的自动并行化。一、核心原理执行策略(ExecutionPolicy):std::execution::seq:顺序执行(默认)std::execution::par:并行执行(线程级并行)std::execution::par
- 第49期:Codeforces-Round #774(Div.2)
Heptagonalwarrior
Codeforces算法
目录A.SquareCounting(tags:math;*800)B.QualityvsQuantity(tags:bruteforce;constructivealgorithms;greedy;sorting;twopointers;*800)C.FactorialsandPowersofTwo(tags:bitmasks;bruteforce;constructivealgorithms;
- Java-jwt4.4.0版本使用
Java牛马圣体
java
在SpringBoot中使用Auth0的java-jwt4.4.0版本生成JWTToken的步骤如下:1.添加依赖确保pom.xml中添加java-jwt依赖:com.auth0java-jwt4.4.02.配置JWT工具类importcom.auth0.jwt.JWT;importcom.auth0.jwt.algorithms.Algorithm;importcom.auth0.jwt.int
- 十大排序法2
小小桃核
c语言
四、快速排序(递归版)原理:分治思想,选基准值分区,递归排序。voidquickSort(intarr[],intlow,inthigh){if(low=i++;temp=arr[i];arr[i]=arr[j];arr[j]=temp;}}temp=arr[i+1];arr[i+1]=arr[high];arr[high]=temp;returni+1;//基准位置}五、归并排序(递归版)原理:
- Python实现快排
轮子去哪儿了
python
Python实现快排Python实现快排defquicksort(arr):iflen(arr)pivot]returnquicksort(left)+middle+quicksort(right)print(quicksort([3,6,8,19,1,5]))#[1,3,5,6,8,19]posted@2019-02-2420:22YangZhaonan阅读(...)评论(...)编辑收藏
- SQL的各种连接查询
xieke90
UNION ALLUNION外连接内连接JOIN
一、内连接
概念:内连接就是使用比较运算符根据每个表共有的列的值匹配两个表中的行。
内连接(join 或者inner join )
SQL语法:
select * fron
- java编程思想--复用类
百合不是茶
java继承代理组合final类
复用类看着标题都不知道是什么,再加上java编程思想翻译的比价难懂,所以知道现在才看这本软件界的奇书
一:组合语法:就是将对象的引用放到新类中即可
代码:
package com.wj.reuse;
/**
*
* @author Administrator 组
- [开源与生态系统]国产CPU的生态系统
comsci
cpu
计算机要从娃娃抓起...而孩子最喜欢玩游戏....
要让国产CPU在国内市场形成自己的生态系统和产业链,国家和企业就不能够忘记游戏这个非常关键的环节....
投入一些资金和资源,人力和政策,让游
- JVM内存区域划分Eden Space、Survivor Space、Tenured Gen,Perm Gen解释
商人shang
jvm内存
jvm区域总体分两类,heap区和非heap区。heap区又分:Eden Space(伊甸园)、Survivor Space(幸存者区)、Tenured Gen(老年代-养老区)。 非heap区又分:Code Cache(代码缓存区)、Perm Gen(永久代)、Jvm Stack(java虚拟机栈)、Local Method Statck(本地方法栈)。
HotSpot虚拟机GC算法采用分代收
- 页面上调用 QQ
oloz
qq
<A href="tencent://message/?uin=707321921&Site=有事Q我&Menu=yes">
<img style="border:0px;" src=http://wpa.qq.com/pa?p=1:707321921:1></a>
- 一些问题
文强chu
问题
1.eclipse 导出 doc 出现“The Javadoc command does not exist.” javadoc command 选择 jdk/bin/javadoc.exe 2.tomcate 配置 web 项目 .....
SQL:3.mysql * 必须得放前面 否则 select&nbs
- 生活没有安全感
小桔子
生活孤独安全感
圈子好小,身边朋友没几个,交心的更是少之又少。在深圳,除了男朋友,没几个亲密的人。不知不觉男朋友成了唯一的依靠,毫不夸张的说,业余生活的全部。现在感情好,也很幸福的。但是说不准难免人心会变嘛,不发生什么大家都乐融融,发生什么很难处理。我想说如果不幸被分手(无论原因如何),生活难免变化很大,在深圳,我没交心的朋友。明
- php 基础语法
aichenglong
php 基本语法
1 .1 php变量必须以$开头
<?php
$a=” b”;
echo
?>
1 .2 php基本数据库类型 Integer float/double Boolean string
1 .3 复合数据类型 数组array和对象 object
1 .4 特殊数据类型 null 资源类型(resource) $co
- mybatis tools 配置详解
AILIKES
mybatis
MyBatis Generator中文文档
MyBatis Generator中文文档地址:
http://generator.sturgeon.mopaas.com/
该中文文档由于尽可能和原文内容一致,所以有些地方如果不熟悉,看中文版的文档的也会有一定的障碍,所以本章根据该中文文档以及实际应用,使用通俗的语言来讲解详细的配置。
本文使用Markdown进行编辑,但是博客显示效
- 继承与多态的探讨
百合不是茶
JAVA面向对象 继承 对象
继承 extends 多态
继承是面向对象最经常使用的特征之一:继承语法是通过继承发、基类的域和方法 //继承就是从现有的类中生成一个新的类,这个新类拥有现有类的所有extends是使用继承的关键字:
在A类中定义属性和方法;
class A{
//定义属性
int age;
//定义方法
public void go
- JS的undefined与null的实例
bijian1013
JavaScriptJavaScript
<form name="theform" id="theform">
</form>
<script language="javascript">
var a
alert(typeof(b)); //这里提示undefined
if(theform.datas
- TDD实践(一)
bijian1013
java敏捷TDD
一.TDD概述
TDD:测试驱动开发,它的基本思想就是在开发功能代码之前,先编写测试代码。也就是说在明确要开发某个功能后,首先思考如何对这个功能进行测试,并完成测试代码的编写,然后编写相关的代码满足这些测试用例。然后循环进行添加其他功能,直到完全部功能的开发。
- [Maven学习笔记十]Maven Profile与资源文件过滤器
bit1129
maven
什么是Maven Profile
Maven Profile的含义是针对编译打包环境和编译打包目的配置定制,可以在不同的环境上选择相应的配置,例如DB信息,可以根据是为开发环境编译打包,还是为生产环境编译打包,动态的选择正确的DB配置信息
Profile的激活机制
1.Profile可以手工激活,比如在Intellij Idea的Maven Project视图中可以选择一个P
- 【Hive八】Hive用户自定义生成表函数(UDTF)
bit1129
hive
1. 什么是UDTF
UDTF,是User Defined Table-Generating Functions,一眼看上去,貌似是用户自定义生成表函数,这个生成表不应该理解为生成了一个HQL Table, 貌似更应该理解为生成了类似关系表的二维行数据集
2. 如何实现UDTF
继承org.apache.hadoop.hive.ql.udf.generic
- tfs restful api 加auth 2.0认计
ronin47
目前思考如何给tfs的ngx-tfs api增加安全性。有如下两点:
一是基于客户端的ip设置。这个比较容易实现。
二是基于OAuth2.0认证,这个需要lua,实现起来相对于一来说,有些难度。
现在重点介绍第二种方法实现思路。
前言:我们使用Nginx的Lua中间件建立了OAuth2认证和授权层。如果你也有此打算,阅读下面的文档,实现自动化并获得收益。SeatGe
- jdk环境变量配置
byalias
javajdk
进行java开发,首先要安装jdk,安装了jdk后还要进行环境变量配置:
1、下载jdk(http://java.sun.com/javase/downloads/index.jsp),我下载的版本是:jdk-7u79-windows-x64.exe
2、安装jdk-7u79-windows-x64.exe
3、配置环境变量:右击"计算机"-->&quo
- 《代码大全》表驱动法-Table Driven Approach-2
bylijinnan
java
package com.ljn.base;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.uti
- SQL 数值四舍五入 小数点后保留2位
chicony
四舍五入
1.round() 函数是四舍五入用,第一个参数是我们要被操作的数据,第二个参数是设置我们四舍五入之后小数点后显示几位。
2.numeric 函数的2个参数,第一个表示数据长度,第二个参数表示小数点后位数。
例如:
select cast(round(12.5,2) as numeric(5,2))  
- c++运算符重载
CrazyMizzz
C++
一、加+,减-,乘*,除/ 的运算符重载
Rational operator*(const Rational &x) const{
return Rational(x.a * this->a);
}
在这里只写乘法的,加减除的写法类似
二、<<输出,>>输入的运算符重载
&nb
- hive DDL语法汇总
daizj
hive修改列DDL修改表
hive DDL语法汇总
1、对表重命名
hive> ALTER TABLE table_name RENAME TO new_table_name;
2、修改表备注
hive> ALTER TABLE table_name SET TBLPROPERTIES ('comment' = new_comm
- jbox使用说明
dcj3sjt126com
Web
参考网址:http://www.kudystudio.com/jbox/jbox-demo.html jBox v2.3 beta [
点击下载]
技术交流QQGroup:172543951 100521167
[2011-11-11] jBox v2.3 正式版
- [调整&修复] IE6下有iframe或页面有active、applet控件
- UISegmentedControl 开发笔记
dcj3sjt126com
// typedef NS_ENUM(NSInteger, UISegmentedControlStyle) {
// UISegmentedControlStylePlain, // large plain
&
- Slick生成表映射文件
ekian
scala
Scala添加SLICK进行数据库操作,需在sbt文件上添加slick-codegen包
"com.typesafe.slick" %% "slick-codegen" % slickVersion
因为我是连接SQL Server数据库,还需添加slick-extensions,jtds包
"com.typesa
- ES-TEST
gengzg
test
package com.MarkNum;
import java.io.IOException;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.annotation
- 为何外键不再推荐使用
hugh.wang
mysqlDB
表的关联,是一种逻辑关系,并不需要进行物理上的“硬关联”,而且你所期望的关联,其实只是其数据上存在一定的联系而已,而这种联系实际上是在设计之初就定义好的固有逻辑。
在业务代码中实现的时候,只要按照设计之初的这种固有关联逻辑来处理数据即可,并不需要在数据库层面进行“硬关联”,因为在数据库层面通过使用外键的方式进行“硬关联”,会带来很多额外的资源消耗来进行一致性和完整性校验,即使很多时候我们并不
- 领域驱动设计
julyflame
VODAO设计模式DTOpo
概念:
VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。
DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输对
- 单例设计模式
hm4123660
javaSingleton单例设计模式懒汉式饿汉式
单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。
&nb
- logback
zhb8015
loglogback
一、logback的介绍
Logback是由log4j创始人设计的又一个开源日志组件。logback当前分成三个模块:logback-core,logback- classic和logback-access。logback-core是其它两个模块的基础模块。logback-classic是log4j的一个 改良版本。此外logback-class
- 整合Kafka到Spark Streaming——代码示例和挑战
Stark_Summer
sparkstormzookeeperPARALLELISMprocessing
作者Michael G. Noll是瑞士的一位工程师和研究员,效力于Verisign,是Verisign实验室的大规模数据分析基础设施(基础Hadoop)的技术主管。本文,Michael详细的演示了如何将Kafka整合到Spark Streaming中。 期间, Michael还提到了将Kafka整合到 Spark Streaming中的一些现状,非常值得阅读,虽然有一些信息在Spark 1.2版
- spring-master-slave-commondao
王新春
DAOspringdataSourceslavemaster
互联网的web项目,都有个特点:请求的并发量高,其中请求最耗时的db操作,又是系统优化的重中之重。
为此,往往搭建 db的 一主多从库的 数据库架构。作为web的DAO层,要保证针对主库进行写操作,对多个从库进行读操作。当然在一些请求中,为了避免主从复制的延迟导致的数据不一致性,部分的读操作也要到主库上。(这种需求一般通过业务垂直分开,比如下单业务的代码所部署的机器,读去应该也要从主库读取数