- 在实习结束之后,我做了一件非常sb的事情,不是说网站要及时进行备份么,防止出现意外,但我在备份的时候呢,教程里面确实写的是如何备份网站,但网站的数据库我没有备份。直接导致我之后网站升级的时候,搭了宝塔平台上去,然后,写的所有学习文章,大三的课程,实习期间手撕的pyspark,pandas官方文档都没了。
- 切记啊,备份网站是站点和数据库一起备份,WordPress也有一键文章导出功能的。呜呜呜。
- 现在我只能靠记录恢复一些内容了
- 索引,给字符串加索引
- 事务隔离
- 全局锁,表锁,行锁
- 主备库
- 删除数据恢复
- flush privileges的适用场景
- postgres,mysql,
- docker
- hive的使用
- 整体来说从语法上postgresql和前几个数据库没有太大的不同,特点的话1、有一些之前没见过的语法,函数,schema之类的。 2、数据类型很多,货币,几何,网络地址类型等。比其他数据库多很多。也有自己规定的数据命名以及形式。 3、安装完可以直接登录网址就可以实现数据库的可视化编辑管理,不像之前几个数据库都要额外下载可视化的软件然后连接到数据库 ;还有就是在网上查到的资料说,因为postgre可以配合很多开源软件,容易做读写分离,复杂均衡等操作。 可以支持并行计算
- 读写分离,并行计算:并行计算是在多个cpu上执行计算
- update的数据隔多久能select到,主库与备库的同步机制是什么?第一个时间不清楚,网上没有查到具体的说明,只是说肯定会存在延迟,延迟的大小根据数据量的多少以及其他因素决定。 第二个,传统方法是主库写完一个日志后把日志传给备库,延迟会很大。新方法是提供了一个叫做hot standby的东西,通过进程流复制过程,与传统方法不同的是,他会在主库产生日志时就直接传递到备库,而传统方法是利用cp等指令实现远程备份,所以会产生延迟。
- 看一下这个wiki:https://wiki.postgresql.org/wiki/数据库对比
- docker:导出导入镜像:docker save -o name.tar name,docker load -i name.tar
- 用docker进入数据库的时候需要创建账户,然后我直接粘贴他那里面的代码,runoob教程里面的权限设置的是userAdminAnyDatabase没办法读写新的数据库。然后我又找了找其他方法,没找到如何更改已有账户的权限,网上全是创建一个新的root账户的方法,但我创建完账户之后始终用db.auth登录不进去。弄了好久也没成功。之后直接重装了一下,在设置第一个账户的时候直接给了root权限,然后创建新账户的时候也能进去了。
- mongodb:
1.一些数据库的基本概念与sql的不太一样,数据库的表对应db的集合,行对应文档,字段对应域等等。db多了一个正则表达式的数据类型 2.字符串采用UTF-8编码,使用二进制数据存储,可以存储视频,图像,音频 3.mongodb创建账户时需要声明账户对于指定或所有数据库所拥有的读写权限,网上没有找到如何更改账户权限的方法,只有创建时设置的方法 4.是一个介于关系和非关系之间的数据库,以键值对存储数据。但也有聚合,索引,排序的功能。 5.查询语句的方式与之前的sql不一样,但不支持子查询,解决方案是先读出数据然后再进行计算 6.可以把不同结构文件存储在同一个数据库中 7.分布式文件系统
- redis:
1.redis是一个key-value的数据库,且对于非集合key来说不能有重复命名,对于相同的key输入时会覆盖掉旧key的值 2.对于集键值对集合来说,用哈希表进行实现,增删改查的复杂度都为o(1),可以按照分数排序或者是字典序返回成员值 3.通过内嵌支持lua脚本输入 4.支持存储字符串,链表,集合,有序集合,哈希类型的数据。 5.提供java,c,C#,PHP等多语言客户端,使用方便。
- memcached,及其与redis,MongoDB的对比:
1.从查找来说,mongoDB更偏向于关系数据库,他的查询支持正则表达式的检索,还有条件查询等等。但redis和memcached是完全偏向于key-value,仅支持的是利用key来查找内容。redis还多了一个key的集合(set)列表(list)概念,一个key代表一个集合,集合内的元素数据类型可以不一样,但不能出现重复数据。mongodb的数据概念更偏向于关系型数据库,有类似的文档等概念。 2.三个数据库都支持原子操作,redis的所有操作都是原子性的, 3.三个数据库的数据类型,总体来说redis和mongodb更为丰富一些,redis支持二进制的很多数据类型,但redis和memcached没有日期类型以及时间函数。mongodb有。 4.redis通过哈希来维护key-value存储,支持数据持久化,支持主备机数据备份。mongodb存储是用的MMAPV1引擎里面的一些功能进行存储的,也支持数据持久化。可以进行数据库备份。memcached,自由开源的,高性能,分布式内存对象缓存系统,并不支持持久化 5.性能方面:从网络资料来看,memcached开源,且扩展性更高,服务器协议简单,支持多种语言,宜处理数据量较小的内容,对于数据量较小的测试而言读速率在三者中排在第二位。redis性能搞,读速率快,在多个测评博客中的读速率都是最高的,但也有少量博客在指定平台下的测试中有mongodb的读速率高于redis的情况。而网上普遍的压力测试结果而言mongodb的读写速率都是出于三者中最低的那一个,且占用内存很高,是redis的几十倍。但从写数据的速率来看三者的效率是差不多的。 6.从增删改查的操作来说,三个数据库都是大同小异。
- pandas:https://pandas.pydata.org/pandas-docs/stable/reference/index.html#api
- pyspark
- numpy
- https://www.paddlepaddle.org.cn/