data.userPhone = data.userPhone.replace(/(\d{3})\d{4}(\d{4})/g,‘
使用正则:Regex.Replace(手机号, "(\\d{3})\\d{4}(\\d{4})", "$1****$2"); 效果:
1.匹配手机号(查询记录中是否包含手机号) select content from chat_record where content REGEXP "[1][35678][0-9]{9}" 2.匹配电子邮箱
Atlas MySQL 详细介绍 Atlas是由 Qihoo 360, Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。...它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基础上,修改了大量bug,添加了很多功能特性。...A: SQL语句前增加 /*master*/ 就可以将读请求强制发往主库 Q: 主库宕机,读操作受影响么? A: 在atlas中是不会的!...将主流程中所有Lua代码改为纯C实现,Lua仅用在管理接口 2. 重写网络模型、线程模型 3. 实现了真正意义的连接池 4. 优化了锁机制,性能提高数十倍 ........./mysql-proxyd instance restart 查看运行状态: PREFIX/bin/mysql-proxyd instance status
str,regx){ var phoneNums = str.match(regx); for(var i= 0;i<phoneNums.length;i++){ //手机号全部替换...//str = str.replace(phoneNums[i],"[****]"); var temp = phoneNums[i] //隐藏手机号中间...4位(例如:12300102020,隐藏后为132****2020) temp = temp.replace(/(\d{1})\d{9}(\d{1})/,''$1*********$2'
Atlas是由 Qihoo 360公司Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。...它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基础上,修改了大量bug,添加了很多功能特性。...github地址 介绍 一、安装 安装 在安装之前, 服务器上必须要装有mysql, altas会用到mysql的组件。...log (必备,根据实际情况配置)SQL日志的开关,可设置为OFF、ON、REALTIME,OFF代表不记录SQL日志,ON代表记录SQL日志,该模式下日志刷新是基于缓冲区的,当日志填满缓冲区后,才将日志信息刷到磁盘...查看后端mysql状态信息 mysql> select * from backends -> ; +-------------+-------------------+-------+-----
MySQL Router可以自动适应拓扑更改,但在某些情况下,我们可以使用特定属性标记一个实例,这个属性将更改路由器的默认行为。...在8.0.21版本中,我们在AdminAPI引入了标记框架,通过它我们能够引入非常需要的功能: 隐藏MySQL InnoDB Cluster / ReplicaSet实例 为什么要隐藏实例?...暂时将实例标记为无法接收流量这一功能非常重要,因为它可以: 在服务器上执行滚动升级而不会中断传入流量 在服务器上执行维护操作或配置更改,而不必停止MySQL 将服务器从滞后的客户端工作负载中排除 排除出于灾难恢复目的而位于不同区域...在特定实例上启用标签,您可以指示MySQL Router 将实例从客户端应用程序的候选目标列表中排除。...结论 对于MySQL InnoDB Cluster和ReplicaSet的任何生产部署,隐藏实例无疑是一项重要功能。
MySQL 8.0 支持隐藏索引(invisible index),也称为不可见索引。隐藏索引不会被优化器使用。...它允许快速启用/禁用MySQL Optimizer使用的索引;主键不能设置为隐藏(包括显式设置或隐式设置)。 索引默认是可见的(visible)。...除此之外,字段 j 上的唯一索引不再是一个隐式的主键,因此可以设置为隐藏索引: mysql> ALTER TABLE t2 ALTER INDEX j_idx INVISIBLE; Query OK,...MySQL不会抛出任何错误,因为索引存在,但它不可见。即使有另一个可用的索引,它也将执行全表扫描。在大型表上,这可能会导致严重的性能问题。...强制隐藏索引这时候可能会很有用。 你有许多索引,但不确定哪一个未使用。你可以将一个索引更改为不可见,以查看是否存在任何性能下降。如果是,你可以立即更改。
在使用utf8字符编码的情况下: char(11) 用来存储手机号,会占用11 bytes bigint 用来存储手机号,会占用 8 bytes varchar(11)用来存储手机号,会占用 12...因此,为什么不使用bigint存储手机号呢? 手机号一般是要加索引的吧。。bigint你用了like索引就失效了 1.首先,手机号的本质是字符串而不是数字,只是恰巧长得像数字而已。...); 支持更多的操作,比如between and操作; VARCHAR的优势: 灵活;设计时候可以指定最大长度,存储时,存多少占用多少; CHAR的优势: 效率比varchar更高; 假设我们将字段内容设计为...:9100000000Byte,换算一下不到8.5GB,数据冗余备份共3个副本的话,就是25.5GB;节省的空间相当有限,因为其本身占用空间就不大,相信这个空间节省很难打动一个拥有13亿数据量的应用,将手机号存储切换至...bigint; 这还是考虑到4位区号的情况下,如果不考虑区号,不计算副本,空间节省将变成不到3.7GB;实在难以让人心动; 支持between and操作这个优势,varchar也能使用正则表达式来实现相同的功能
下面将介绍如何通过LiteDB将自己的程序进行加密,实现介绍一下LiteDB。 LiteDB LiteDB是一个轻量级的嵌入式数据库,它是用C#编写的,适用于.NET平台。...索引可以加快查询的速度,全文搜索可以在文本数据中进行关键字搜索,文件存储可以将文件直接存储在数据库中。 LiteDB的优点包括易于使用、轻量级、快速和可嵌入性。...在存储到LiteDB的时候可以对于存储的内容进行加密,然后在AppDomain.CurrentDomain.AssemblyResolve触发的时候将读取LiteDB的文件的内容的时候进行解密。
上一篇介绍了MySQL8.0新特性之隐藏索引《MySQL 8.0新特性:隐藏索引》,这篇文章主要给大家介绍了关于MySQL 8.0新特性之隐藏字段; MySQL 8.0.23 版本增加了一个新的功能:隐藏字段...对于SELECT *查询,星号(*)代表了表中除隐藏字段之外的所有字段,因此我们可以将新加的字段定义为隐藏字段。该隐藏字段对于SELECT *查询是不可见的,因此应用能够继续运行。...如果将所有字段都设置为隐藏字段,将会返回错误。 隐藏字段支持常见的字段属性:NULL、NOT NULL 以及 AUTO_INCREMENT 等等。...>>select i,j from t1_view; ERROR 1054 (42S22): Unknown column 'j' in 'field list' 将字段j设置为可见 mysql>...同时,它们在导出的数据中包含了隐藏字段的值。如果将导出文件加载到不支持的隐藏字段的低版本 MySQL 中,将会忽略基于版本的注释信息,从而将隐藏字段作为可见字段使用。
title: MySQL技巧系列(4)随机手机号 date: 2019-01-24 15:00:00 +0800 update: 2019-01-24 15:00:00 +0800 author...me cover: https://ws1.sinaimg.cn/large/006jIRTegy1fzk6obwqvmj31kw0w0n63.jpg preview: 作为搬砖党的一族们,对MySQL...一定再熟悉不过了,MySQL 是最流行的关系型数据库管理系统 tags: MySQL技巧系列 ---- 文章目录 MySQL技巧系列(4)随机手机号 缘由: 代码: 转载 我的主页 ?...MySQL技巧系列(4)随机手机号 缘由: 测试数据需要造一些手机号码、微信账号 代码: -- 随机手机号 CREATE FUNCTION `generatePhone`() RETURNS char
什么是MyCat 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务、ACID、可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群 一个融合内存缓存技术...、NoSQL技术、HDFS大数据的新型SQL Server 结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品 一个新颖的数据库中间件产品 为什么使用MyCat 如今随着互联网的发展,数据的量级也是撑指数的增长...用于捆绑到Datanode上 5.分片规则:前面讲了数据切分,一个大表被分成若干个分片表,就需要一定的规则,这样按照某种业务规则 把数据分到某个分片的规则就是分片规则,数据切分选择合适的分片规则非常重要,将极大的避免后续数据处理的难...> create database test1; mysql> use test1; mysql> create table tab1(id int primary key auto_increment...> grant all on *.* to root@'192.168.171.%' identified by '123'; #将mysql命令复制过去,是mycat能简单使用 [root@master
回到正题,MySQL的中间件其实有很多,官方的开源的,我们就来简单来说说,行业里还有很多的方案,有些还没有做调研,就没在文中及时推出来。 先来说说MySQL中间件能够做什么?...MySQL Fabric, MySQL Router,MySQL Proxy Fabric能提供MySQL的HA和Sharding方案,MySQL Router是一个轻量级的中间件用来实现高可用和扩展性的功能...而MySQL Router中间件的访问协议与MySQL一致,应用不需要做任何的修改,在MySQL官方近期推出的InnoDB Cluster中MySQL Router是作为“三驾马车”来使用的。...还有一本Mycat相关的书《分布式数据库架构及企业实践——基于Mycat中间件》 根据我的了解,他主要是支持MySQL,同时也支持其它的数据库,比如Oracle等等,也是一波好友一起来做得这个事情...我比较喜欢它的一个原因是因为开源,而且源代码是Java. oneproxy 这是前支付宝的架构师楼总开发,目前支持多中数据库,基于MySQL官方 的proxy思想利用c进行开发的,OneProxy是一款商业收费的中间件
一、mysql-proxy简介 mysql-proxy是mysql官方提供的mysql中间件服务,上游可接入若干个mysql-client,后端可连接若干个mysql-server,它使用mysql协议...,任何连接mysql的上游无需任何更改即可迁移至mysql-proxy上。...mysql-proxy最基本的用法,就是作为一个请求拦截,请求中转的中间层: ? 进一步的,mysql-proxy可以分析与修改请求。拦截查询和修改结果,需要通过编写Lua脚本来完成。...只支持mysql5.0+的mysql协议。 (3)如果开启负载均衡,那事务怎么办?所有的query会发往同一台mysql么? 如果用户不专门定制Lua脚本,会发往同一台mysql,以保证其完整性。...不可以,作为中间人,不能处理加密信息。 (10)proxy不会获取和保存我的明文密码吧? 不会,也获取不到。mysql协议不允许密码以明文传输,传输的都是加密后的密文。
MySQL8.0开始支持隐藏索引(invisible indexes),隐藏索引不会被优化器使用,如果你想验证某个索引删除之后的查询性能影响,就可以暂时先隐藏该索引。...但是有一点主键不能被设置为隐藏索引,当表中没有显式主键时,表中第一个唯一非空索引会成为隐式主键,也不能设置为隐藏索引。...mysql> explain select * from student where id_card=100; +----+-------------+---------+------------+--...alter table student alter index idx_id_card invisible; 查询某个表中的索引是否为隐藏索引 mysql> SELECT INDEX_NAME, IS_VISIBLE...如果设置为on,即使隐藏索引不可见,优化器在生成执行计划时仍会考虑使用隐藏索引。 参考了MySQL官方文档《refman-8.0-en.a4》。
在MySQL很多测试场景,需要人工生成一些测试数据来测试。本文提供一个构造MySQL大表存储过程,可以生成包含用户名,手机号码,出生日期等字段。也可以通过滤重来使得手机号码不重复,模拟现实场景。...一、生成脚本 生成说明: 以下使用存储过程批量生成包含用户名,手机号,出生日期等字段大表。 该存储过程使用基于uid作为主键,因此会生成少量重复手机号码,后面有滤重SQL脚本。...如果想一次性生成不重复手机号码,可以考虑修改以下脚本,去掉uid,基于mobile列作为主键 DROP TABLE IF EXISTS big_table; DROP PROCEDURE IF EXISTS
隐藏索引是指索引对MySQL优化器隐藏(不可见),开启该功能后,索引并没有真的消失,相关的维护还存在,只是优化器并不去使用该索引。这个功能在测试评估索引有效性时非常有用。...| YES | | b_idx | NO | | c_idx | NO | +------------+------------+ 当将索引设置为不可见时...查询的执行计划和之前的不同 查询出现在慢日志中 Performance Schema里面相关的查询工作量会增加 此外,隐藏索引不影响索引的维护。数据发生更改的同时,索引也会持续更新。...另外需要注意的一点,如果没有显式主键的表具有NOT NULL列的唯一索引,该索引和显式主键具有相同的约束,不能隐藏该索引。...https://dev.mysql.com/doc/refman/8.0/en/invisible-indexes.html 感谢关注MySQL!
本文不会去介绍mysql的高可用,需要了解Mysql高可用架构相关的请戳 浅谈MySQL集群高可用架构,本文主要介绍mysql的访问中间件(DAL)的一些实现方案。...协议的数据中间层项目。...2.3.主要功能 1.读写分离 2.从库负载均衡 3.IP过滤 4.自动分表 5.DBA可平滑上下线DB 6.自动摘除宕机的DB Atlas相对于官方MySQL-Proxy的优势 1.将主流程中所有Lua...MySQL Proxy就是这么一个中间层代理,简单的说,MySQL Proxy就是一个连接池,负责将前台应用的连接请求转发给后台的数据库,并且通过使用lua脚本,可以实现复杂的连接控制和过滤,从而实现读写分离和负载平衡...8.2.优点 (1)不需要使用中间件对性能没有影响 (2)通过代码控制,可定义性强 9.后记 对于上面的mysql中间件,我个人建议在生产中使用atlas和mycat,开发实力较强或者有DBA的情况下可以使用客户端分片
应用场景 在个人中心或者中奖人名单是用户的手机号码,为了保护用户隐私,需要将手机号码的中间四位数替换为星号!.../["156****5699", "156****5699", "156****5699", "156****5699", "156****5699"] ---- withPhone函数解析 由于是对手机号码的批量处理...,所以对传入手机号码的数组phoneArr进行forEach方法的循环; 对循环的当前值进行正则匹配替换方法replace; 由于replace方法是返回一个替换后的一个新的字符串,所以需要一个arr数组接收
领取专属 10元无门槛券
手把手带您无忧上云