데이터 베이스 MySQL 튜토리얼 使用mysql federated引擎构建MySQL分布式数据库访问层_MySQL

使用mysql federated引擎构建MySQL分布式数据库访问层_MySQL

Jun 01, 2016 pm 01:30 PM
데이터베이스 접근 데이터베이스에 연결

bitsCN.com

使用mysql federated引擎构建MySQL分布式数据库访问层

 

本文所描述的 federated属于 MySQL的一种特殊引擎,利用它可将本地数据表映射至远程 MySQL 数据表,从而就可以解决应用程序中繁多的跨机器连接数据库问题,拓扑图如下:

使用mysql federated引擎构建MySQL分布式数据库访问层_MySQL

如此就可以构造出一个统一的数据访问入口,就大大提高了整个数据库系统的可维护性。 Federated引擎是基于表级别的,只能将本地数据表定义为 Federated 引擎并映射至远程实体表,无法实现基于库级别的整体映射。

 

在本文中,我们将启用Federated 引擎的数据库访问入口服务器称为本地数据库,而将本地数据表对应的远程数据表,称之为实体表。

 

本地数据库需要启用Federated 引擎支持,而远程数据表无须 Federated 引擎支持。 Federated 引擎表使用标准的 MySQL 客户端协议与远程数据库建立 TCP 连接。

 

创建Federated 表的过程:

 

 以root 登录远程 MySQL ,上创建合适的访问账号 grant all on DB1.* to 'federated'@'%' identified by 'federated'; flush privileges;

在远程MySQL 找到对应实体表的创建命令(如果是新表,请先建立好数据表,再执行此命令) 假设在远程mysql 上有库名 DB1, 表名 tag, 执行以下命令找到远程表的结构: show create table DB1.tag 输出: CREATE TABLE tag ( id int(10) unsigned NOT NULL AUTO_INCREMENT, name varchar(128) NOT NULL, frequency int(10) unsigned NOT NULL DEFAULT '1', PRIMARY KEY (id) ) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=utf8

 

假设我们要将远程的DB1.tag 映射至本地 DB.TableA 表上。那么我们应该保持本地虚拟表与远程实体表结构一致(结构可以有所差异,但会造成使用,管理上的麻烦)。根据远程实体表的创建命令,创建本地虚拟表 ( 结构部分完全一样,创建表选项有所差异 ) :

 

登录本地Mysql 服务器,创建相应的数据库及表: create database DB; use DB; CREATE TABLE TableA ( id int(10) unsigned NOT NULL AUTO_INCREMENT, name varchar(128) NOT NULL, frequency int(10) unsigned NOT NULL DEFAULT '1', PRIMARY KEY (id) ) ENGINE=federated connection="mysql://federated:federated@127.0.0.1 :3306/DB1/tag";

 

这时,即建立好了federated 虚拟表,实际上本地 MySQL 只创建了表定义文件 , 而没有数据文件。我们对本地虚拟表的数据修改,均会发送到远程机器上执行。

 

本地虚拟表名与远程表名,可不相同。

 

经过测试,这个引擎的一些额外特点: 1. 本地虚拟表与远程实体表之间是 TCP 长连接,并且是多个客户端利用的。所以不用担心因频繁建立连接带来的网络开销。 2. 本虚拟表表与远程实体表之间的网络连接断开后,当对虚拟表发起查询时,它会尝试重新连接远程实体表,所以我们不用担心网络连接断开造成的永久中断问题。 3. 如果无时间未对本地虚拟表作任何操作,虚拟表与实体表之间的连接将在远程主机的 wait_timeout 秒后自动断开,当对虚拟表发起查询时,连接又会重新建立。

 

一些注意事项: 1. 对本地虚拟表的结构修改,并不会修改远程表的结构 2.  truncate 命令,会清除远程表数据 3. drop命令只会删除虚拟表,并不会删除远程表 4. 不支持 alter table 命令 目前使用federated 最大的缺点: 1. select count(*), select * from limit M, N 等语句执行效率非常低,数据量较大时存在很严重的问题,但是按主键或索引列查询,则很快,如以下查询就非常慢(假设 id 为主索引) select id from db.tablea where id >100 limit 10 ; 而以下查询就很快: select id from db.tablea where id >100 and id

 

如果虚拟虚拟表中字段未建立索引,而实体表中为此字段建立了索引,此种情况下,性能也相当差。但是当给虚拟表建立索引后,性能恢复正常。

 

类似 where name like "str%" limit 1 的查询,即使在 name 列上创建了索引,也会导致查询过慢,是因为 federated引擎会将所有满足条件的记录读取到本,再进行 limit 处理。

 

这几个问题已经严重影响了federated 在实际环境中的应用。

bitsCN.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Windows 11에서 사진 앱 오류에 대한 변경 사항을 저장할 수 없습니다. Windows 11에서 사진 앱 오류에 대한 변경 사항을 저장할 수 없습니다. Mar 04, 2024 am 09:34 AM

Windows 11에서 이미지 편집을 위해 사진 앱을 사용하는 동안 변경 내용을 저장할 수 없습니다. 오류가 발생하는 경우 이 문서에서 해결 방법을 제공합니다. 변경사항을 저장할 수 없습니다. 저장하는 동안 오류가 발생했습니다. 나중에 다시 시도해 주세요. 이 문제는 일반적으로 잘못된 권한 설정, 파일 손상 또는 시스템 오류로 인해 발생합니다. 그래서 우리는 이 문제를 해결하고 Windows 11 장치에서 Microsoft 사진 앱을 계속해서 원활하게 사용할 수 있도록 심층적인 연구를 수행하고 가장 효과적인 문제 해결 단계 중 일부를 정리했습니다. Windows 11에서 사진 앱 오류에 대한 변경 사항을 저장할 수 없는 문제 수정 많은 사용자가 다른 포럼에서 Microsoft 사진 앱 오류에 대해 이야기해 왔습니다.

iPhone 및 iPad에서 Boundless Notes 앱을 사용하는 방법 알아보기 iPhone 및 iPad에서 Boundless Notes 앱을 사용하는 방법 알아보기 Nov 18, 2023 pm 01:45 PM

iPhone의 Boundless Notes란 무엇입니까? iOS17 Diary 앱과 마찬가지로 Boundless Notes는 수많은 창의적인 잠재력을 지닌 생산성 앱입니다. 아이디어를 현실로 바꿀 수 있는 좋은 장소입니다. 프로젝트 일정을 계획하고, 아이디어를 브레인스토밍하고, 무드 보드를 만들 수 있으므로 아이디어를 표현할 공간이 부족할 일이 없습니다. 이 앱을 사용하면 사진, 비디오, 오디오, 문서, PDF, 웹 링크, 스티커 등을 무제한 캔버스에 어디든 추가할 수 있습니다. Boundless Notes의 많은 도구(브러시, 모양 등)는 Keynote 또는 Notes와 같은 iWork 앱을 사용하는 모든 사람에게 친숙할 것입니다. Freeform을 사용하면 동료, 팀 동료, 그룹 프로젝트 구성원과의 실시간 협업도 쉽습니다.

형식이 지원되지 않거나 파일이 손상되었기 때문에 포토에서 이 파일을 열 수 없습니다. 형식이 지원되지 않거나 파일이 손상되었기 때문에 포토에서 이 파일을 열 수 없습니다. Feb 22, 2024 am 09:49 AM

Windows에서 사진 앱은 사진과 비디오를 보고 관리하는 편리한 방법입니다. 이 애플리케이션을 통해 사용자는 추가 소프트웨어를 설치하지 않고도 멀티미디어 파일에 쉽게 액세스할 수 있습니다. 그러나 때때로 사용자는 사진 앱을 사용할 때 "지원되지 않는 형식이므로 이 파일을 열 수 없습니다."라는 오류 메시지가 표시되거나 사진이나 비디오를 열려고 할 때 파일이 손상되는 등 몇 가지 문제가 발생할 수 있습니다. 이러한 상황은 사용자에게 혼란스럽고 불편할 수 있으므로 문제를 해결하려면 몇 가지 조사와 수정이 필요합니다. 사용자가 사진 앱에서 사진이나 비디오를 열려고 하면 다음 오류가 표시됩니다. 죄송합니다. 해당 형식이 현재 지원되지 않거나 파일이 아니기 때문에 포토에서 이 파일을 열 수 없습니다.

Apple Vision Pro를 PC에 연결하는 방법 Apple Vision Pro를 PC에 연결하는 방법 Apr 08, 2024 pm 09:01 PM

Apple Vision Pro 헤드셋은 기본적으로 컴퓨터와 호환되지 않으므로 Windows 컴퓨터에 연결되도록 구성해야 합니다. Apple Vision Pro는 출시 이후 큰 인기를 끌었으며, 최첨단 기능과 광범위한 조작성을 통해 그 이유를 쉽게 알 수 있습니다. PC에 맞게 일부 조정할 수 있지만 기능은 AppleOS에 크게 의존하므로 기능이 제한됩니다. AppleVisionPro를 내 컴퓨터에 어떻게 연결합니까? 1. 시스템 요구 사항 확인 최신 버전의 Windows 11이 필요합니다. (Custom PC 및 Surface 장치는 지원되지 않습니다.) 64비트 2GHZ 이상 빠른 프로세서 지원 고성능 GPU, 대부분

응용 프로그램 시작 오류 0xc000012d 문제를 해결하는 방법 응용 프로그램 시작 오류 0xc000012d 문제를 해결하는 방법 Jan 02, 2024 pm 12:53 PM

친구의 컴퓨터에 특정 파일이 누락된 경우 오류 코드 0xc000012d가 발생하며 애플리케이션이 정상적으로 시작되지 않습니다. 실제로 해당 파일을 다시 다운로드하여 설치하면 쉽게 해결할 수 있습니다. 응용 프로그램을 정상적으로 시작할 수 없습니다. 0xc000012d: 1. 먼저 사용자는 ".netframework"를 다운로드해야 합니다. 2. 그런 다음 다운로드 주소를 찾아 컴퓨터에 다운로드합니다. 3. 그런 다음 바탕 화면을 두 번 클릭하여 실행을 시작합니다. 4. 설치가 완료되면 잘못된 프로그램 위치로 돌아가 프로그램을 다시 실행해 보세요.

MS 그림판이 Windows 11에서 제대로 작동하지 않습니다. MS 그림판이 Windows 11에서 제대로 작동하지 않습니다. Mar 09, 2024 am 09:52 AM

Microsoft Paint가 Windows 11/10에서 작동하지 않습니까? 글쎄, 이것은 일반적인 문제인 것 같으며 우리는 이를 해결할 수 있는 몇 가지 훌륭한 솔루션을 가지고 있습니다. 사용자들은 MSPaint를 사용하려고 할 때 작동하지 않거나 열리지 않는다고 불평해 왔습니다. 앱의 스크롤바가 작동하지 않고, 붙여넣기 아이콘이 표시되지 않고, 충돌이 발생하는 등의 현상이 발생합니다. 다행히 Microsoft 그림판 앱 관련 문제를 해결하는 데 도움이 되는 가장 효과적인 문제 해결 방법 중 일부를 수집했습니다. Microsoft 그림판이 작동하지 않는 이유는 무엇입니까? MSPaint가 Windows 11/10 PC에서 작동하지 않는 몇 가지 이유는 다음과 같습니다. 보안 식별자가 손상되었습니다. 정지 시스템

caa90019 Microsoft Teams 오류 수정 caa90019 Microsoft Teams 오류 수정 Feb 19, 2024 pm 02:30 PM

많은 사용자들이 Microsoft Teams를 사용하여 로그인을 시도할 때마다 오류 코드 caa90019가 발생한다고 불평해 왔습니다. 편리한 커뮤니케이션 앱임에도 이런 실수는 매우 흔합니다. Microsoft Teams 오류 수정: caa90019 이 경우 시스템에 표시되는 오류 메시지는 "죄송합니다. 현재 문제가 발생했습니다." Microsoft Teams 오류 caa90019를 해결하는 데 도움이 되는 궁극적인 솔루션 목록을 준비했습니다. 예비 단계 관리자로 실행 Microsoft Teams 애플리케이션 캐시 지우기 settings.json 파일 삭제 Credential Manager에서 Microsoft 지우기

C# 개발에서 다중 스레드를 사용하여 데이터베이스에 동시에 액세스하는 방법 C# 개발에서 다중 스레드를 사용하여 데이터베이스에 동시에 액세스하는 방법 Oct 09, 2023 pm 11:29 PM

C# 개발에서 다중 스레드를 사용하여 데이터베이스에 동시에 액세스하는 방법 C# 개발에서는 데이터베이스에 대한 다중 스레드 동시 액세스가 일반적인 요구 사항입니다. 멀티스레딩을 사용하면 데이터베이스 작업의 효율성을 높일 수 있지만 스레드 안전성, 데이터베이스 연결 관리 등의 문제에도 주의를 기울여야 합니다. 이 문서에서는 멀티스레딩을 사용하여 C#에서 동시에 데이터베이스에 액세스하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 데이터베이스 연결 생성 멀티 스레드를 사용하여 동시에 데이터베이스에 액세스하기 전에 먼저 데이터베이스 연결을 생성해야 합니다. 일반적으로 ADO.NET에서 제공하는 Sql을 사용합니다.

See all articles