- python 统计相同像素值个数
AI算法网奇
python基础opencv计算机视觉python
目录python统计相同像素值个数最大值附近的值python统计相同像素值个数importcv2importnumpyasnpimporttimefromcollectionsimportCounter#读取图像image=cv2.imread('mask16.jpg')#将图像转换为灰度图像gray_image=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)area
- 腾讯面试:那些腾讯面试过的MySQL场景问题
腾讯mysql数据库面试问题
今天我将那些腾讯面试过的MySQL场景问题给大家整理出来,本文将跟大家一起来探讨如何回答这些问题。1.一个6亿的表a,一个3亿的表b,通过外间tid关联,你如何最快的查询出满足条件的第50000到第50200中的这200条数据记录?2.一条sql执行过长的时间,你如何优化,从哪些方面入手?3.索引已经建好了,那我再插入一条数据,索引会有哪些变化?4.mysql的是怎么解决并发问题的?5.MySQL
- 【YashanDB知识库】非YCM方式的自动备份方案示例
数据库
本文内容来自YashanDB官网,原文内容请见https://www.yashandb.com/newsinfo/7281310.html?templateId=171...概述如果有YCM,推荐使用YCM自动备份,详情请参考YCM官方文档。但是如果没有YCM,则可通过crontab实现自动备份。目前示例的自动备份方案是每周的周3、周6的凌晨0点做全量备份;每天的凌晨2点做增量备份;每天的凌晨4点
- 爬取优美图库壁纸-python
-chu_kuang-
pythonmysql数据库
爬取216页分块区所有图片,爬的内容有点抽象。说实在的这网站壁纸挺檫边的.....importrequestsfrombs4importBeautifulSoupimportos#创建目录directory='pictures'url=''ifnotos.path.exists(directory):os.makedirs(directory)foriinrange(216):ifi==0:url
- 【MotionCap】DROID-SLAM 1 :介绍及安装
等风来不如迎风去
AI入门与实战人工智能SLAHMRDROID-SLAM
DROID-SLAM:DROID-SLAM:DeepVisualSLAMforMonocularDROID-SLAM:适用于单目、立体和RGB-D相机的深度视觉SLAMStereo,andRGB-DCamerashttps://arxiv.org/abs/2108.10869DROID-SLAM:DeepVisualSLAMforMonocular,Stereo,andRGB-DCamerasfi
- 支持selenium的chrome driver更新到131.0.6778.264
代码的乐趣
seleniumchromepython
最近chrome释放新版本:131.0.6778.264如果运行selenium自动化测试出现以下问题,是需要升级chromedriver才可以解决的。selenium.common.exceptions.SessionNotCreatedException:Message:sessionnotcreated:ThisversionofChromeDriveronlysupportsChromev
- 支持selenium的chromedriver更新到131.0.6778.108
代码的乐趣
seleniumpython测试工具
最近chrome释放新版本:131.0.6778.108如果运行selenium自动化测试出现以下问题,是需要升级chromedriver才可以解决的。selenium.common.exceptions.SessionNotCreatedException:Message:sessionnotcreated:ThisversionofChromeDriveronlysupportsChromev
- 支持selenium的chromedriver更新到122.0.6261.69和122.0.6261.94
代码的乐趣
selenium测试工具
最近chrome连续释放了两个版本:122.0.6261.69和122.0.6261.94如果运行selenium自动化测试出现以下问题是,是需要升级chromedriver才可以解决的。selenium.common.exceptions.SessionNotCreatedException:Message:sessionnotcreated:ThisversionofChromeDrivero
- Springboot整合之Hikari连接 yml配置
小诺大人
springbootHikariCP数据库连接池SpringBootMySQL配置参数
#数据源配置spring:datasource:type:com.zaxxer.hikari.HikariDataSourcedriver-class-name:com.mysql.cj.jdbc.Driverurl:jdbc:mysql://localhost:3306/yeb?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior
- CentOS6.8 使用 parted命令 手动硬盘分区 GPT分区
走向运维的老男孩
CentOS6Linux基础知识linux运维服务器
环境虚拟机:VMware-10.0.7build-2844087Linux系统:CentOS6.8远程工具:Xshell6(Build0197)CentOS6.8使用parted命令手动硬盘分区GPT分区一、前言实际生产环境中,大于2.1个TB的硬盘较为多见,我们熟知的MBR分区表(主引导分区表)已无法完成分区的任务,此时我们要用另外一种分区表来解决此问题,即GPT分区表。二、GPT分区表2.1什
- Linux-Ubuntu入门笔记
LeoJamLin
linuxlinux
一.linux操作系统概述1.常见操作系统-服务端操作系统:linux、unix、windowsserver-单机操作系统:windows(dos、ucdos、win95、win98、win2000、xp、vista、win7、win8)MAC、linux(ubuntu)-移动操作系统Android、IOS、Windowsphone2.linux操作系统介绍-为什么要学习linux操作系统1.大部
- 归并排序(Python)
编程可可西里
python开发语言算法排序算法
1.算法步骤首先考虑一个问题:两个有序列表如何合并成一个列表A=[1,3,5,6,7,12]B=[6.7.9.11]1.构建一个result=[]2.当A非空且B非空:比较A[0]和B[0]result添加较小的那个元素,并从原始数组弹出3.如果A非空,把A添加到result末尾4.如果B非空,把B添加到result末尾1.先把数组分成两部分2.每部分递归处理变成有序3.将两个有序列表合并起来2.
- AI跟踪报道第62期-本周AI新闻: 微软推出Copilot的AI Agent和Computer Control
新加坡内哥谈技术
人工智能copilot大数据
每周跟踪AI热点新闻动向和震撼发展想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领域的领跑者。点击订阅,与未来同行!订阅:https://rengongzhineng.io/油管视频:https://youtu.be/_Egli1MlVWk?si=DIjVm2l
- MySQL 分库分表方案
数据库mysql
前言公司最近在搞服务分离,数据切分方面的东西,因为单张包裹表的数据量实在是太大,并且还在以每天60W的量增长。之前了解过数据库的分库分表,读过几篇博文,但就只知道个模糊概念,而且现在回想起来什么都是模模糊糊的。今天看了一下午的数据库分库分表,看了很多文章,现在做个总结,“摘抄”下来。(但更期待后期的实操)会从以下几个方面说起:第一部分:实际网站发展过程中面临的问题。第二部分:有哪几种切分方式,垂直
- 高性能、并发安全的 Go 嵌入式缓存库 如何使用?
Ai 编码
Golang教程golang缓存开发语言
文章精选推荐1JetBrainsAiassistant编程工具让你的工作效率翻倍2ExtraIcons:JetBrainsIDE的图标增强神器3IDEA插件推荐-SequenceDiagram,自动生成时序图4BashSupportPro这个ides插件主要是用来干嘛的?5IDEA必装的插件:SpringBootHelper的使用与功能特点6Aiassistant,又是一个写代码神器7Cursor
- 架构学习第四周--高可用与NoSQL数据库
Mr.王835
nosqllinux
目录一、HAProxy介绍二、HAProxy基本使用2.1,HAProxy调度算法2.2,HAProxy高级用法三、高可用Keepalived介绍3.1,Keepalived介绍3.2,Keepalived单主架构实现3.3,脑裂四、Keepalived实例--实现单主架构的LVS-DR模型五、实例--通过Keepalived实现HAProxy高可用六、NoSQL数据库Redis6.1,Redis
- RK3568平台(基础篇)GKI开发方式
嵌入式_笔记
瑞芯微linux
一.什么是GKIGKI:GenericKernelImage通用内核映像。Android13GMS和EDLA认证的一个难点是google强制要求要支持GKI。GKI通用内核映像,是google为了解决内核碎片化的问题,而设计的通过提供统一核心内核并将SoC和板级驱动从核心内核移至可加载模块中。核心内核为驱动模块提供了稳定的内核模块接口,模块驱动和核心内核可以独立进行更新。内核接口可以通过upstr
- python 列表推导式
别样红。
python
列表推导式每一个for按照一定的规则循环后,返回一个变量。1.基本用法list1=[x*2forxinrange(10)]print(list1)#[0,2,4,6,8,10,12,14,16,18]2.增加if增加if则只有通过if判断的数据,才会输出list1=[x*2forxinrange(10)ifx%2==0]print(list1)#[0,4,8,12,16]3.多个for会按照矩阵的
- c语言通讯录二分查找,C语言程序设计 通讯录程序.doc
weixin_39674028
c语言通讯录二分查找
《C语言程序设计通讯录程序.doc》由会员分享,可在线阅读,更多相关《C语言程序设计通讯录程序.doc(28页珍藏版)》请在人人文库网上搜索。1、目录:课程设计任务书2目录:3一、目的4二、基本情况5三、时间安排5四、设计和调试过程规范化要求5五、设计内容和设计要求6六、考核方式7一通讯录的主要功能:8一、问题描述:8二、功能要求:8三、算法提示:8四、测试数据:9二、课题的主要功能模块划分:9三
- 使用神经网络做二分类预测
weixin_33816300
人工智能pythonmatlab
不想整理代码了。先给个结果图:train0loss:1838.0616train100loss:1441.5283train200loss:1299.4546train300loss:934.36536train400loss:506.06702train500loss:322.9782train600loss:271.5825train700loss:360.091train800loss:23
- TRELLIS文本或图像生3d模型一键整合包win版本,省去繁琐安装、效果超Wonder3D,对硬件要求更低速度更快16g N卡可流畅运行
struggle2025
计算机视觉人工智能深度学习图像处理集成学习AI作画
一、介绍:TRELLIS文生、图生3d模型软件介绍,目前只开放了图生3D(文末提供整合包下载)TRELLIS是一个大型3D资产生成模型。它接受文本或图像提示,并生成各种格式的高质量3D资产,如辐射场、3D高斯和网格。TRELLIS的基石是一种统一的结构化LATent(SLAT)表示法,允许解码到不同的输出格式,以及为SLAT定制的校正流变换器作为强大的后端。我们提供大规模预训练模型,参数高达20亿
- ES6 (三)字符串的扩展、模板字符串、模板编译、标签模板
ChrisP3616
前端工程师1——汇总前端工程师3——ES6字符串es6unicodejson
ES6(三)字符串的扩展、模板字符串、模板编译、标签模板文章目录ES6(三)字符串的扩展、模板字符串、模板编译、标签模板1.字符的Unicode表示法2.字符串的遍历器接口3.直接输入U+2028和U+20294.JSON.stringify()的改造5.模板字符串6.实例:模板编译(==Review==)7.==标签模板==8.模板字符串的限制1.字符的Unicode表示法ES6加强了对Unic
- 360智算中心万卡GPU集群架构分析
科技互联人生
科技数码人工智能硬件架构系统架构人工智能
360智算中心:万卡GPU集群落地实践 360智算中心是一个融合了人工智能、异构计算、大数据、高性能网络、AI平台等多种技术的综合计算设施,旨在为各类复杂的AI计算任务提供高效、智能化的算力支持。360智算中心不仅具备强大的计算和数据处理能力,还结合了AI开发平台,使得计算资源的使用更加高效和智能化。360内部对于智算中心的核心诉求是性能和稳定性,本文将深入探讨3
- web端广告飘窗
努力搬砖的程序媛儿
前端javascripthtml
漂浮广告varx=50,y=60varxin=true,yin=truevarstep=1vardelay=10varobj=document.getElementById("codefans_net")functionfloat(){varL=T=0varR=document.body.clientWidth-obj.offsetWidthvarB=document.body.clientHei
- v-model动态绑定值
努力搬砖的程序媛儿
vue.jselementuijavascript
第{{i}}个获取表单值exportdefault{data(){return{form:{},//传入的参数formLength:6}},methods:{getData(){console.log(this.form)}}}
- freebsd12 安装gnome3图形界面
sayang_shao
FreeBSDFreeBSD12gnome3freebsd12
1、准备工作注:由于我是在实体机上做的所以没有提供截图。也可以访问官方文档进行安装:https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/x11-wm.html已经安装完Freebsd12系统可以联网2、开始安装pkg更新#pkgupdate安装显卡驱动(本机为intel)#pkginstallxf86-video-intel开启li
- 关闭oracle审计功能
Recody
oracle数据库
关闭oracle审计功能1.sqlplus/nolog2.conn/assysdba或者connsys/assysdba3.showparameteraudit_trail显示value为DB就是已经开启了归档的。如果显示为FALSE,表示已经关闭了归档的。4.altersystemsetaudit_trail=FALSEscope=spfile;5.shutdownimmediate;6.sta
- JavaScript高级学习:ES6新特性07——数组在ES6中的使用
北凉冬
JavaScriptjavascriptes6
提示:本文为JavaScript栏目:JavaScript高级系列——ES6新特性章节第七章JavaScript高级学习:ES6新特性07——数组在ES6中的使用前言数组在ES6中的使用求数组的最大值ES5的方式求数组最大值ES6的方式使用数组扩展运算符求最大值ES6扩展运算符的使用扩展运算符传参扩展运算符操作伪数组复制数组传统复制数组ES6中使用扩展运算符复制数组ES5中复制数组合并数组ES6方
- centos7.9安装mysql8.4详细步骤【亲测有效】
张3蜂
linux软件安装部署数据库adb
目录1.选择合适的mysql版本2.解压mysql压缩包至/usr/local/目录下3.新建数据目录、用户名和用户组4.修改环境变量并重启环境变量5.配置初始化使用命令6.初始化Mysql数据库7.启动Mysql服务8.关闭Mysql服务(安装时不要做这一步)9.跳过密码验证并修改密码新密码登录本地mysql服务10.查看端口是否会被占用11.mysql8开机自启12.卸载mysql【我没有测试
- vue 给iframe设置src_vue项目中,iframe的src动态赋值
weixin_39961636
vue给iframe设置src
可以类似这样:/***动态创建iframe*@paramdom创建iframe的容器,即在dom中创建iframe。dom能够是div、span或者其它标签。*@paramsrciframe中打开的网页路径*@paramonloadiframe载入完后触发该事件。能够为空*@return返回创建的iframe对象*/createIframe(dom,src,onload){//在document中
- 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层,要保证针对主库进行写操作,对多个从库进行读操作。当然在一些请求中,为了避免主从复制的延迟导致的数据不一致性,部分的读操作也要到主库上。(这种需求一般通过业务垂直分开,比如下单业务的代码所部署的机器,读去应该也要从主库读取数