首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

MySQL上线,检查数据库设计的“十条规”

MySQL作为关系型数据库的典型代表,在国内环境里经历风雨磨砺,不断地精进,已经在开发和运维方面,成型了一套的规范。...这些规范让了解和使用MySQL更加得心应手,并对后期的一些问题起到了很好的预防作用。 结合个人经验,下面具体讲解十个“规检查”: 1. 数据库大表信息查看 统计某库下各表大小,不要存在过大的表信息。...做好上线数据库设计方面的规检查,是必不可少的流程。...关于作者 崔虎龙,云和恩墨MySQL技术顾问,长期服务于金融、游戏、物流等行业的数据中心,设计数据存储架构,并熟悉数据中心运营管理的流程及规范,自动化运维等。...2年多开发经验,10年数据库运维工作经验,其中专职做MySQL工作8年;曾经担任过项目经理、数据库经理、数据仓库架构师、MySQL技术专家、DBA等职务;涉及行业:金融(银行、理财)、物流、游戏、医疗、

1.5K70

如何不写一行代码 Mysql json 字符串解析为 Elasticsearch 的独立字段

1、事出有因 实战问题:有数百万数据需要导入 Elasticsearch 做性能对比测试,但当前数据存储在 Mysql 中,且核心字段以 Json 字符串形式存储。Mysql 存储如下所示: ?...接收同事是非开发人员,如果不写一行代码(脚本)就更好了! 2、方案探讨 2.1 前置认知 比较成熟同步方案选型。 Mysql 到 Elasticsearch 同步选定:logstash。...2.2 Json 字段的处理方案 2.2.1 方案一:遍历 Mysql,解析Json。 逐行遍历 Mysql Json 字符串字段解析为单个字段,更新到Mysql中。...3、实战一 如前分析,方案一、二 也能搞定。 但是,方案三更方便,更适合技术小白人员甚至非技术人员。 我们就以方案三实战一。...数据源 json 字符串已经拆分为独立字段:area、loc、author 等。 拆分结果达到预期,就加了管道预处理一下,没有写一行脚本。 5、小结 ?

2.7K30

KangLe mysql数据库目录移动到home目录

KangLe mysql数据库目录移动到/home目录使其更安全,重装系统也不怕丢数据    kangle ep面板是采用的yum安装的mysql,mysql数据库目录位置在/var/lib/mysql...,那么我们现在移动至/home/mysqldata目录(如果你的vps构架是ovz就不需要了,就是没有数据盘),注意先初始化好mysql,也就是说一定要在kangleep面板里mysql的root密码设置好...mysql service mysqld stop(注意如果是mysql5.1或5.5使用service mysql stop) 移动到/home/mysqldata目录 mv /var/lib/mysql.../home/mysqldata 创建软连 ln -s /home/mysqldata /var/lib/mysql 编辑mysql配置my.cnf文件 vi /etc/my.cnf 修改下面的项目.../mysqld.log pid-file=/home/mysqldata/mysqld.pid 保存退出 重启mysql service mysqld start

2.4K30

MySQL只改一行数据,锁这么多吗?

导读 这篇文章我想来聊聊 MySQL 的锁是怎么加上的,为啥想聊这个呢?主要是因为业务中我们或多或少都会使用到锁,毕竟锁是保障我们数据安全性的关键法宝。...01 啥时候加 1.1 显示锁 MySQL 的加锁可以分为显示加锁和隐式加锁,显示加锁我们比较好识别的,因为他往往直接体现在 SQL 中,常见的显示加锁语句主要有: ▶︎ select ... for...id,这样当一个事务执行的时候,很容易能知道自己能看见什么数据,不能看见什么数据,这时候读取数据自然也就不会受到锁的影响能够正常地读取啦。...因为这时除了加 a 上的索引,还有回表更新的操作,此时访问到的主键上的索引也会被加锁,因为是同一行,所以此时更新同样被阻塞住; ▶︎ 同样的道理,当我们去更新的 b=0 的数据对应的主键索引上也是同一条数据...where a = 0; [block] insert into t_db_lock values(1,1,1) [success] ▶︎ sessionA 根据范围加锁,锁了 id=0 和 5 这两行数据

17110

MongoDB的全量数据导入到MySQL

MongoDB的全量数据导入到MySQL里借助开源DuckDB - 嵌入式DB的OLAP类型(采用列式存储)充当ETL工具http://duckdb.org/功能概述:- 无需安装,就一个启动文件duckdb...- 支持映射MySQL数据库,直接在本地读写MySQL数据- 支持读取本地json文件- 没有端口号,本地运行To Do List:第一步,导出MongoDB的t1表shell> /usr/local...* FROM read_json_auto('t1.json');#注:会根据json文件内容,自动创建表结构第四步,映射远端MySQL hh库,并起一个数据库别名mysql_hhduckdb> ATTACH...);第五步,从DuckDB里取出me库t1表的数据写入远端MySQL hh库的t1表里duckdb> create table mysql_hh.t1 as SELECT * EXCLUDE('_id'...) FROM me.t1;#注:这里排除掉_id列(mongodb默认的主键自增列)第六步,现在你回到MySQL里,查看hh库的t1表,数据已经全部导入进去了。

20210

理解group by

2.FROM test Group BY name:该句执行后,我们想象生成了虚拟表3,如下所图所示,生成过程是这样的:group by name,那么找name那一列,具有相同name值的行,合并成一行...,如对于name值为aa的,那么与两行并成1行,所有的id值和number值写到一个单元格里面。...(3)那么对于id和number里面的单元格有多个数据的情况怎么办呢?答案就是用聚合函数,聚合函数就用来输入多个数据,输出一个数据的。...number列执行sum操作,即2+3,返回5,最后执行结果如下: (5)group by 多个字段该怎么理解呢:如group by name,number,我们可以name和number 看成一个整体字段...如执行select name,sum(id) from test group by name,number,结果如下图: (已失效)文章出处:理解group by和聚合函数 注意:mysql对group

1.1K10

Group by 分组详解

2.FROM test Group BY name:该句执行后,我们想象生成了虚拟表3,如下所图所示,生成过程是这样的:group by name,那么找name那一列,具有相同name值的行,合并成一行...,如对于name值为aa的,那么与两行并成1行,所有的id值和number值写到一个单元格里面。...(3)那么对于id和number里面的单元格有多个数据的情况怎么办呢?答案就是用聚合函数,聚合函数就用来输入多个数据,输出一个数据的。...number列执行sum操作,即2+3,返回5,最后执行结果如下: (5)group by 多个字段该怎么理解呢:如group by name,number,我们可以name和number 看成一个整体字段...如执行select name,sum(id) from test group by name,number,结果如下图: (已失效)文章出处:理解group by和聚合函数 注意:mysql对group

1.6K10

pycharm连接mysql数据库代码_怎么Python与pycharm连接

PyCharm版本:2020.3 使用PyCharm连接数据库(MySQL) 前言 步骤 SQLite 总结 ---- 前言 最好使用PyCharm Professional版 ---- 步骤...右侧工具栏有Database,点击打开 如果没有,则在view | Tool Windows | Database选择显示 2.点击 Database 中的 +, 选择 Data Source, 选择 MySQL...3.填写远程连接MySQL数据库的参数 Host: 远程ip,若是 连接本地MySQL 直接写 localhost 即可 Database: 填写数据库名称,不写默认连接之后,可以查看当前用户权限下的所有数据库...User: MySQL用户名 Password: MySQL密码 注意: 首次连接需要下载驱动,点击左下角的 Download 下载 等待下载完毕 下载完毕后,点击test connection...,测试连接 成功显示Successful Details 测试成功 SQLite SQLite:使用sqlite数据库 ---- 总结 以上就是PyCharm连接数据库,希望能帮助到大家

8.3K11

分享8个提高工作效率的Excel技巧

3.复制划定区域,再进行黏贴,选择“仅复制数据”,这样一来,划定区域的公式会被消去,最后不需要的数据进行删除就好。 点击播放 GIF 0.5M 同理,多列变一列也可以用=XX来进行操作。...点击播放 GIF 0.3M 五、输入大写金额 有一个特别简单的输入大写金额的办法,用搜狗输入法输入字母V,再输入需要大写的数据,会自动出现大写的金额,直接选择即可,再大的金额都不怕了!...点击播放 GIF 0.2M 六、两行并成一行 先将行宽设置到足够宽,能放下合并的所有文字内容,点击“开始”—“填充”—“两端对齐”(内容重排),即可将两行并成一行。...点击播放 GIF 0.1M 七、数据排序 选择需要进行排序的单元格,右击鼠标—选择“排序”,如果其它数据需要紧跟排序数字的话,则选择“扩展选定区域”。

91310

使用Navicat for MySQL本地数据库上传到服务器

服务器系统基本都是基于linux的,这个数据库上传的方式适用于linux的各种版本,比如Ubuntu和Centos(尽管这两个版本各种大坑小坑,但至少在数据库传输上保持了一致性)   当然本地数据库上传到服务器的前提是...,服务器也已经安装好了MySQL数据库 1.在服务器端: 1.linux如何查看mysql是否启动 service mysqld status mysqld is stopped 那就说明mysql服务是停止状态...mysqld is running 那就说明mysql服务是启动状态  2.重启mysql service mysqld restart 3.登录mysql #如果是刚刚安装了mysql,密码为空,直接按...需要在这里密码设置了,如果已经有密码了就不用了 set password =password('123456'); flush privileges; 5.退出mysql quit 2.在本地: 1....3.数据传输,如图 图1 ? 图2 ? 图3 ?  至此,完成了本地数据库传输到服务器的过程 可以到服务器端,进入mysql查看一下,是否已经上传成功: ?

8.4K70

使用Navicat for MySQL本地数据库上传到服务器

服务器系统基本都是基于linux的,这个数据库上传的方式适用于linux的各种版本,比如Ubuntu和Centos(尽管这两个版本各种大坑小坑,但至少在数据库传输上保持了一致性)   当然本地数据库上传到服务器的前提是...,服务器也已经安装好了MySQL数据库 1.在服务器端: 1.linux如何查看mysql是否启动 service mysqld status mysqld is stopped 那就说明mysql服务是停止状态...mysqld is running 那就说明mysql服务是启动状态  2.重启mysql service mysqld restart 3.登录mysql #如果是刚刚安装了mysql,密码为空,直接按...需要在这里密码设置了,如果已经有密码了就不用了 set password =password('123456'); flush privileges; 5.退出mysql quit 2.在本地: 1....3.数据传输,如图 图1 ? 图2 ? 图3 ?  至此,完成了本地数据库传输到服务器的过程 可以到服务器端,进入mysql查看一下,是否已经上传成功: ?

6.2K21

简化一段javascript代码

在实际的项目中,我们经常会有如下的需求: 从一个map中获取某key的值,如果发现对应的key的值为null,则为该key创建一个值(一般为初始值),然后这个值存回到map中,代码如下: var value...赋值操作合并 首先,value = "" 和 map[key] = value这两行没必要写成两行,都是赋值,应此可以这样优化: var value = map[key]; if(value == null...){ value = map[key] = ""; } 去掉if判断 如果if判断,改成三元运算符,可以减少代码,如下: var value = map[key]; value...] = "") : value; 如果用 || 符号,看起来更加方便: var value = map[key]; value = value || (map[key] = ""); 当然,这两行代码...,最终可以合并成如下代码: var value = map[key] || (map[key] = ""); 至此完成,最终5行代码简化成一行代码。

59630

kettle的转换组件

11、去除重复记录,是去除数据流里面相同的数据行。注意:必须先对数据流进行排序! ? 12、排序记录,是按照指定的字段的升序或降序对数据流排序。 ? 13、唯一行(哈希值)就是删除数据流重复的行。...注意:唯一行(哈希值)和(排序记录+去除重复记录)效果一样的,但是实现的原理不同!   唯一行(哈希值)执行的效率会高一些!...唯一行哈希值是根据哈希值进行比较的,而去除重复记录是比较相邻两行数据是否一致进行比较的。 ? 14、拆分字段是字段按照分隔符拆分成两个或多个字段。注意:拆分字段后,原字段就不存在于数据流中!...15、列拆分为多行就是指定分隔符的字段进行拆分为多行。 ? 16、列转行就是如果数据一列有相同的值,按照指定的字段,多行数据转换为一行数据。去除一些原来的列名,一列数据变为字段。   ...注意:列转行之前数据流必须进行排序!必须使用排序记录图元哦! ? 17、行转列,就是数据字段的字段名转换为一列,数据行变为数据列。 ? 18、行扁平化就是同一组的多行数据并成一行

2K20

一行代码对日期插值

如何只用一行代码就高效优美地这些缺失的日期补上呢?...我们看到CJ数据集中,每个id所对应的时间都被填充完整了。 (在建立CJ数据集的过程中,我们使用了seq函数来建立完整的时间序列) 接下来,我们CJ数据集merge回原来的数据集dt。...(id, date)语句的作用: # CJ函数merge回原始数据集 dt[CJ, on = .(id, date), nomatch = NA] 结果为: ?...(date = seq(min(date), max(date), by = "day")), keyby = id] 接下来我们CJ数据集merge回dt数据集: # CJ数据集...拓 展 等等,你不是说可以在一行当中搞定的吗?当然没问题,以上文提到的第二种情况为例,我们可以两行合并为一行: # 两行代码合并成一行 dt[dt[, .

1.4K30
领券