首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 基于NineData的环境结构变更流程编排实践

    数据库结构变更看起来只是几条 DDL,核心难点在于并非“写出脚本”,而是“怎么把脚本安全、全面、按顺序地发到开发、测试、预发、生产”。 NineData 的“结构设计与发布”之所以值得单独讨论,就在于它不是又一个仅可提交 SQL 的页面,而是一套专门为环境结构发版设计的流程编排机制。 技术文档明确写到,版本管理会自动采集来自 SQL 窗口、SQL 任务、结构设计与发布等多种来源的 DDL,并支持差异对比和回滚 SQL 生成。这对环境结构发版特别重要。 ‘加强脚本管理’能解决的阶段,而是需要像 NineData 这样把环境结构发布流程本身产品化。 总结环境结构发版核心难点在于,不是写出一条 DDL,而是让各类环境都仅执行该执行的内容、按该有的顺序往前走。

    8500编辑于 2026-03-19
  • 来自专栏波波烤鸭

    1-3 云商城环境准备和数据库结构

    1-3 云商城环境准备和数据库结构   在商城系统中我们会使用到很多基础环境,比如MySQL数据库、Nacos注册中心、Redis数据库等、这些我们都会安装在Docker容器中。 所以接下来我们搭建下基础环境 ? 1、Linux环境搭建   Linux环境我们使用的是centos7.9。 3、MySQL数据库安装   既然是在Docker容器中安装相关的软件。 sku_attribute` varchar(200) DEFAULT NULL COMMENT '规格', `status` int(1) DEFAULT '1' COMMENT '商品状态 1-正常,2-下架,3- 好了到此环境准备工作就搞定了~

    54620发布于 2021-01-13
  • 来自专栏IT技术订阅

    在生产环境中修改MySQL库结构

    背景 如果我们需要在生产环境中修改MySQL数据库中某个库结构。那么,需要考虑哪些要点,才能确保不会出问题呢? 碰到的问题 这里先描述一下我在生产环境MySQL数据库中修改库结构时遇到的问题。 这里解释下metadata的概念,metadata lock(MDL)也就是元数据锁,它是一种级锁。 各种对该的操作,比如增删改查,都会占有MDL的读锁。当修改结构时,会占用MDL的写锁。 如果有一个长事务在对该进行操作,那么在修改结构时,就会有状态:Waiting for table metadata lock,也就是锁等待。 当然,对该的查询操作就会全部阻塞。 我当时的情况就是这样,有一个事务操作了该,但是可能由于大意没有关掉该事务,该事务长时间存在。而我同时又进行结构的更改,于是导致了这次事故。 MySQL数据库中库结构是一件比较有风险的事情,所以一定要三思而后行,避免引起任何可能的线上事故。

    2.6K20编辑于 2022-05-11
  • 来自专栏python3

    Python_查看sqlite3结构

    /usr/bin/env python3 # -*- coding: utf-8 -*- import sqlite3 conn = sqlite3.connect('test.db') # 创建一个 Cursor: cursor = conn.cursor() # 查询记录: conn = sqlite3.connect('calendar.db') cursor = conn.cursor() cursor.execute('PRAGMA table_info(perpetualCalendar)') print (cursor.fetchall()) cursor.close() conn.close() 查看表结构 :cursor.execute('PRAGMA table_info(名)')

    1.5K30发布于 2020-01-10
  • 来自专栏趣学算法

    数据结构3讲 顺序

    数据结构3讲 顺序 顺序是最简单的一种线性结构,逻辑上相邻的数据在计算机内的存储位置也是相邻的,可以快速定位第几个元素,中间不允许有空,所以插入、删除时需要移动大量元素。 顺序可以分配一段连续的存储空间Maxsize,用elem记录基地址,用length记录实际的元素个数,即顺序的长度, ? 结构体的定义: ? 结构体定义后,如果要定义个顺序L,就可以写: SqList L; 1. 顺序初始化 初始化是指给顺序分配一个预定义大小的空间,用基地址elem记录这段空间的首地址,里面什么都没用,元素个数为0。 (2)判断顺序的存储空间是否已满。 (3)将第n至第i 位的元素依次向后移动一个位置,空出第i个位置。 (4)将要插入的新元素e放入第i个位置。 (5)长加1,插入成功返回true。 (3)将第i+1至第n 位的元素依次向前移动一个位置。 (4)长减1,删除成功返回true。

    68330发布于 2018-09-13
  • 来自专栏鱼皮客栈

    环境

    3 分钟学会企业开发中的环境知识 大家好,我是鱼皮,今天给大家分享企业项目开发的重要知识 —— 环境。 本文大纲: [鱼皮 - 环境技术大纲] 什么是环境? 先思考一个问题。 我:思路不错,但问题在于,如果本地和线上运行项目时,连接的是同一个数据库,那么当你在本地测试向数据库中插入乱七八糟的假数据、或者修改数据库结构时,不就会影响到线上的数据了么? 这便是环境的好处。 常用环境 环境听起来虽然挺爽的,但事实上,环境不是区分的越多越好! 一方面是搭建环境需要额外的工作量;另一方面是项目依赖的资源越多,成本就越高,而且维护起来也更麻烦。 最后再介绍下环境的实现方式,其实大同小异,遵循 3 个步骤:抽象配置类 + 配置文件化 + 注入环境参数,就能轻松实现~ 抽象配置类 将项目代码中需要根据环境的变化而更改的变量整理到一个或多个配置类中 ("db-test.properties"); 无论是前端还是后端,大部分的环境实现都是这个原理 —— 搞套配置,所以总能在项目中看到类似的配置文件: [环境配置文件] 注入环境参数 到目前为止,

    1K51发布于 2021-09-08
  • 来自专栏热爱编程的证据

    数据结构入门(3)顺序和链表

    线性在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的, 线性在物理上存储时,通常以数组和链式结构的形式存储。 // 顺序打印 void SeqListPrint(SeqList* psl); 具体实现过程看文章《顺序接口实现 》 3.需要思考的问题 . 1. 下面要讲到的链表可以解决上面产生的问题 3.链表 1.概念及结构 概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表 中的指针链接次序实现的 。 链表在逻辑上是连续的,但物理结构中不一定连续,因为每增加一个结点,都会去到堆上动态申请内存空间,这是随机的。 2.链表的分类 1. 单向或者双向 2. 带头或者不带头(也就是平常说的哨兵位) 3. 循环或者非循环 虽然有这么的链表的结构,但是我们实际中最常用还是两种结构3.链表的实现 参考文章《链表接口实现》 4.双向链表的实现 双向链表和单向链表的区别在于它多了一个前驱指针可以指向前面结点而不是像单链表那样还要从头结点开始遍历找到

    28810编辑于 2024-03-13
  • 来自专栏Java

    【数据结构与算法】3.顺序

    1.线性 定义:线性是 n 个具有相同特性的数据元素的有序序列。线性是一种在实际中广泛使用的数据结构,常用的线性:顺序、链表、栈、队列… 线性在逻辑上是线性结构,也就是说是连续的一条直线。 但是在物理结构上并不定是连续的,线性在物理上存储时,通常以数组和链式结构的形式存储。 2. 顺序 顺序是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。 2.1 顺序结构 代码实现: public class MyArrayList implements IList{ public int[] elem; public int usedSize public int size(); // 清空顺序 public void clear(); // 打印顺序,注意:该方法并不是顺序中的方法,为了方便看测试结果给出的 / @Override public void clear() { usedSize = 0; } 3.代码 代码链接 4.

    21910编辑于 2024-05-07
  • 来自专栏JNing的专栏

    python: pip版本 (pippip2pip3) & python环境 (pythonpython2python3)

    本机python环境 - 配置 OS Ubuntu 14.04 Python Anaconda3 (Python3.6) + 系统自带 (Python2.7 + Python3.4) pip版本 /anaconda3/lib/python3.6/site-packages pip2 系统自带 (Python2.7) /usr/lib/python2.7/dist-packages pip3 系统自带 python环境 (python/python2/python3) 总结 不同的 python命令 会打开不同的 python环境 。 Anaconda3 (Python3.6) 演示 下面分别以 不同 python 命令 来 打开 python 环境 : ? 可以明显看出, 不同 python 命令 会打开对应 各自python版本 的 python 环境 。 ---- ----

    1.6K40发布于 2018-09-27
  • 来自专栏landv

    -处理环境

    处理环境 开发者常常希望根据是生产环境还是开发环境能够区分不同的定制行为,例如,如果在开发环境的程序当中输出详细的错误信息这样做对开发者来说是非常有帮助的,但是这样做的话在生产环境中会造成一些安全问题 这样能够根据不同服务器安装环境定制不同的环境依赖。 使用这个常量,除了会影响到一些基本的框架行为外(见下一章节),在开发过程中你还可以使用常量来区分当前运行的是什么环境。 在生产环境禁用错误输出是 良好的安全实践。 配置文件 另外,CodeIgnite 还可以根据不同的环境自动加载不同的配置文件,这在处理例如不同环境下有着不同的API Key的情况时相当有用。 这在 配置类 文档中的“环境”一节有着更详细的介绍。

    1.5K10发布于 2020-03-05
  • 来自专栏技术博文

    discuz 结构

    discuz 主题pre_forum_thread 注解 tid mediumint(8) unsigned NOT NULL auto_increment COMMENT '主题id', fid mediumint COMMENT '主题分类id', sortid smallint(6) unsigned NOT NULL default '0' COMMENT '分类信息id', readperm tinyint(3) 0' COMMENT '主题收藏次数', sharetimes mediumint(8) NOT NULL default '0' COMMENT '主题分享次数', `stamp` tinyint(3) NOT NULL default '-1' COMMENT '主题图章', `icon` tinyint(3) NOT NULL default '-1' COMMENT '主题图标', pushedaid 负数:远程 正数:本地 0:无封面', replycredit smallint(6) NOT NULL default '0' COMMENT '回帖奖励积分主题记录积分值', discuz 内容,

    4.7K71发布于 2018-04-16
  • 来自专栏路过君BLOG from CSDN

    flowable 结构

    分类 ACT_RE_* 仓库数据:流程定义,流程资源(图片,规则等)等静态信息。 ACT_RU_* 运行时数据:流程实例,用户任务,变量,作业等运行时数据。 这可以保证运行时性能。 ACT_HI_* 历是数据:已经完成的流程实例,变量,任务等等历史数据。 ACT_GE_* 通用数据:用于保存变量用例。 通用数据 名 描述 act_ge_bytearray 流程模型定义,流程相关资源 act_ge_property 系统属性 仓库数据 名 描述 act_re_deployment 流程的部署信息 act_re_procdef 流程定义 act_re_model 模型信息 运行时数据 名 描述 act_ru_variable 运行时变量 act_ru_task 运行时任务(流程当前节点) 字段 运行时流程执行实例 act_ru_event_subscr 运行时事件 act_ru_identitylink 运行时用户关系信息,存储任务节点与参与者的相关信息 act_ru_job 运行时作业 历是数据

    98030编辑于 2022-07-20
  • 来自专栏架构师小跟班

    Java开发环境系列:通过命令备份MySQL结构和数据

    命令行下具体用法 mysqldump -u用戶名 -p密码 -d 数据库名 名 > 脚本名; 导出整个数据库结构和数据 mysqldump -h localhost -uroot -p123456 database > dump.sql 导出单个数据结构和数据 mysqldump -h localhost -uroot -p123456 database table > dump.sql 导出整个数据库结构(不包含数据) mysqldump -h localhost -uroot -p123456 -d database > dump.sql 导出单个数据结构(不包含数据 dump.sql 如果提示报错:找不到mysqld.sock root@menjin:/data/wwwroot# mysqldump -h localhost -uroot -pdev -d f3db mysql.sock 2、命令后加参数,指定mysql.sock的位置 root@menjin:/data/wwwroot# mysqldump -h localhost -uroot -pdev -d f3db

    2K10发布于 2019-08-06
  • 来自专栏AI大模型

    3分钟搞定Spring Boot 环境配置

    庆幸的是,Spring Boot为我们提供了更加简单方便的配置方案来解决环境的配置问题,下面就来演示Spring Boot系统如何实现环境配置。 创建环境配置文件 创建环境配置文件时,需要遵循Spring Boot允许的命名约定来命名,格式为application-{profile}.properties,其中{profile}为对应的环境标识 其他环境的配置文件修改对应的配置连接即可,以上项目的环境配置就完成了。接下来演示切换项目运行环境。 二、环境的切换 前面讲了如何配置环境,那么,在实际测试、运行过程中如何切换系统运行环境呢? (3)命令行启动指定项目环境 在命令行通过java-jar命令启动项目时,需要如下指定启动环境: java -jar xxx.jar --spring.profiles.active=dev 如上所示, 最后 以上,我们就把Spring Boot 环境配置介绍完了。Spring Boot 环境配置是非常基础,非常重要的功能,也是Spring Cloud 配置中心的基本配置。

    4.2K10编辑于 2023-03-23
  • 来自专栏蒙奇D索隆的学习笔记

    【数据结构】第二章——线性(3)

    接下来我们来一一分析这几种情况; 顺序为空 在顺序为空时,我们想要给顺序插入元素,只能够从首元素开始插入,如果顺序为空,而我们想要从位序3的位置插入一个元素,这是不合理的,此时不能正常插入元素 3)) PrintList(L); else printf("插入失败\n"); return 0; } 我们在进行插入操作后,对返回值通过if语句来判断是否插入成功,成功,则打印插入后的顺序 ,不成功则提示插入失败,测试结果如下所示: 可以看到,当我们第三次想要在位序为4的位置插入元素4时,结果是插入失败;当我们将元素4和5都放入顺序后,再插入元素3,此时元素4和5有往后进行移动。 /定义同类型的变量e来记录删除的元素 if (ListDelete(&L, 3, &e)) { printf("位序%d上的元素%d已经成功删除\n", 3, e); PrintList(L 3已经成功删除,但是位序11上的元素并未被删除,因为我们此时的长时10,没有11这个位序,所以系统提示删除失败。

    30510编辑于 2023-12-26
  • 来自专栏热爱编程的证据

    数据结构入门(3)1:顺序接口实现

    前言 本文将一一介绍顺序基本功能的接口实现,帮助大家提高编程能力,加深对数据结构的理解 本文将以动态顺序为主进行解释 基本接口功能 #pragma once #define _CRT_SECURE_NO_WARNINGS // 顺序打印 void SeqListPrint(SeqList* psl);  顺序初始化 将顺序结构体里的成员变量该置0置0,该置空置空,因为在创建初,成员变量存放的都是随机值,整型存放的是随机数 同时将顺序指针断言一下,以免传入空指针。 设想一下,如果是静态顺序的话(用数组存储的顺序),就得一开始创建好,定好容量后就不能改变了,过多且不说,万一少了咋办,而且多了话还会浪费不必要的内存。 动态顺序,利用动态内存管理相关的函数relloc申请内存分配。

    25910编辑于 2024-02-18
  • 【数据结构-初阶】详解线性(3)---双链表

    主页传送门:良木生香 个人专栏:《C语言》 《数据结构-初阶》 《程序设计》 人为善,福随未至,祸已远行;人为恶,祸虽未至,福已远离 上期回顾:在上一篇文章中,我们了解了链表是由一个一个节点通过指针连接在一起而组成的 确实,双链表的结构与单链表极其的相似,双链表同样由数据域和指针域组成,只不过在指针域中,双链表有两个指针,一个指针是指向有一个节点,一个指针是指向前一个节点,如下图: 因为今天要讲的是双向带头结点循环链表 以上就是关于带头循环双向链表基本操作的详解了,下面是所有代码的综合,有兴趣的朋友们可以看看~~~~~~ 3、代码总和: 话不多说,直接上代码: #define _CRT_SECURE_NO_WARNINGS ***带头节点双向循环链表*** \n"); printf("插入:\n"); printf("1.头插 2.尾插 3. \n"); Sleep(2000); break; } case 3: { printf("请输入pos:\n"); int pos = 0; scanf("%d"

    16910编辑于 2026-01-09
  • 来自专栏全栈程序员必看

    数据库导出结构语句_sqlserver导出结构

    COLUMN_COMMENT 备注 FROM INFORMATION_SCHEMA.COLUMNS WHERE -- test_database为数据库名称,到时候只需要修改成你要导出结构的数据库即可 table_name = 'test_table' 运行之后显示: 之后选中复制粘贴到文档中即可 这种方法的不足之处是 查询整个数据库所有的结构时 比较混乱,建议单个进行查询。 ---- 第二种 :利用SQLyog的导出html功能 SQLyog的使用就不多说,直接去官网下载傻瓜式安装运行即可 运行之后连接数据库,右键选中需要导出结构的数据库,选择最下面的Create Schema character_set_connection = utf8; 第三种 :利用项目导出 在我寻找导出文档工具的过程中,有幸碰到一个博主的文章,是关于java导出mysql或者oracle数据库结构设计文档 :https://www.jianshu.com/p/884aff422649 项目下载运行之后: 如上填写完信息之后 测试连接成功之后 就可以 导出文档: 唯一的不足之处是不能选择导出某个或几个结构

    7.5K10编辑于 2022-10-03
  • 来自专栏文武兼修ing——机器学习与IC设计

    抽象数据结构抽象数据结构

    抽象数据结构 抽象数据结构(ADT)是一些操作的集合,集合了一些必要且重用性高的操作,这些操作在一个项目中只被编写一次。 抽象数据结构只定义操作的存在,并不定义操作的实现 概念 是一种基础的数据结构,是一系列逻辑上"顺序"的数据(顺序指具有连续的数值索引)。 例如$A_{0},A_{1},A_{2}$就是一个,数据具有连续索引1,2,3。 数组实现:查找快,插入与删除慢,大小固定,内存中一般连续 链表实现:查找较慢,插入与删除相对较快,大小可变,内存中一般不连续 需要的方法 is_empty:判断是否为空 is_last:判断是否为结尾 find:根据值获得在中的节点(find_previous:获得前驱元) visit:根据位置获得值(find) delete:删除元素 insert:插入元素 实现 接口与结构体 //中数据类型

    1.4K60发布于 2018-04-27
  • 来自专栏全栈程序员必看

    数据结构 Hash(哈希

    参考链接:数据结构(严蔚敏) 文章发布很久了,具体细节已经不清晰了,不再回复各种问题 文章整理自严蔚敏公开课视频 可以参考 https://www.bilibili.com/video/av22258871 / 如果链接失效 可以自行搜索 数据结构严蔚敏视频 @2021/07/12 一、什么是Hash 要想知道什么是哈希,那得先了解哈希函数 哈希函数 对比之前博客讨论的二叉排序树 二叉平衡树 红黑树 3 6 9,p取33 MOD 3 == 6 MOD 3 == 9 MOD 3 此时3 6 9都发生了hash冲突 哈希冲突的解决方案 不管hash函数设计的如何巧妙,总会有特殊的key导致hash 平方探测时长m必须为4j+3的质数(平方探测长有限制) 随机探测时m和di没有公因子(随机探测di有限制) 三种开放定址法解决冲突方案的例子 ---- 废话不多说,上例子就明白了 有一组数据 决定hash查找的ASL因素: 1)选用的hash函数 2)选用的处理冲突的方法 3)hash的饱和度,装载因子 α=n/m(n表示实际装载数据长度 m为长) 一般情况,假设hash函数是均匀的

    1.6K20编辑于 2022-09-15
领券