一、设计说明 设计这个自动化的目的是想要交替、重复地使用固定的几个分区(分区编号01~05)来保存数据,当最后一个分区就是快满的时候,我们会把最旧数据的分区的数据清空出分区,新数据就可以使用老分区空间了。 应用这个自动化管理分区的环境是有些限制的,
一、设计说明
设计这个自动化的目的是想要交替、重复地使用固定的几个分区(分区编号01~05)来保存数据,当最后一个分区就是快满的时候,我们会把最旧数据的分区的数据清空出分区,新数据就可以使用老分区空间了。
应用这个自动化管理分区的环境是有些限制的,其一:分区的数据是呈现递增的,比如分区字段是自增Id值,或者是以日期作为分区;其二:可以接受 历史数据被移除分区表带来的问题。其三:一天进库的数量不应大于分区管理表PartitionManage中Part_Value与 Change_Value的差,因为我们作业执行的频率是1天,不过你可以调整Change_Value或者作业的执行频率;
具体脚本可以参考:SQL Server 2005 自动化删除表分区设计方案
二、看图说话
(图1:整体概念图)
数据流经过分区方案,被分配到不同的分区中,从图中可以看出,分区是可以重复利用的,后台有一个所谓的自动化切换分区的作业在跑,目的就是如果 重复利用这些分区。这里的PRIMARY目的就是说明它与其它文件组的一个平级关系,而且我们在做交换分区时候也会用到PRIMARY,需要事先分配足够 的空间。
(图2:自动化设计图)
这是自动化切换分区作业的逻辑处理,其中分区管理表的设计是比较重要的,它的灵活度关系到整个自动化的效果; 这个逻辑有以下几个特点:
1. 分区的索引进行存储位置对齐;其它索引在创建时就使用了分区方案,索引数据跟随分区数据一起存储在分区中;
2. 分区管理表,包含了分区记录数预警设计,在Id达到这个值后就会进行交换分区;
3. 分区管理表,FileGroup_String字段的数据可以通过SQL脚本自动化生成,条件就是分区文件组名称需要有规律;
4. 临时表是创建在PRIMARY主分区上,跟原表使用相同的分区方案;需要事先给PRIMARY分配大于或者等于一个分区文件大小的空间,这样在交换分区的时候就不用增量为主分区分配数据空间;
5. 交换旧数据到临时表,使用下面的语句可以把数据交换到相同的分区中编号,这样可以应对临时表就是一个历史表,而好处就是历史表也同样使用了分区。
ALTER TABLE [tb] SWITCH PARTITION @PARTITION_num TO [Temp_tb] PARTITION@PARTITION_num
6. 这里需要先修改分区方案,才能修改分区函数,这个跟创建分区函数与分区方案的顺序是刚好相反的。
(图3:分区管理表PartitionManage)
字段说明:Change_Value(预警Id值)Part_Value(分区函数值)FileGroup_String(分区文件组名称)IsDone(状态)UpdateTime(更新时间);
这就是那个分区管理表(PartitionManage),它是经过了几个版本后才把字段确定下来的,现在它已经比较完善了,能应对比较多的情况:
1. 比如我们可以修改预警值(Change_Value),让数据提早进入交换分区;
2. 比如我们可以修改分区值(Part_Value),达到调整分区间隔的目的;
3. 比如我们可以修改分区文件组名称(FileGroup_String),达到跳级文件组的目的;通过修改分区管理表来设置分区值与分区文件组的对应关系;
4. 再比如,我们一次性修改了分区方案和分区函数,已经去到很后面的分区值了,那么我们只要设置这些分区值的状态(IsDone)为1(True)就可以解决了。
5. 记录了进行交换分区的时间(UpdateTime),方便查询;
(图4:分区为Id字段的记录分布图)
这是一个实战中的分区情况,这样的分区特点就是分区里面的记录数基本上是持平的,,在Partition_num=20的记录中明显多了很多记录,这就是因为我们没有及时进行交换分区造成的。
(图5:分区为ClassId(分类)字段的记录分布图)
这同样是另外一个生产环境中的真实数据,这个分区方式的特点就是分区的记录数不太均等,而我们前期需要做的就是通过划分每个分区中ClassId的值来尽量均衡分区中的记录数,所以可以看到最小与最大值跨度区别是比较大。
(来源:博客园 作者:听风吹雨)

MySQL 성능을 효과적으로 모니터링하는 방법은 무엇입니까? Mysqladmin, Showglobalstatus, Perconamonitoring and Management (PMM) 및 MySQL Enterprisemonitor와 같은 도구를 사용하십시오. 1. MySQLADMIN을 사용하여 연결 수를보십시오. 2. showglobalstatus를 사용하여 쿼리 번호를보십시오. 3.pmm은 자세한 성능 데이터 및 그래픽 인터페이스를 제공합니다. 4. MySQLENTERPRISOMITOR는 풍부한 모니터링 기능 및 경보 메커니즘을 제공합니다.

MySQL과 SqlServer의 차이점은 1) MySQL은 오픈 소스이며 웹 및 임베디드 시스템에 적합합니다. 2) SQLServer는 Microsoft의 상용 제품이며 엔터프라이즈 수준 애플리케이션에 적합합니다. 스토리지 엔진의 두 가지, 성능 최적화 및 응용 시나리오에는 상당한 차이가 있습니다. 선택할 때는 프로젝트 규모와 향후 확장 성을 고려해야합니다.

고 가용성, 고급 보안 및 우수한 통합이 필요한 엔터프라이즈 수준의 응용 프로그램 시나리오에서는 MySQL 대신 SQLServer를 선택해야합니다. 1) SQLServer는 고 가용성 및 고급 보안과 같은 엔터프라이즈 수준의 기능을 제공합니다. 2) VisualStudio 및 Powerbi와 같은 Microsoft Ecosystems와 밀접하게 통합되어 있습니다. 3) SQLSERVER는 성능 최적화에서 우수한 성능을 발휘하며 메모리 최적화 된 테이블 및 열 스토리지 인덱스를 지원합니다.

mysqlmanagesCharactersetsandcollationsUtf-8AsthedEfault, confonfigurationAtdatabase, 테이블 및 columnlevels, andcolumnlevels, andcolumnlevels, andcolumnlevels, 1) setDefaultCharactersetandcollationforadatabase.2) secigurecharactersetandcollation

MySQL 트리거는 특정 데이터 작업이 수행 될 때 일련의 작업을 수행하는 데 사용되는 테이블과 관련된 자동 실행 된 저장 프로 시저입니다. 1) 트리거 정의 및 기능 : 데이터 검증, 로깅 등에 사용됩니다. 2) 작업 원칙 : 전후에 나누어지고 행 수준 트리거링을 지원합니다. 3) 사용의 예 : 급여 변경을 기록하거나 재고를 업데이트하는 데 사용할 수 있습니다. 4) 디버깅 기술 : ShowTriggers 및 ShowCreateTrigger 명령을 사용하십시오. 5) 성능 최적화 : 복잡한 작업을 피하고 인덱스 사용 및 거래 관리.

MySQL에서 사용자 계정을 작성하고 관리하는 단계는 다음과 같습니다. 1. 사용자 만들기 : CreateUser'Newuser '@'localhost'Identifiedby'Password '; 2. 권한 할당 : GrantSelect 사용, 삽입, UpdateOnmyDatabase.to'newuser'@'localhost '; 3. 권한 오류 수정 : Revokeallprivilegesonmydatabase.from'Newuser'@'localhost '; 그런 다음 권한을 재 할당합니다. 4. 최적화 권한 : showgra를 사용하십시오

MySQL은 빠른 개발 및 중소형 응용 프로그램에 적합한 반면 Oracle은 대기업 및 고 가용성 요구에 적합합니다. 1) MySQL은 오픈 소스이며 사용하기 쉬우 며 웹 응용 프로그램 및 중소 기업에 적합합니다. 2) Oracle은 강력하고 대기업 및 정부 기관에 적합합니다. 3) MySQL은 다양한 스토리지 엔진을 지원하며 Oracle은 풍부한 엔터프라이즈 수준의 기능을 제공합니다.

다른 관계형 데이터베이스와 비교하여 MySQL의 단점에는 다음이 포함됩니다. 1. 성능 문제 : 대규모 데이터를 처리 할 때 병목 현상을 만날 수 있으며 PostgreSQL은 복잡한 쿼리 및 빅 데이터 처리에서 더 잘 수행됩니다. 2. 확장 성 : 수평 스케일링 능력은 Google 스패너 및 Amazon Aurora만큼 좋지 않습니다. 3. 기능 제한 : 고급 기능에서 PostgreSQL 및 Oracle만큼 좋지 않으면 일부 기능에는 더 많은 사용자 정의 코드 및 유지 관리가 필요합니다.


핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

Dreamweaver Mac版
시각적 웹 개발 도구

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

WebStorm Mac 버전
유용한 JavaScript 개발 도구
