”tbxxx" dataNode="transDN0" ruleRequired=”false” /
rule.xml
分库分表规则配置,其中columns,dbRuleList,tbRuleList里面的列名要保持大写
首先先上一个整体配置
"rule1">
TRANS_ID
#set($end=$TRANS_ID.length() - 1)##
$stringUtil.substring($TRANS_ID,$start,$end)]]>
$stringUtil.substring($TRANS_ID,$start)]]>
def map = [:];
for (int i=0; i<10; i++) {
def list = [];
for (int j=0; j<10; j++) {
list.add(i+""+j);
}
map.put(i,list);
};
return map;
]]>
其中dbRuleList 为分库规则
#set($end=$TRANS_ID.length() - 1)##
$stringUtil.substring($TRANS_ID,$start,$end)]]>
分库规则dbRuleList可以有多个dbRule,当第一个不满足时,可以用第二个,当然这个效率不好,如果有规则区分,尽量再写一个rule,
dbRule 最后的结果是表的前缀
比如分库分表 库名为db0-db9,那么这个dbRule渲染时
取到TRANS_ID 这个为后,在脚本里计算出取倒数第2位为库后缀
比如上图的分库为
分表规则配置
$stringUtil.substring($TRANS_ID,$start)]]>
这个和上面分库一样了,以倒数1,2位为库的后缀
如下图:
有个潜规则就是
需要保证全局的表名不能重复
比如 db0 有个 trans_tb00,db1 就不能有叫 trans_tb00 的表
表初始化
def map = [:];
for (int i=0; i<10; i++) {
def list = [];
for (int j=0; j<10; j++) {
list.add(i+""+j);
}
map.put(i,list);
};
return map;
]]>
需要初始化个表,其中key为db的下标索引,比如db0 的下标为0,
list为每个库里的表后缀名
目录是为了初始化定义这些库表
如何使用呢?
通过命令行
这里就不用讲了,wms_shard就是在server.xml里面配置的逻辑分库分表的数据源schema,应用只要访问这个就好了
show tables;也可以看到自己的一些表信息
ok.
mysql> select * from t_user_id_map;
+-----------+---------------------------+-----------+------------+---------------------+---------------------+
| F_uid | F_uname | F_enabled | F_user_id | F_create_time | F_modify_time |
+-----------+---------------------------+-----------+------------+---------------------+---------------------+
| 105001050 | @8230762802717b6a723fe9cd | 1 | 1287824017 | 2014-03-10 15:38:44 | 2014-03-10 15:38:44 |
| 62000 | | 1 | 533885000 | 2014-03-26 23:02:31 | 2014-03-26 23:02:31 |
| 86000 | | 1 | 237406000 | 2014-03-27 01:04:23 | 2014-03-27 01:04:23 |
| 96000 | | 1 | 767684000 | 2014-03-27 00:30:32 | 2014-03-27 00:30:32 |
| 130000 | | 1 | 506552000 | 2014-03-27 15:57:31 | 2014-03-27 15:57:31 |
| 149000 | | 1 | 868483000 | 2014-03-27 15:50:09 | 2014-03-27 15:50:09 |
| 179000 | | 1 | 245626000 | 2014-03-26 21:33:46 | 2014-03-26 21:33:46 |
当没有指定分库分表规则时,是进行的全表扫描,当然我们可以通过学习
mysql> explain select * from t_user_id_map;
+-----------+-----------------------------------
| DATA_NODE | SQL
+-----------+-----------------------------------
| wmsDN[0] | select * from t_user_id_map_00_0
| wmsDN[0] | select * from t_user_id_map_00_1
| wmsDN[0] | select * from t_user_id_map_00_2
| wmsDN[0] | select * from t_user_id_map_00_3
| wmsDN[0] | select * from t_user_id_map_00_4
| wmsDN[0] | select * from t_user_id_map_00_5
| wmsDN[0] | select * from t_user_id_map_00_6
| wmsDN[0] | select * from t_user_id_map_00_7
| wmsDN[0] | select * from t_user_id_map_00_8
| wmsDN[0] | select * from t_user_id_map_00_9
| wmsDN[1] | select * from t_user_id_map_01_0
| wmsDN[1] | select * from t_user_id_map_01_1
| wmsDN[1] | select * from t_user_id_map_01_2
| wmsDN[1] | select * from t_user_id_map_01_3
| wmsDN[1] | select * from t_user_id_map_01_4
| wmsDN[1] | select * from t_user_id_map_01_5
| wmsDN[1] | select * from t_user_id_map_01_6
| wmsDN[1] | select * from t_user_id_map_01_7
| wmsDN[1] | select * from t_user_id_map_01_8
| wmsDN[1] | select * from t_user_id_map_01_9
| wmsDN[2] | select * from t_user_id_map_02_0
....
这边表很多,其中dataNode是我们里面对应的结点
mysql> select * from t_user_id_map where f_uid=196606999;
+-----------+---------+-----------+-----------+---------------------+---------------------+
| F_uid | F_uname | F_enabled | F_user_id | F_create_time | F_modify_time |
+-----------+---------+-----------+-----------+---------------------+---------------------+
| 196606999 | | 1 | 749331999 | 2014-04-04 14:46:58 | 2014-04-04 14:46:58 |
+-----------+---------+-----------+-----------+---------------------+---------------------+
1 row in set (0.04 sec)
这边配置的是按F_uid最后三位分库分表的,dbRuleList配置的是倒数2,3位,
tbRuleList配置的是最后1位
我们看下是怎么路由的
mysql> explain select * from t_user_id_map where f_uid=196606999;
+-----------+---------------------------------------------------------+
| DATA_NODE | SQL |
+-----------+---------------------------------------------------------+
| wmsDN[99] | select * from t_user_id_map_99_9 where f_uid=196606999 |
+-----------+---------------------------------------------------------+
1 row in set (0.03 sec)
可以看到data_node --> wmsDN[99] ,分库位
t_user_id_map_99_9 对应的表
OK,先写到这里面,有什么问题随时欢迎交流!
分库分表中间件heisenberg架构.zip (80.2 KB)
下载次数: 424
heisenberg开发手册.zip (63.8 KB)
下载次数: 451
大小: 37.8 KB
大小: 44.5 KB
大小: 3.2 KB
大小: 4 KB
大小: 7.1 KB
大小: 9.9 KB
大小: 20.2 KB
你可能感兴趣的:(去年底写的mysql分库分表中间件heisenberg)
LVS集群技术介绍
Milgram Ma
lvs 运维 linux
LVS(LinuxVirtualServer)集群,即Linux虚拟服务器集群,是一个在Unix/Linux平台下实现负载均衡集群功能的系统。它由国人章文嵩博士在1998年开发,是中国国内最早出现的自由软件项目之一,现在LVS已经是Linux内核标准的一部分。LVS集群通过将多台服务器组织起来,共同对外提供服务,以提高系统的整体性能、可扩展性和高可用性。LVS的核心作用是分发网络请求,以达到以下目
MySQL索引深度解析:从原理到实战优化
本文将深入探讨MySQL索引的核心机制、工作原理及高级优化技巧,通过原理分析、实战案例和可视化演示,帮助您全面掌握索引这一数据库性能优化的关键利器。一、索引的本质与重要性1.1什么是索引?索引是数据库中用于快速查找数据的数据结构,类似于书籍的目录。MySQL索引基于B+树数据结构实现,这种设计使数据库能够高效地执行数据检索操作,避免全表扫描。1.2索引的重要性查询性能提升:合理使用索引可将查询速度
分享欲
雾眠汽泡水
分享建立在相互喜欢的基础上,这样才最有意义。让对方觉得自己不是讨人烦不是自作多情,付出的爱意也是值得的,所以对我来说分享事物这件事只有在有回应的基础上才最浪漫、最快乐。我真的觉得分享欲是很重要的一个东西,爱情友情都一样,如果对对方没有分享欲的话,这段感情也差不多结束了。我想和你慢慢的开始、慢慢的和你在一起,想和你大手牵小手、想和你看日落、想和你分享我们的事但一定是要和你。我的分享欲是代表超级超级喜
IA IP笔记
金麟༒
tcp/ip 笔记 网络协议
OSI参考模型应用层-----用来接收用户数据,人机交互接口表示层-----将逻辑语言转换为机器语言会话层-----针对传输的每一种数据建立一条独立的通道。数据的整合控制层面—上三层----不会对数据本身进行修改数据层面—下四层----对数据进行加工传输层-----区分流量信息,定义数据传输方式。TCP协议、UDP协议网络层-----通过IP地址进行逻辑寻址,IP协议数据链路层-----逻辑链路控
Markdown编辑器
金麟༒
编辑器
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML图表FLowchart流程图导出与导入导出导入欢迎使用Mark
疫情期间追剧推荐-港剧推荐《机场特警》
倩倩_3881
开这篇帖的原因一是因为我个人真的很爱看港剧(本人以前追韩星)但随着结婚生子,我发现我现在不太爱看肥皂爱情剧了,还是多喜欢讲生活,贴近生活的剧,但大陆剧多不现实,家长里短系列,婆婆妈妈没完没了的我也不喜欢,从小开始就钟情港剧,无论是破案,悬疑,刑侦,生活伦理几乎TVB的好剧我都不会放过。港真,是因为励志的内容太多啦,疫情期间我的情绪一直比较焦虑,做事都是不能够专心致志,因为没有办法去工作,没有办法减
加入公会主播的好处,讲讲我的感受
糖葫芦不甜
作为这一领域的一员,我有幸亲身体验了加入公会作为主播的种种好处,这些经历不仅让我的直播之路更加宽广平坦,也让我深刻感受到了团队力量的温暖与强大。以下,我将从个人感受出发,分享加入公会主播的几大显著优势。免费加入,一对一指导扶持↓初入直播圈,面对镜头难免会感到生疏与不安。而加入公会后,我获得了来自行业资深人士的专业指导。从直播内容的策划、话术技巧的提升,到形象包装、设备调试,公会都提供了详尽的培训和
直面生活的勇气
Vicki星
今晚终于约上了许久未见的一个闺蜜,我俩从十一开始约,因为各种各样的原因总是未能成行,今晚终于各自排除了一切问题约上了。我们约在她家里吃火锅,边火锅边聊着这2年的生活。半年前因为疫情影响,线下零售业受到很大冲击,她所在的珠宝行业也不可避免的受影响了,不想坐以待毙,冒着失业的风险,她还是选择了离职。离职后,意外收到了一封外包公司的项目offer,她成为了自由psi咨询顾问,离开家庭和孩子,住在北七家的
你的云边是否有小卖部?
0e1d1f4192ce
山这边是刘十三的童年,山那边是外婆的海。——题记新书刚出来,就在网易蜗牛读书上用最快的速度看完这本书。让我不禁感慨,我们何曾不都是书中的刘十三。从前面的毛头少年默默在泛黄的笔记本上写下我要考清华北大到后来同村伙伴骑车送他去一所毫不知名的大学期间经历的糗事,从《悲伤和希望都是一缕光》到《云下丢失的人,月下团圆的饭》开始有了而一点悲伤的预感。外婆王莺莺为了刘十三的保险任务量开始小卖部的优惠活动,刘十三
异乡人
想做厨子的小老师
一路上看到了成片成片的蓝天白云跟家乡的不甚相同却也是有别样的风采看到了不高的山山下散养的小羊成群一起觅食依稀还能看到它们身后放羊人的背影也看到了连在一起的戈壁滩没有水没有树连草都很少见却在人烟处的门前与一排排长的枝繁叶茂挂满脆枣的卫士们偶遇仿佛一群衣衫古朴的长者在低头认真倾诉这片土地百年来的变化带着些无奈又有些期许至于我在这片异域上的故事且慢慢记载吧
异世界之梦(十四)
柔滢
(图片来源于网络,若侵权请联系删除)我一遍遍地告诉自己一定要坚强,两天,接下来的两天决定了我和小家伙的命运,无论如何我也要把他送出去。身上头上满是血腥气,可我此刻也顾不上这些,我记得那对夫妇说过,出口在东面方向,那我就一直往东,我就不信我找不到出口。小家伙也许是哭累了,已经睡着了,我把他裹好,一步一步往东面走去。一路上雾气时有时无,天气也在雾气中多变着,一会儿热得如同蒸笼,一会儿又冷若寒潭,我在这
也说奥本海默
辛也的往事随风
几天前,日本东京电力开始排放核污水,到太平洋。没有人说什么。就像当年广岛和长崎的胖子和小男孩一样。原子弹的赫赫威名和威力才展示在世人面前,就截止了。因为其威力,才有了《核不扩散条约》,因为其威力才有了——核威慑。而在这之前,看到作为实验的人类第一次核爆,在目睹其巨大的威力之后,“原子弹之父”尤里乌斯·罗伯特·奥本海默当即引用了《薄伽梵歌》中的段落来形容这枚石破天惊的武器——“漫天奇光异彩,有如圣灵
全网最详细LVS(Linux Virtual Server)讲解
钮枯禄赵氏
云原生
一、集群和分布式简介1.1系统性能扩展方式ScaleUP:向上扩展,增强ScaleOut:向外扩展,增加设备,调度分配问题,Cluster1.2集群ClusterCluster:集群是为了解决某个特定问题将堕胎计算机组合起来形成的单个系统Cluster常见的三种类型:*LB:LoadBalancing(负载均衡)由多个主机组成,每个主机只承担一部分访问*HA:HighAvailiablity(高可
工作室线下培训
余清华乐平一小
今天上午八点左右,在乐平市第十一小学进行了"名师工作室线下培训会"。会议主要由蒋铭国老师和杨晓玲校长组织起来的活动。会议一共有四个阶段:第一阶段互相认识大家坐在一起自我介绍,许多老师介绍的非常好,我比较腼腆简单地说了学校和名字。杨校长说我讲的太快了连照片都来不及拍呢!第二阶段拍照留念杨校长找来了专业的摄影师给大家拍团队照、小组照及个人照,作为工作室里的图片资料。在这个阶段里,大家进一步互相认识有说
Linux笔记8 web服务器的部署及优化
月熊
笔记 linux
用户常用关于web的信息www概念www是worldwideweb的缩写,及万维网,也就是全球信息广播的意思通常说的上网就是使用www来查询用户所需要的信息。www可以结合文字、图形、影像以及声音等多媒体,超链接的方式将信息以Internet传递到世界各处去。当你连接www网站,该网站会提供一些数据,客户端要使用可以解析这些数据的软件来处理,那就是浏览器网址URI:UniformResourceI
Linux笔记9 DNS域名解析服务器
月熊
服务器 linux 笔记
简介DNS(DomainNameSystem)是互联网上的一项服务,它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。DNS使用的是53端口,通常DNS是以UDP这个较快速的数据传输协议来查询的,但是没有查询到完整的信息时,就会再次以TCP这个协议来重新查询所以启动DNS时,会同时启动TCP以及UDP的port53。因特网的域名结构由于因特网的用户数量较多,所以因特网在
广州天河区最新亲子鉴定收费费用标准(2024年8月最新更新)
民鉴基因科普
民鉴基因亲子鉴定中心预约热线:400-9989-716(微信号:gao897160)广州天河区亲子鉴定多少钱?广州天河区亲子鉴定正规机构收费标准在2000-4500元左右。不同类型的亲子鉴定其价格也不一样,此外,亲子鉴定的价格还要受到其他的因素的影响,因此,对于亲子鉴定的价格还需要联系自身需求以及当地机构的标准来。本篇文章小编给大家整理了2024最新广州天河区亲子鉴定正规机构收费标准供参考。广州天
顾华往事四:农庄之高血压及农庄的终结(2)
危微
看到多数女生紧张兮兮的惨相,男孩们充分表现出了男子汉气概。他们胳膊里压着棉签,一脸轻松地特地到李芳面前说上一两句:“老师,一点都不痛。”“老师,我都还没有感觉到,医生就说‘好了’。”“老师,我被医生扎了三次才抽到血。”李芳面前出现的是一条肥肥的胳膊,胳膊主人屠文胖嘟嘟的脸蛋含着骄傲的微笑,凸出身体的大肚子也似乎更加自豪地往外挺。李芳关切:“你不痛吗?这么可怜啊,扎了三次!”“是啊,比去年好多了,去
STM32实战开发(51):使用I2C与外部设备通信
嵌入式开发项目
2025年嵌入式开发 stm32 嵌入式硬件 单片机 物联网 前端
1.前言I2C(Inter-IntegratedCircuit)是一种串行通信协议,它广泛应用于嵌入式系统中,尤其适用于低速设备之间的通信。I2C协议的最大特点是它采用两线制传输数据(SDA和SCL),并支持多个设备连接在同一总线上。I2C的优势包括:传输速度较快、硬件连接简单、支持多个设备、低功耗等。因此,I2C广泛应用于温湿度传感器、LCD显示器、EEPROM存储、实时钟等外设的通信。在STM
大语文视角下的《落花生》
248广州刘在丽
“写课就是在思考教学,就是在表达思想。写课是一种很好的积累。写课不是简单的口头议论,而是对话、反思与梳理的综合过程。说话和写作都是表达,写出来是理性认识。评课带有随意性、不确定性。写课,能将散乱的评课组织化、条理化为显性经验。”——窦桂梅上周学校开展语文同课异构教学活动。观课前到观课结束,历时一周,思一次有一次的收获,进一寸有一寸的欢喜。从思到写是个慢过程,中间还得理解。思考记录本身是种积累,也是
人不能太小气
灵竹
听朋友说,假期回家,可是弟媳各种不爽,话里话外都是怨,没有一句好话。还不帮忙干活,好像我有点看到自己的影子,懒!我好懒,不爱干活。
华为OD机试2025 B卷 - 通过软盘拷贝文件 (C++ & Python & JAVA & JS & GO)
无限码力
华为OD机试真题刷题笔记 华为od 华为OD机试 华为OD机试 2025B卷 华为OD2025B卷 华为OD机考 2025B卷
通过软盘拷贝文件华为OD机试真题目录点击查看:华为OD机试2025B卷真题题库目录|机考题库+算法考点详解华为OD机试2025B卷100分题型题目描述有一名科学家想要从一台古董电脑中拷贝文件到自己的电脑中加以研究。但此电脑除了有一个3.5寸软盘驱动器以外,没有任何手段可以将文件持贝出来,而且只有一张软盘可以使用。因此这一张软盘是唯一可以用来拷贝文件的载体。科学家想要尽可能多地将计算机中的信息拷贝到
随感
蔷薇花开我最爱
中原焦点团队--欧阳小兰焦点中26期分享235天20210726本周约练0次,来51观12咨31案例分析4BOX练习14读书1次总117次。今天白天扎扎实实做了一天的工作,晚上回来,读书会也不参加了,认认真真学习社工的中级证的法律与法规,一晚上几个小时做30道题目,然后重做错题,用时长,但扎实,基本上把第一章一些概念性的知识搞清楚了。白天空闲的时候,突然觉得说话很慢是一种特别舒服的感觉,要知道以前
2019-08-14 撒下9
阿跃的灵修笔记
撒下9:3王说:“扫罗家还有人没有?我要照神的慈爱恩待他。”洗巴对王说:“还有约拿单的一个儿子,是瘸腿的。”我留意到大卫说“照神的慈爱恩待他”,意即恩待人的前提,是自己要先领受到神的慈爱,然后照着神怎样恩待我们,我们再去怎样恩待人。爱的源头是神,不是人里面的“我想对你好”。在后面的经文就看到,大卫不仅吩咐人耕种,并且要求把田地的出产拿来给约拿单瘸腿的儿子米非波设吃,还经常与他同席吃饭。我看到一方面
繁花落尽相思泪 春风十里不如你——小青柑结缘(五十一)
东篱品茶
繁花落尽相思泪春风十里不如你——小青柑结缘(五十一)话说,小青柑和假青柑同时出现,让精彩和桂花感觉事情肯定很复杂,决定坐下来听听真假小青柑怎么说。小青柑在告知真相之前,想弄明白牡丹三人是不是那个神秘组织的人,更想证实组织的金骏眉是不是也是假的。他有太多的问题想问,所以得静下心来,理清思路一个一个来。精彩和桂花想知道他们之间的故事,就等着小青柑开口。小青柑道:你们来阳城的真实目的是什么?与住持有关吗
秦始皇陵为何找到入口却不敢挖?
小青哥侃历史
关于秦始皇陵为什么不能开挖的问题,我们从以下几个方面分析一下:第一点:秦始皇陵作为中国第一批世界文化遗产,第一批重点文保单位,也是第一批4A级景区,其气势恢宏,景观巍峨,就是一笔巨大的财富,需要我们共同保护,从这一点来看不挖是最好的!第二点:秦始皇陵整体规模大约25万平方,十分巨大,发掘文物不能像开山取石般的暴力开挖,只能慢工细活,就拿兵马俑来说经过30多年的清理发掘,目前仅发掘清理出五分之一,如
STM32硬件I2C的注意事项
蓝黑墨水
stm32 单片机 嵌入式硬件
文章目录软件模拟I2C硬件的实现方式最近在研究I2C的屏幕使用。有两种使用方式,软件模拟I2C、硬件HAL使用I2C。软件模拟I2C发送数据是通过设置引脚的高低电平实现的。/*引脚配置*/#defineOLED_W_SCL(x)GPIO_WriteBit(GPIOB,GPIO_Pin_6,(BitAction)(x))#defineOLED_W_SDA(x)GPIO_WriteBit(GPIOB,
2023-08-21
de5ea6d11ab2
易佳npdp学习笔记NPDP(NewProductDevelopmentProfessional)是产品经理国际资格认证。NPDP由美国产品开发与管理协会(PDMA)所发起,是国际公认的唯一的新产品开发专业认证,集理论、方法与实践为一体的全方位知识体系,为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。经IBM采用后来被华为公司引入并取得巨大商业成功的IPD(IntegratedProdu
《昆虫记》读后感
刘耀文圈外正版女友
第十四章采棉蜂和采脂蜂我们知道,有许多蜜蜂像樵叶蜂一样自己不会筑巢,只会借居别的动物遗留或抛弃的巢作自己的栖身之所。有的蜜蜂会借居泥匠蜂的故居,有的会借居于蚯蚓的地道中或蜗牛的空壳里,有的会占据矿蜂曾经盘踞过的树枝,还有的会搬进掘地蜂曾经居住过的砂坑。第十五章西班牙犀头的自制我希望你还记得神圣甲虫,它消耗掉它的时间,做成即可以当食物,又可以当梨形窝巢的基础的圆球。我已经指出,这种形状对于小甲虫的利
Java String 正则表达式 设计模式 包装类 Object类 自动拆箱
额么么么么
java 正则表达式 设计模式
其它API(ApplicationProgramingInterface)应用程序接口(功能),我们java讲解最常用的一些功能。API作用:API表示的是功能,学习API可以快速进行编程开发。API设计初衷,设计者将复杂的业务逻辑,封装成方法,供调用者更好的使用。对于开发者而言,不需要关注功能的具体逻辑实现,只需要知道如何使用即可。Java提供了很多的包,有一些包需要导入,有一些不需要导入:1.
对股票分析时要注意哪些主要因素?
会飞的奇葩猪
股票 分析 云掌股吧
众所周知,对散户投资者来说,股票技术分析是应战股市的核心武器,想学好股票的技术分析一定要知道哪些是重点学习的,其实非常简单,我们只要记住三个要素:成交量、价格趋势、振荡指标。
一、成交量
大盘的成交量状态。成交量大说明市场的获利机会较多,成交量小说明市场的获利机会较少。当沪市的成交量超过150亿时是强市市场状态,运用技术找综合买点较准;
【Scala十八】视图界定与上下文界定
bit1129
scala
Context Bound,上下文界定,是Scala为隐式参数引入的一种语法糖,使得隐式转换的编码更加简洁。
隐式参数
首先引入一个泛型函数max,用于取a和b的最大值
def max[T](a: T, b: T) = {
if (a > b) a else b
}
因为T是未知类型,只有运行时才会代入真正的类型,因此调用a >
C语言的分支——Object-C程序设计阅读有感
darkblue086
apple c 框架 cocoa
自从1972年贝尔实验室Dennis Ritchie开发了C语言,C语言已经有了很多版本和实现,从Borland到microsoft还是GNU、Apple都提供了不同时代的多种选择,我们知道C语言是基于Thompson开发的B语言的,Object-C是以SmallTalk-80为基础的。和C++不同的是,Object C并不是C的超集,因为有很多特性与C是不同的。
Object-C程序设计这本书
去除浏览器对表单值的记忆
周凡杨
html 记忆 autocomplete form 浏览
&n
java的树形通讯录
g21121
java
最近用到企业通讯录,虽然以前也开发过,但是用的是jsf,拼成的树形,及其笨重和难维护。后来就想到直接生成json格式字符串,页面上也好展现。
// 首先取出每个部门的联系人
for (int i = 0; i < depList.size(); i++) {
List<Contacts> list = getContactList(depList.get(i
Nginx安装部署
510888780
nginx linux
Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源
java servelet异步处理请求
墙头上一根草
java 异步返回 servlet
servlet3.0以后支持异步处理请求,具体是使用AsyncContext ,包装httpservletRequest以及httpservletResponse具有异步的功能,
final AsyncContext ac = request.startAsync(request, response);
ac.s
我的spring学习笔记8-Spring中Bean的实例化
aijuans
Spring 3
在Spring中要实例化一个Bean有几种方法:
1、最常用的(普通方法)
<bean id="myBean" class="www.6e6.org.MyBean" />
使用这样方法,按Spring就会使用Bean的默认构造方法,也就是把没有参数的构造方法来建立Bean实例。
(有构造方法的下个文细说)
2、还
为Mysql创建最优的索引
annan211
mysql 索引
索引对于良好的性能非常关键,尤其是当数据规模越来越大的时候,索引的对性能的影响越发重要。
索引经常会被误解甚至忽略,而且经常被糟糕的设计。
索引优化应该是对查询性能优化最有效的手段了,索引能够轻易将查询性能提高几个数量级,最优的索引会比
较好的索引性能要好2个数量级。
1 索引的类型
(1) B-Tree
不出意外,这里提到的索引都是指 B-
日期函数
百合不是茶
oracle sql 日期函数 查询
ORACLE日期时间函数大全
TO_DATE格式(以时间:2007-11-02 13:45:25为例)
Year:
yy two digits 两位年 显示值:07
yyy three digits 三位年 显示值:007
线程优先级
bijian1013
java thread 多线程 java多线程
多线程运行时需要定义线程运行的先后顺序。
线程优先级是用数字表示,数字越大线程优先级越高,取值在1到10,默认优先级为5。
实例:
package com.bijian.study;
/**
* 因为在代码段当中把线程B的优先级设置高于线程A,所以运行结果先执行线程B的run()方法后再执行线程A的run()方法
* 但在实际中,JAVA的优先级不准,强烈不建议用此方法来控制执
适配器模式和代理模式的区别
bijian1013
java 设计模式
一.简介 适配器模式:适配器模式(英语:adapter pattern)有时候也称包装样式或者包装。将一个类的接口转接成用户所期待的。一个适配使得因接口不兼容而不能在一起工作的类工作在一起,做法是将类别自己的接口包裹在一个已存在的类中。 &nbs
【持久化框架MyBatis3三】MyBatis3 SQL映射配置文件
bit1129
Mybatis3
SQL映射配置文件一方面类似于Hibernate的映射配置文件,通过定义实体与关系表的列之间的对应关系。另一方面使用<select>,<insert>,<delete>,<update>元素定义增删改查的SQL语句,
这些元素包含三方面内容
1. 要执行的SQL语句
2. SQL语句的入参,比如查询条件
3. SQL语句的返回结果
oracle大数据表复制备份个人经验
bitcarter
oracle 大表备份 大表数据复制
前提:
数据库仓库A(就拿oracle11g为例)中有两个用户user1和user2,现在有user1中有表ldm_table1,且表ldm_table1有数据5千万以上,ldm_table1中的数据是从其他库B(数据源)中抽取过来的,前期业务理解不够或者需求有变,数据有变动需要重新从B中抽取数据到A库表ldm_table1中。
HTTP加速器varnish安装小记
ronin47
http varnish 加速
上午共享的那个varnish安装手册,个人看了下,有点不知所云,好吧~看来还是先安装玩玩!
苦逼公司服务器没法连外网,不能用什么wget或yum命令直接下载安装,每每看到别人博客贴出的在线安装代码时,总有一股羡慕嫉妒“恨”冒了出来。。。好吧,既然没法上外网,那只能麻烦点通过下载源码来编译安装了!
Varnish 3.0.4下载地址: http://repo.varnish-cache.org/
java-73-输入一个字符串,输出该字符串中对称的子字符串的最大长度
bylijinnan
java
public class LongestSymmtricalLength {
/*
* Q75题目:输入一个字符串,输出该字符串中对称的子字符串的最大长度。
* 比如输入字符串“google”,由于该字符串里最长的对称子字符串是“goog”,因此输出4。
*/
public static void main(String[] args) {
Str
学习编程的一点感想
Cb123456
编程 感想 Gis
写点感想,总结一些,也顺便激励一些自己.现在就是复习阶段,也做做项目.
本专业是GIS专业,当初觉得本专业太水,靠这个会活不下去的,所以就报了培训班。学习的时候,进入状态很慢,而且当初进去的时候,已经上到Java高级阶段了,所以.....,呵呵,之后有点感觉了,不过,还是不好好写代码,还眼高手低的,有
[能源与安全]美国与中国
comsci
能源
现在有一个局面:地球上的石油只剩下N桶,这些油只够让中国和美国这两个国家中的一个顺利过渡到宇宙时代,但是如果这两个国家为争夺这些石油而发生战争,其结果是两个国家都无法平稳过渡到宇宙时代。。。。而且在战争中,剩下的石油也会被快速消耗在战争中,结果是两败俱伤。。。
在这个大
SEMI-JOIN执行计划突然变成HASH JOIN了 的原因分析
cwqcwqmax9
oracle
甲说:
A B两个表总数据量都很大,在百万以上。
idx1 idx2字段表示是索引字段
A B 两表上都有
col1字段表示普通字段
select xxx from A
where A.idx1 between mmm and nnn
and exists (select 1 from B where B.idx2 =
SpringMVC-ajax返回值乱码解决方案
dashuaifu
Ajax springMVC response 中文乱码
SpringMVC-ajax返回值乱码解决方案
一:(自己总结,测试过可行)
ajax返回如果含有中文汉字,则使用:(如下例:)
@RequestMapping(value="/xxx.do") public @ResponseBody void getPunishReasonB
Linux系统中查看日志的常用命令
dcj3sjt126com
OS
因为在日常的工作中,出问题的时候查看日志是每个管理员的习惯,作为初学者,为了以后的需要,我今天将下面这些查看命令共享给各位
cat
tail -f
日 志 文 件 说 明
/var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一
/var/log/secure 与安全相关的日志信息
/var/log/maillog 与邮件相关的日志信
[应用结构]应用
dcj3sjt126com
PHP yii2
应用主体
应用主体是管理 Yii 应用系统整体结构和生命周期的对象。 每个Yii应用系统只能包含一个应用主体,应用主体在 入口脚本中创建并能通过表达式 \Yii::$app 全局范围内访问。
补充: 当我们说"一个应用",它可能是一个应用主体对象,也可能是一个应用系统,是根据上下文来决定[译:中文为避免歧义,Application翻译为应
assertThat用法
eksliang
JUnit assertThat
junit4.0 assertThat用法
一般匹配符1、assertThat( testedNumber, allOf( greaterThan(8), lessThan(16) ) );
注释: allOf匹配符表明如果接下来的所有条件必须都成立测试才通过,相当于“与”(&&)
2、assertThat( testedNumber, anyOf( g
android点滴2
gundumw100
应用服务器 android 网络应用 OS HTC
如何让Drawable绕着中心旋转?
Animation a = new RotateAnimation(0.0f, 360.0f,
Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,0.5f);
a.setRepeatCount(-1);
a.setDuration(1000);
如何控制Andro
超简洁的CSS下拉菜单
ini
html Web 工作 html5 css
效果体验:http://hovertree.com/texiao/css/3.htmHTML文件:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>简洁的HTML+CSS下拉菜单-HoverTree</title>
kafka consumer防止数据丢失
kane_xie
kafka offset commit
kafka最初是被LinkedIn设计用来处理log的分布式消息系统,因此它的着眼点不在数据的安全性(log偶尔丢几条无所谓),换句话说kafka并不能完全保证数据不丢失。
尽管kafka官网声称能够保证at-least-once,但如果consumer进程数小于partition_num,这个结论不一定成立。
考虑这样一个case,partiton_num=2
@Repository、@Service、@Controller 和 @Component
mhtbbx
DAO spring bean prototype
@Repository、@Service、@Controller 和 @Component 将类标识为Bean
Spring 自 2.0 版本开始,陆续引入了一些注解用于简化 Spring 的开发。@Repository注解便属于最先引入的一批,它用于将数据访问层 (DAO 层 ) 的类标识为 Spring Bean。具体只需将该注解标注在 DAO类上即可。同时,为了让 Spring 能够扫描类
java 多线程高并发读写控制 误区
qifeifei
java thread
先看一下下面的错误代码,对写加了synchronized控制,保证了写的安全,但是问题在哪里呢?
public class testTh7 {
private String data;
public String read(){
System.out.println(Thread.currentThread().getName() + "read data "
mongodb replica set(副本集)设置步骤
tcrct
java mongodb
网上已经有一大堆的设置步骤的了,根据我遇到的问题,整理一下,如下:
首先先去下载一个mongodb最新版,目前最新版应该是2.6
cd /usr/local/bin
wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.6.0.tgz
tar -zxvf mongodb-linux-x86_64-2.6.0.t
rust学习笔记
wudixiaotie
学习笔记
1.rust里绑定变量是let,默认绑定了的变量是不可更改的,所以如果想让变量可变就要加上mut。
let x = 1; let mut y = 2;
2.match 相当于erlang中的case,但是case的每一项后都是分号,但是rust的match却是逗号。
3.match 的每一项最后都要加逗号,但是最后一项不加也不会报错,所有结尾加逗号的用法都是类似。
4.每个语句结尾都要加分