数据库到底是什么东西怎么平常生活中没见有多少应用啊

数据库到底是什么东西怎么平常生活中没见有多少应用啊,第1张

数据库说简单了就是数据表,一个数据库里可以有很多张数据表,他们按一定格规则建立。

举一个简单的例子,如:银行系统的数据库

虽然我们很多人可能接触不到,但银行的数据库里至少要包含两张表。

一个是储户信息表:存储户的账号、姓名、性别、电话、密码等等

另一个是账户交易记录:账号、进账金额、出账金额、时间、交易类型等等

数据库其实是一个复杂并且非常严密的系统,他不仅要保证数据的准确、安全、完整,还要能实现快速的查找和筛选数据,还有一些非常高级的功能。

》测试DB:测试程序正确性用的DB。

-程序正式上线前,需要严格测试,避免因bug造成生产系统出问题或者生产数据错误。因此需要使用“测试DB”来测试你的系统。

-存贮了模拟数据(有时用生产DB的数据恢复而来,保证数据的真实性与数据量)

》生产DB:正式使用的DB。

-存贮了大量的正式数据,

-有很多用户并发访问。

》查询DB:通常用作数据查询、统计,只读。

- 由于“查询”通常会访问大量数据,为了减轻生产DB的压力,将“查询、统计”功能分离出来,针对本库进行

-通常是生产DB的镜像,

-或者是最近时间点生产DB的一个备份(如当日凌晨的 -- 此时统计结果不包含当日新产生的数据)

查看所有数据库容量大小

select

table_schema as '数据库',

sum(table_rows) as '记录数',

sum(truncate(data_length/1024/1024, 2)) as '数据容量(MB)',

sum(truncate(index_length/1024/1024, 2)) as '索引容量(MB)'

from information_schematables

group by table_schemaorder by sum(data_length) desc, sum(index_length) desc;

MySQL 322 限制的表大小为4GB。由于在MySQL 323 中使用了MyISAM

存储引擎,最大表尺寸增加到了65536TB(2567 –

1字节)。由于允许的表尺寸更大,MySQL数据库的最大有效表尺寸通常是由 *** 作系统对文件大小的限制决定的,而不是由MySQL内部限制决定的。

InnoDB 存储引擎将InnoDB 表保存在一个表空间内,该表空间可由数个文件创建。这样,表的大小就能超过单独文件的最大容量。表空间可包括原始磁盘分区,从而使得很大的表成为可能。表空间的最大容量为64TB。

java项目用的最普遍的数据库就是mysql和oralce,大多数公司的项目都有用这两者之一,或者两个都用。

Oracle是商业数据库,提供更好的数据服务,主要用于大型的数据库应用。Oracle自身有强大的实力所以他为客户开发了很多数据挖掘检索备份恢复的强大工具,而能用到他的服务的都是拥有海量数据要处理的。比如中国移动的业务数据,每天能产生好几亿的数据,都是用oracle的数据库来存储的。

mysql是开源的产品,免费,所有源码可以根据自身需求修改(只要你有那个能力),主要用于各种中小型的数据应用。如果项目需要数据库服务但是又没有达到海量数据的规模,建议用mysql,因为它是免费得。

总的来说,从性能上来说,oralce数据库优于mysql。

1、自己在windows和linux上安装了mysql,自学linux的基础知识,学习mysql的最基础的知识,即怎么写sql,存储过程,表的设计等,从0到熟悉大概花了3个月,推荐《mysql入门很简单》。

2、系统地较为深入地学习mysql的sql优化,备份和恢复,参数优化,架构优化,硬件层面的优化,高可用方案,复制技术等等,这段时间你不一定能实际接触到这些,就像我当初那样,肯定没什么公司招一个小白。

我选择自己看书,推荐《高性能mysql》,里面所有的章节都需要看一遍,以现在的水平肯定看不懂,但需要知道大概怎么回事,为后续的找mysql初级dba的工作打一个铺垫,这个过程大概也需要3个月。

3、纸上得来终觉浅,完成以上两步,我开始准备找一份mysql相关的工作,而不是天天用着excel表格做着selectfromtable_sb这样的工作。

当然我这么猥琐的人肯定不会裸辞,该画的电路板也一样画,业余时间开始投初级mysqldba的工作,并且不间断地学习,网上各种找mysql面试的相关题目(实际上我当时完全没有任何实战经验),陆续收到一些面试,凭借之前自学的mysql知识,开始胡乱吹牛逼,先混进去再说。

你不做mysql实际相关的工作,永远也不知道自己之前认知的db知识有多幼稚。

友情提示一点,一般公司都没有专职dba的,所以面试的时候一定要自信,其实你学了这么多,虽然毫无实战经验,理论知识很大概率比面试你的人牛逼,所以各种吹,我就这样真正进入初级dba的圈子(由于这时对linux还处于cdls的水平,所以之前也根本没做过运维),这个边工作边找工作的过程又持续了2个月。

4、真正进入互联网,接触生产环境后,这是我进步最大的时候。

第一步需要将之前所学真正地应用起来,并且应用的过程中,再回头看之前的书籍,这时候需要真正去理解,而不是似是而非,一知半解。

这时再推荐《高性能mysql第三版》,全本再看一遍,这时需要全部看懂,另外还有《mysql技术内幕:innodb存储引擎》等等。

总之这段时间就需要开始关注mysql一些细节了,比如db故障处理,高可用,负载均衡等等的具体实现了。

另外,linux的知识同步也要深入去学习,至少会写shell脚本,常见的linux知识等,我在这花了1年多;

5、dba的工作一般是非常轻闲的,毕竟不是大公司,技术能力有限,该学的也学得差不多了,接触不到海量数据,高并发等比较锻炼人的场合,于是我又准备跳了。

于是来了公有云,现在每天运维万多个db实例,平均每天处理5个紧急db故障,几乎mysql会遇到的问题,感觉都遇到了,能感觉到技术实力和经验也在每天都在积累,在进步。

但是感觉还是欠缺了很多,下一步就看你选择了,是再去研究源代码,底层原理的东西多点,还是数据库运维和应用多一点,就比如业界姜承尧,何登成与叶金荣的区别。

由于我的历史原因,对c等几乎不懂,平时也用不到,所以看代码等事实际太累,于是我再去学mongodb,接了公司mongodb运维的活,算是在广度上的一个扩展,万一哪天mysql不行了呢

6、总之,对于db小白来说,最重要的一点就是,学习的过程不能断。

PS上面的方法比较野路子,适合没什么基础的童鞋,如果本来就是DBA,比如从oracle转到mysql,那么建议直接看mysql官方文档,而官方文档是db达到一定水平后必看,出问题时必查的权威文档。

以上就是关于数据库到底是什么东西怎么平常生活中没见有多少应用啊全部的内容,包括:数据库到底是什么东西怎么平常生活中没见有多少应用啊、刚接触数据库,一般企业数据库中的生产库,查询库以及测试库有什么区别、你接触到的最大的mysql数据库表是多大(行记录数大概是什么量级的)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存