首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

不是 Ruby,而是你数据库

写入关系数据库始终是个难题:只能垂直扩展,即增加更强大数据库服务器。至于查询(读取)方面,可以通过增加复杂性来解决:读取副本(曾称为 “从属”)。几乎所有常见关系数据库服务器都支持此方法。...曾在一个拥有百万级用户应用程序中,导致数据库服务器集群崩溃:原因在于一个无关控制器简单更改,使 Rails 切换到一个外部连接,该连接具有巨大物化视图,本不应以这种方式连接(用于报告)。...开发 Rails 应用程序数量惊人,其中包含某种形式 .sort(params[:sort by]):仅在 2021 年,就开发了三个独立 Rails 应用程序,所有这些应用程序都可以通过使用...未优化连接。添加简单 has_many 太容易了,这使得开发人员可以在数据库中启动过于繁重查询。一旦通过应用程序引入和传播,这几乎不可能解决。...而且它会查询五个连接表并且连接到至少一个索引上,而这个索引并不是为此准备。导致大约 800 毫秒查询。在每次页面加载时。 未优化 where、group 和 order 调用。

11430

如何在Ubuntu 14.04上使用PostgreSQL和Ruby on Rails应用程序

没有服务器同学可以在这里购买,不过个人更推荐您使用免费腾讯云开发者实验室进行试验,学会安装后再购买服务器。 安装PostgreSQL 如果您还没有安装PostgreSQL,那么现在就开始吧。...现在您可以输入以下命令退出PostgreSQL控制台: \q 我们现在创建一个Rails应用程序。 创建新Rails应用程序 在主目录中创建一个新Rails应用程序。...如果您Rails应用程序位于远程服务器上,并且您希望通过Web浏览器访问它,则一种简单方法是将其绑定到服务器公共IP地址。...首先,查找服务器公共IP地址,然后将其与rails server命令一起使用(将其替换为突出显示部分): rails server --binding=server_public_IP 现在,您应该能够通过端口...,您应用程序已正确配置,并连接到PostgreSQL数据库。

3.4K00
您找到你想要的搜索结果了吗?
是的
没有找到

15 分钟掌握 15 个 Docker 小窍门

10.基于命令行瘦客户端,使用UNIX Socket和Docker后台服务REST接口进行通信 Docker默认是用UNIX socket通信,一直到大概0.5、0.6版本还是用端口来通信,但现在则改成...下面我们来搞点有趣事情,从主机链接到dockerUNIX socket: # 像HTTP客户端一样连接到UNIX socket $ nc -U / /var/run/docker.sock 连接成功后...对来说,Docker源文件中,有4个是非常喜欢阅读: commands.go docker命令行接口,是对REST API一个轻量级封装。...Docker是怎么实现?!无法理解!”没关系,Docker是开源软件,去看它源代码就可以了。如果你不太清楚Dockerfile中命令是怎么回事,直接去看buildfile.go就明白了。...rails程序:一个容器可以访问数据库容器而不对外暴露其他接口。

1.8K50

自建 Gitlab (邮箱配置、拆分 PostgreSQL、Redis) + 随想

' 接着使用以下命令让配置生效: gitlab-ctl reconfigure gitlab-ctl restart 最后就可以进入 gitlab 控制台测试发送邮件: gitlab-rails console...postgreSQL 默认用户名、密码、初始数据库都是 postgres可以通过设置环境变量更改默认配置: environment: - POSTGRES_PASSWORD=mysecretpassword...也许这辈子都不会用到使用 HTTP 去 clone 代码,哥哥就是受不了这个提示,一想起来就头皮发麻,宛如被一万头草泥马来回碾压。 这个小问题让吃不香,睡不着,都胖了好几斤,必须要解决他。...然后,不知道当时状态是不是已经已经在阿鼻地狱边缘,最开始想到是从源代码中去寻找这个提示逻辑,强行改成 HTTPS(失败);注入一段 js 去修改提示(有修改延迟,仍然无法忍受);修改 nginx...不知道有多少人会像我一样常常被 “自己” 掣肘,在内心层面不算是一个很宅的人,不喜欢呆在家里,总是和很多人谈诗和远方,,只局限于谈。

2.2K60

如何优雅使用Docker?请收下这15个小技巧。

Tip10 基于命令行瘦客户端,使用UNIX Socket和Docker后台服务REST接口进行通信。...下面我们来搞点有趣事情,从主机链接到dockerUNIX socket: # 像HTTP客户端一样连接到UNIX socket $ nc -U / /var/run/docker.sock 连接成功后...对来说,Docker源文件中,有4个是非常喜欢阅读: commands.go docker命令行接口,是对REST API一个轻量级封装。...Docker是怎么实现?!无法理解!”没关系,Docker是开源软件,去看它源代码就可以了。如果你不太清楚Dockerfile中命令是怎么回事,直接去看buildfile.go就明白了。...rails程序:一个容器可以访问数据库容器而不对外暴露其他接口。

1.1K30

Citus 11 官方手册脑图 - PostgreSQL 超大规模分布式数据库解决方案上手指南

无法接收查询结果 解决方法 取消事务,因为它涉及分布式死锁 解决方法 无法连接到服务器无法分配请求地址 解决方法 SSL 错误:证书验证失败 解决方法 无法连接到任何活动放置 解决方法 剩余连接槽保留给非复制超级用户连接...解决方法 PgBouncer 无法连接到服务器 解决方法 关系 foo 没有被分发 解决方法 不支持子句类型 解决方法 在事务中执行第一个修改命令后,无法打开新连接 解决方法 无法创建唯一性约束 解决方法...函数 create_distributed_table 不存在 解决方法 不能使用列引用调用 UPDATE 查询中使用 STABLE 函数 解决方法 FAQ 常见问题 可以在分布式表上创建主键吗...如果工作节点地址发生变化怎么办? 哪个分片包含特定租户数据? 忘记了表分布列,如何找到? 可以通过多个键分发表吗? 为什么 pg_relation_size 报告分布式表零字节?...上分布式外连接如何工作 Citus 分布式外连接 使用 Postgres 设计 SaaS 数据库以实现扩展 使用 Citus 扩展构建可扩展 Postgres 指标后端 时间序列指标 事件 使用

4.2K30

激荡二十年:HTTP API 变迁

低代码概念其实一直挺模糊,大家共识是:用户可以无需太多编码,通过「描述」其需求(可以在 GUI 上操作,也可以是撰写某种简单易懂 schema),就能够构建完全可使用应用软件。...希望通过 x-fields 和 x-filter 这两个 HTTP 头,来实现 postgREST 里 querystring 所表达内容: 对于 x-fields,它有略微复杂继承自 postgREST...这里 source 使用 webassembly,并不是为了装 B,而是希望这样工具就像 postgREST 一样,你不需要,也无法对其二次开发。...本来这篇文章应该在上周末发表出来,可是一时技痒,把周末可用时间匀给了代码实现,于是在撰写了(主要是通过 psql -E 偷师 psql 命令是如何查询)上百行 SQL,从postgres 中获取关于...也许在不久将来,我们可以通过数据 schema,倒推出 API schema,再进一步倒推出使用这些 API 模板化 UI 页面。

1.7K30

在Ubuntu 14.04上安装GitLab(Trusty Tahr)

如果您服务器可以托管自己软件项目的话,服务器应该会拥有大容量磁盘空间,因此请考虑使用我们区块存储服务进行服务器磁盘设置。 注意 本指南是为非root用户编写。...尝试使用新建用户连接到新建数据库并显示PostgreSQL版本,以方便测试: sudo -u git -H psql -d gitlabhq_production -c "SELECT VERSION...一般来说,我们可以随意选择其他稳定分支,永远不要在生产服务器上安装主干。...保护GitLab 现在您已在服务器上运行GitLab,您可能希望添加SSL支持以保护您GitLab站点。请参阅NginxSSL证书配置指南,这样您就可以使用SSL保护您站点了。...更多信息 有关此主题其他信息,您可能需要参考以下资源。虽然提供这些是希望它们有用,请注意,我们无法保证外部托管材料准确性或及时性。

2.1K10

如何使用 psql 列出 PostgreSQL 数据库和表

在管理PostgreSQL数据库服务器时,您可能要执行最常见任务之一就是列出数据库及其表。 PostgreSQL附带了一个名为psql交互式工具,允许您连接到服务器并对其运行查询。...在使用psql时,还可以利用它元命令。这些命令对于脚本编写和命令行管理非常有用。所有元命令都以非引号反斜杠开头,也称为反斜杠命令。...本教程解释如何使用psql在PostgreSQL服务器中显示数据库和表。 列出数据库 您可以使用该 psql 命令以任何系统用户身份连接到 PostgreSQL 服务器。...安装 PostgreSQL 软件包后,将创建名为 “postgres管理用户。默认情况下,此用户可以在没有密码情况下连接到本地 PostgreSQL 服务器。...前两个是创建新数据库时使用模板。 如果要获取有关数据库大小,默认表空间和描述信息,请使用 \l+ 或 \list+ 。仅当当前用户可以连接到数据库时,才会显示数据库大小。

4K10

被 pgx 及其背后 Rust 美学征服

打个 90 后开发者可能无法理解比喻,用 Rust (pgx) 之于 C 撰写 postgres extension,就好比用 VB 之于 MFC 编写 windows 应用,或者用 rails 之于...自增 ID 缺乏随机性,且会暴露数据细节(黑客可以通过 id 规律爬到大量数据);UUID4 具备足够随机性,但无法排序。...更方便地定义 postgres 数据类型? 接下来我们来个更加震撼通过 pgx 和 serde,你可以很方便地将 Rust 类型映射到 Postgres 类型。...甚至,你可以Postgres 服务器内部向外发送 HTTP 请求(WTF),或者读写文档(WTF)。...过去 10-20 年,随着 rails / django / phoenix 这样胖 web 框架崛起,使得我们沉迷于数据层使用 ORM 带来「巨大好处」:数据库无关 —— 你只需要改改配置,就可以

1.2K20

如何在Debian 9上安装PostgreSQL

要验证安装,我们将使用psql实用程序连接到PostgreSQL数据库服务器并打印服务器版本: sudo -u postgres psql -c "SELECT version();" 输出内容:...最常用方法是: 信任 - 使用此方法,只要满足pg_hba.conf中定义条件,角色就可以在没有密码情况下进行连接。 密码 - 角色可以通过提供密码进行连接。...密码可以存储为scram-sha-256 md5和密码(明文) Ident - 仅在TCP / IP连接上支持此方法。 通过获取客户端操作系统用户名,使用可选用户名映射来工作。...创建PostgreSQL角色和数据库 您可以使用createuser命令从命令行创建新角色。 只有具有CREATEROLE权限超级用户和角色才能创建新角色。...最后一步是通过编辑pg_hba.conf文件将服务器配置为接受远程连接

2.5K20

如何在Ubuntu 16.04上安装PostgreSQL

同样,PostgreSQL 可以用许多方法扩展,比如, 通过增加新数据类型、函数、操作符、聚集函数、索引。免费使用、修改、和分发 PostgreSQL,不管是私用、商用、还是学术研究使用。...没有服务器同学可以在这里购买,不过个人更推荐您使用免费腾讯云开发者实验室进行试验,学会安装后再购买服务器。 创建标准用户帐户,加强SSH访问并删除不必要网络服务。...警告 使用postgres用户不应该被用于其他目的(例如,连接到其他网络)。这样做会对数据库安全性造成严重威胁。...此步骤中设置密码将用于通过网络连接到数据库。默认情况下,对等身份验证将用于本地连接。 创建数据库 以postgresLinux用户身份运行本节中命令。...使用数据库时,可以使用\z命令检查每个表访问权限。 更多信息 有关此主题其他信息,您可能需要参考以下资源。虽然希望提供这些有用,请注意,我们无法保证外部托管材料准确性或及时性。

2.1K20

如何在Debian 8上安装和使用PostgreSQL 9.4

除非另有说明,否则本教程中所有命令都应作为具有sudo权限非root用户运行。 没有服务器同学可以在这里购买,不过个人更推荐您使用免费腾讯云开发者实验室进行试验,学会安装后再购买服务器。...检查安装 要检查PostgreSQL服务器是否已正确安装并且正在运行,您可以使用ps命令: # ps -ef | grep postgre 你应该在终端上看到这样东西: postgres 32164...要连接到数据库,首先需要在以root身份登录时通过发出以下命令切换到用户postgres(这不适用于sudo访问): su - postgres 你现在应该已经作为postgres登录。...因此,如果有一个被调用用户test1,该角色将尝试连接到默认调用数据库test1。...要将Linux中用户帐户更改为test1: su - test1 然后,使用以下命令以PostgreSQL角色test1连接到数据库test1: psql 现在您应该看到PostgreSQL提示与新创建用户

4.2K00

GitLab 14 轻量化运行方案

如果你希望拥有类似 GitHub 项目管理体验,并有私有化部署要求,GitLab 会是不二之选。 为了方便测试安装,我们使用上篇中提到方式来快速初始化容器环境。...GitLab 默认提供了软件包仓库、容器仓库、软件依赖管理,这些可以使用之前分享过使用容器搭建简单可靠容器仓库》一文中 distribution,或者 Nexus 进行替代。...通过设置一些配置项,可以将 GitLab 中这些功能进行关闭。...在早些时候《容器方式使用轻量 GitLab 低版本》 一文中,分享过如何使用低版本 GitLab ,那篇文章中 GitLab 进程树状况如下。...(添加好友,请备注实名,注明来源和目的,否则不会通过审核) 关于折腾群入群那些事 ---- 本文使用「署名 4.0 国际 (CC BY 4.0)」许可协议,欢迎转载、或重新修改使用需要注明来源。

2.8K40

如何在Ubuntu 16.04上安装和使用PostgreSQL

没有服务器同学可以在这里购买,不过个人更推荐您使用免费腾讯云开发者实验室进行试验,学会安装后再购买服务器。...同样,您可以通过键入以下内容退出交互式Postgres会话: \q 创建一个新角色 目前,我们只是在数据库中配置了postgres角色。我们可以使用createrole命令从命令行创建新角色。...因此,如果在最后一节中,我们创建了一个名为sammy用户,那么该角色将尝试连接到默认情况下也会调用sammy数据库。您可以使用该createdb命令创建适当数据库。...您必须从具有sudo权限帐户(未以postgres用户身份登录)执行此操作: sudo adduser sammy 获得适当帐户后,您可以通过键入以下内容切换并连接到数据库: sudo -i -u...如果您希望用户连接到其他数据库,可以通过指定数据库来执行此操作: psql -d postgres 登录后,您可以通过键入以下内容来检查当前连接信息: \conninfo You are connected

5.1K10

GitLab 14 轻量化运行方案

如果你希望拥有类似 GitHub 项目管理体验,并有私有化部署要求,GitLab 会是不二之选。 为了方便测试安装,我们使用上篇中提到方式来快速初始化容器环境。...GitLab 默认提供了软件包仓库、容器仓库、软件依赖管理,这些可以使用之前分享过使用容器搭建简单可靠容器仓库》一文中 distribution,或者 Nexus 进行替代。...通过设置一些配置项,可以将 GitLab 中这些功能进行关闭。...在早些时候《容器方式使用轻量 GitLab 低版本》 一文中,分享过如何使用低版本 GitLab ,那篇文章中 GitLab 进程树状况如下。...------ 本文使用「署名 4.0 国际 (CC BY 4.0)」许可协议,欢迎转载、或重新修改使用需要注明来源。

4.6K21

如何在Ubuntu 14.04上使用Git Hooks部署Rails应用程序

使用Git hooks将允许您通过简单地将更改推送到生产服务器来部署应用程序,而不必手动拉动并执行诸如执行数据库迁移之类操作。...没有服务器同学可以在这里购买,不过个人更推荐您使用免费腾讯云开发者实验室进行试验,学会安装后再购买服务器。 您需要在服务器上安装Ruby。...使用以下命令退出PostgreSQL控制台: \q 现在,我们已准备好使用正确数据库连接信息配置您应用程序。...' 现在让我们调整我们应用程序,准备连接到我们生产PostgreSQL数据库。...仅此一项就可以在项目的整个生命周期中为您节省大量时间。 本教程仅介绍了“post-receive”hook,还有其他几种类型挂钩可以帮助改善部署过程自动化。

2.5K60

如何在Ubuntu 18.04上安装和使用PostgreSQL

创建新roles 目前,您只需在数据库中配置postgres roles。您可以使用命令createrole从命令行创建新roles。...这意味着,如果您在上一节中创建用户被称为sammy,则该roles将尝试连接到默认情况下也有一个称为“sammy”数据库。您可以使用该createdb命令,创建适当数据库。...您必须从具有权限非root帐户执行此操作sudo(意味着,未以postgres用户身份登录): $ sudo adduser sammy 一旦这个新帐户可用,您可以通过输入以下内容切换并连接到数据库:...如果您希望用户连接到其他数据库,可以通过指定数据库来执行此操作: $ psql -d postgres 登录后,您可以通过输入以下内容来检查当前连接信息: sammy=# \conninfo You...如果要连接到非默认数据库或非默认用户,这将非常有用。 创建和删除表 现在您已了解如何连接到PostgreSQL数据库系统,您可以了解一些基本Postgres管理任务。

5.4K60
领券