mysql bigint oracle

2023年 8月 12日 8.0k 0

MySQL和Oracle都是当前广泛使用的关系型数据库管理系统。bigint作为一种常用的数据类型,他们在处理bigint数据方面各自有着不同的表现。

在MySQL中,bigint是一种占用8个字节的整数类型,可以存储范围为-9,223,372,036,854,775,808至9,223,372,036,854,775,807的整数。

CREATE TABLE `test` (
`id` bigint(20) NOT NULL,
`name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

在Oracle中,bigint被称为NUMBER,并由建表时指定存储精度来决定其所能存储的整数范围,以及数据的精确度。

CREATE TABLE test(
id NUMBER(38) not null primary key,
name VARCHAR2(255)
);

在MySQL中,由于其整型占用的存储空间较小,因此对于范围较大的大数据处理,MySQL的表现不太理想:

SET @n = 9223372036854775807;
SELECT @n+1;

以上在MySQL中执行,会得到-9223372036854775808。

如果要在MySQL中处理大数,需要考虑使用字符串类型:

create table test(
id varchar(64) not null primary key,
name varchar(255)
);
insert into test(id, name) values('1234567890123456789012345678901234567890123456789012345678901234', 'test');

在Oracle中,由于数据类型的设计,其支持更广泛的数字计算和存储:

SELECT 9223372036854775807+1 FROM dual;

在Oracle中执行,会得到9223372036854775808。

除了处理bigint的表现不同以外,MySQL和Oracle也在其他方面有着很大的差异。MySQL在处理大量高并发请求时,应采用适当的调整优化才能更好的提供服务。而对于Oracle而言,除了高性能的支持,其更注重数据的一致性和安全性。

综上所述,MySQL和Oracle在处理bigint方面存在着不同的表现。选择使用哪种系统,需要根据具体的需求和场景来进行判断。

相关文章

pt-kill工具的使用
pt-ioprofile工具包的使用
数据库管理-第216期 Oracle的高可用-01(20240703)
DBMS_REPAIR EXAMPLE SCRIPT WITH PARTITION
数据库事务的四大特性: ACID 
使用BBED修复损坏的SYSTEM文件头

发布评论