数据类型都有哪些,数据库是如何处理这些数据的?

数据类型都有哪些,数据库是如何处理这些数据的?,第1张

基本数据类型有四类八种,分别为:

1.整型:byte,short,int,long。

2.浮点型:float,double。

3.逻辑型:boolean。

4.字符型:char。

数据库的所有 *** 作增、删、改、查都是在内存中完成的,为了处理数据,数据库首先需要将数据从磁盘读取到内存中,然后进行相应的 *** 作。但是内存和磁盘的读写速度有着天壤之别。DDR4内存读写速度大概50G每秒(50000M),固态硬盘速度是300M每秒,是内存的二百分之一,机械硬盘的速度是100M每秒,是内存的五百分之一。如何平衡数据存储介质在不同场景(以及时间)下的应用很重要。

AntDB数据库支持内存与磁盘双引擎自动切换,融合AI技术,实现更低的成本与更好的性能。AntDB数据库,一款在通信行业得到充分使用的业内领先的国产数据库,帮助客户进行OLTP 与OLAP一站式处理的数据库产品,具备丰富配套工具和完整服务体系

数据库一般分为两种类型:关系型数据库关系型数据库

关系型数据库

关系型数据库是最常见的数据,其内部采用库表结构,每一条记录可以记录多个数据类型的数据.一条记录内的数据彼此之间存在关系.

例如:

ID    name    age    sex

1    张三        12        男

因为彼此之间存在关系,所以不论你搜索id=1/name=张三/age=12/sex=男都能搜出来这条记录.

代表软件:Mysql access SQLServer Oracle

非关系型数据库

非关系型数据库是目前比较新的一种数据库,特点就是数据全部由键值对(key/value)组成.获取数据一般只通过键(key)来获取.

例如:

ID    Value

1    aaa.avi

2    bbb.MP4

这种数据库优点是,速度快,需要明确的目标key来快速指定和获取目标.一般目前在大数据存储上体现着优势.例如大型视频库,只需要知道视频的id就能快速得知视频位置.

当然这不是主要的,非关系型数据库有个极大的优势,就是一般都采用内存缓存方式存在.它们一般把数据拷贝一份放在内存中,这样可以更加快速的读取数据(内存的速度一般是硬盘的几十倍).

非关系型数据库另一个主要用途是快速缓存,即快速的缓存一些数据,但并不一定要长期保留,例如直播中的d幕,一般都会采用非关系型数据库来保存,到期之后批量写入关系型数据库保存,然后自我清空.

代表软件:Mongodb Redis Memcache

实际使用

在实际使用中,一般都是关系型数据库独立使用,关系型数据库+非关系型数据库一起用这两种方式.因为非关系型数据库一般不用来存储,所以还是需要关系型数据库来保存一些数据.

总结

关系型数据库:存储长期稳定数据,例如会员信息等等.但是读取写入速度慢,高并发时较麻烦,容易产生瓶颈.

非关系型数据库:存储临时数据或需要快速读取数据,例如d幕等.但是一般不用来保存数据,内存关机即清空.

连接到一个 url 地址为localhost 、 端口为 3306 的mysql服务器上。mysql服务器的帐号是"root",密码是"9999"。mysql 服务器上有一个数据库 ok , 数据库里有一个表 abc。表 abc 一共为两列,列名分别是 "id" 和 "name" ,将 abc 里的所有数据读出来。

<? 

$dbh = @mysql_connect("localhost:3306","root","9999") 

/* 定义变量dbh , mysql_connect()函数的意思是连接mysql数据库, "@"的意思是屏蔽报错 */ 

if(!$dbh){die("error")} 

/* die()函数的意思是将括号里的字串送到浏览器并中断PHP程式 (Script)。括号里的参数为欲送出的字串。 */ 

@mysql_select_db("ok", $dbh) 

/* 选择mysql服务器里的一个数据库,这里选的数据库名为 ok */ 

$q = "SELECT * FROM abc" 

/* 定义变量q, "SELECT * FROM abc"是一个SQL语句,意思是读取表abc中的数据 */ 

?> 

<br /> 

<!--========= 方法一 =========--> 

<br /> 

<? 

$rs = mysql_query($q, $dbh) 

/* 定义变量 rs ,函数mysql_query()的意思是:送出 query 字串供 MySQL 做相关的处理或者执行.由于php是从右往左执行的,所以,rs的值是服务器运行mysql_query()函数后返回的值 */ 

if(!$rs){die("Valid result!")} 

echo "<table>" 

echo "<tr><td>ID</td><td>Name</td></tr>" 

while($row = mysql_fetch_row($rs)) echo "<tr><td>$row[0]</td><td>$row[1]</td></tr>" 

/* 定义量变(数组)row,并利用while循环,把数据一一写出来.  

函数mysql_fetch_row()的意思是:将查询结果$rs单列拆到阵列变数中.  

$row[0] 和 $row[1] 的位置可以换*/ 

echo "</table>" 

?> 

<br /> 

<!--========= 方法二 =========--> 

<br /> 

<? 

$rs = mysql_query($q, $dbh) 

while($row = mysql_fetch_object($rs)) echo "$row->id $row->name <br />" 

/* id和name可以换位置 */ 

?> 

<br /> 

<!--========= 方法三 =========--> 

<br /> 

<? 

$rs = mysql_query($q, $dbh) 

while($row = mysql_fetch_array($rs)) echo "$row[id] $row[name] <br />" 

/* id和name可以换位置 */ 

?> 

<!--========= 方法三最快 =========--> 

<? 

@mysql_close($dbh) 

/* 关闭到mysql数据库的连接 */ 

?>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9984865.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存