数据库系统

GreenPlum 最佳实践

江枫思渺然 提交于 2019-11-28 23:04:07
数据模型 Greenplum数据库是一种shared nothing的分析型MPP数据库。这种模型与高度规范化的/事务型的SMP数据库有显著区别。Greenplum数据库使用非规范化的模式设计会工作得最好,非规范化的模式适合于MPP分析型处理,例如带有大型事实表和较小维度表的星形模式或者雪花模式。 对表中用于连接的列使用相同的数据类型。 堆存储 vs. 追加优化存储 对将会接收迭代批量或者单一UPDATE、DELETE以及INSERT操作的表和分区使用堆存储。 对将会接收并发UPDATE、DELETE以及INSERT操作的表和分区使用堆存储。 对于在初始装载后很少更新并且只会在大型批处理操作中进行后续插入的表和分区,使用追加优化存储。 绝不在追加优化表上执行单个INSERT、UPDATE或者DELETE操作。 绝不在追加优化表上执行并发的批量UPDATE或DELETE操作。可以执行并发的批量INSERT操作。 行存 vs. 列存 如果负载中有要求更新并且频繁执行插入的迭代事务,则对这种负载使用行存。 在对宽表选择时使用行存。 为一般目的或混合负载使用行存。 选择面很窄(很少的列)和在少量列上计算数据聚集时使用列存。 如果表中有单个列定期被更新而不修改行中的其他列,则对这种表使用列存。 压缩 在大型追加优化和分区表上使用压缩以改进系统范围的I/O。 在数据位于的级别上设置列压缩设置。

phpcms二次开发

落爺英雄遲暮 提交于 2019-11-28 22:46:38
文件目录结构 根目录 | – api 接口文件目录 | – caches 缓存文件目录 | – configs 系统配置文件目录 | – caches_* 系统缓存目录 | – phpcms phpcms框架主目录 | – languages 框架语言包目录 | – libs 框架主类库、主函数库目录 | – model 框架数据库模型目录 | – modules 框架模块目录 | – templates 框架系统模板目录 | – phpsso_server phpsso主目录 | – statics 系统附件包 | – css 系统css包 | – images 系统图片包 | – js 系统js包 | – uploadfile 网站附件目录 | – admin.php 后台管理入口 | – index.php 程序主入口 | – crossdomain.xml FLASH跨域传输文件 | – robots.txt 搜索引擎蜘蛛限制配置文件 | – favicon.ico 系统icon图标 URL访问 PHPCMS是采用MVC设计模式开发,基于模块和操作的方式进行访问,采用单一入口模式进行项目部署和访问,无论访问任何一个模块或者功能,只有一个统一的入口。 参数名称 描述 位置 备注 m 模型/模块名称 phpcms/modules中模块目录名称 必须 c 控制器名称 phpcms

秋招笔试准备——客观题

老子叫甜甜 提交于 2019-11-28 22:42:42
Python Python内存( 垃圾回收机制 ): https://www.cnblogs.com/yhll/p/8908882.html 爬虫如何工作: https://www.cnblogs.com/sunBinary/p/11055626.html 在Python中所有的对象都可以进行真值测试,下面罗列一下判断为假的情况: None False 数值中的零,包括0,0.0,0j(虚数) 空序列,包括空字符串(”),空元组(()),空列表([]) 空的字典{} 自定义的对象的实例,该对象的__bool__方法返回False或者__len__方法返回0 迭代和递归的特点,并比较优缺点 软件测试 https://www.cnblogs.com/test-my/p/6019336.html 按照瀑布模型的阶段划分,软件测试可以分为单元测试,集成测试,系统测试。 测试一个杯子或登录界面 测试框架: https://www.cnblogs.com/ceshi2016/p/9110695.html 黑盒测试用例方法:等价类划分方法、边界值分析方法、错误推测方法、因果图方法、判定表驱动分析方法、正交实验设计方法、功能图分析方法 https://blog.csdn.net/zhusongziye/article/details/79822394 白盒测试用例方法:由弱到强的6种:语句覆盖

MySQL常用系统表汇总

依然范特西╮ 提交于 2019-11-28 22:39:39
在这篇文章中: MySQL5.7 默认模式 Information_schema performance_schema mysql sys MYSQL SHOW 命令 致谢 概述 本篇文章虽大部分内容为参考原文作者的相关内容,但对原文对于文章的逻辑与排版上进行了大范围修改,方便阅读与理解。原文链接在底部 MySQL5.7 默认模式 库名 表数量 视图数量 information_schema 61 0 mysql 32 0 performance_schema 87 0 sys 1 100 Information_schema Information_schema数据库是 MySQL 自带的,它提供了访问数据库元数据的方式。 什么是元数据呢? 元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等。有些时候用于表述该信息的其他术语包括“数据词典”和“系统目录”。 在MySQL中,把 information_schema 看作是一个数据库,确切说是信息数据库。其中保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权限等。在INFORMATION_SCHEMA中,有数个只读表。它们实际上是视图,而不是基本表,因此,你将无法看到与之相关的任何文件 information_schema 数据库部分表说明 表名 注释

数据库为何需要安全审计系统

ε祈祈猫儿з 提交于 2019-11-28 22:22:53
随着互联网的快速发展,企业通过各种应用产生在数据库中的所有关于商业以及公共安全性的数据,已经成为各企事业单位最具有价值的资产。通常企业为了防止这些敏感数据被竞争对手或者黑客非法获取,用以谋求不正当的利益,都会通过各种方式将这些信息严密保护起来。 但是,根据星瑞格软件统计显示:企业绝大多数重要的敏感的数据存储于数据库,90%以上敏感信息泄露源于数据库。而外泄的敏感信息主要是个人信息泄露,包括:用户名、用户密码、电子邮件、电话号码、银行账号、个人财产信息等。对于数据泄露的方式,主要包括:外包商滥用、离职员工窃取、管理者滥用、使用者误操作、内部人员窃取以及黑客窃取等。这也表明,企业对数据库防护并没有想象中的那么完美,而是面临各种安全风险的挑战。 数据库面临管理风险的挑战,主要表现在:人员职责的定位不明确、工作流程的不完善、内部员工的日常操作不规范、第三方维护人员的操作监控失效以及离职员工恶意泄漏等,这些原因都会导致数据库安全事件的发生,并且无法追溯并定位真实的操作者。随着目前企事业单位都进行扁平化管理体系的建立,需要将权力下放,并且电子文档传递工具发展迅速(QQ,微信……),会导致机密数据在企事业单位内部随处可见。但是,员工的泄密并不都是恶意的,有的是不清楚公司的规范而导致数据的误用和传递。 传统的数据库安全审计,基本都依赖于数据库自身的审计功能

电商系统部署 MyCat & Nginx

跟風遠走 提交于 2019-11-28 21:49:13
1.开源数据库中间件-MyCat 如今随着互联网的发展,数据的量级也是撑指数的增长,从GB到TB到PB。对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据的需求。这个时候NoSQL的出现暂时解决了这一危机。它通过降低数据的安全性,减少对事务的支持,减少对复杂查询的支持,来获取性能上的提升。 但是,在有些场合NoSQL一些折衷是无法满足使用场景的,就比如有些使用场景是绝对要有事务与安全指标的。这个时候NoSQL肯定是无法满足的,所以还是需要使用关系性数据库。如果使用关系型数据库解决海量存储的问题呢?此时就需要做数据库集群,为了提高查询性能将一个数据库的数据分散到不同的数据库中存储。 1.1 MyCat简介 Mycat 背后是阿里曾经开源的知名产品——Cobar。Cobar 的核心功能和优势是 MySQL 数据库分片,此产品曾经广为流传,据说最早的发起者对 Mysql 很精通,后来从阿里跳槽了,阿里随后开源的 Cobar,并维持到 2013 年年初,然后,就没有然后了。 Cobar 的思路和实现路径的确不错。基于 Java 开发的,实现了 MySQL 公开的二进制传输协议,巧妙地将自己伪装成一个 MySQL Server,目前市面上绝大多数 MySQL 客户端工具和应用都能兼容。比自己实现一个新的数据库协议要明智的多,因为生态环境在哪里摆着。 Mycat

mysql03

谁说我不能喝 提交于 2019-11-28 19:23:35
分库分表 数据切分 通过某种特定的条件,将我们存放在同一个数据库中的数据分散存放到多个数据库(主机)上面,以达到分散单台设备负载的效果。 数据的切分(Sharding)根据其切分规则的类型,可以分为两种切分模式。一种是按照不同的表(或者 Schema)来切分到不同的数据库(主机)之上,这种切可以称之为数据的垂直(纵向)切分;另外一种则是根据 表中的数据的逻辑关系,将同一个表中的数据按照某种条件拆分到多台数据库(主机)上面,这种切分称之为数 据的水平(横向)切分。 垂直切分 一个数据库由很多表的构成,每个表对应着不同的业务,垂直切分是指按照业务将表进行分类,分布到不同 的数据库上面,这样也就将数据或者说压力分担到不同的库上面 系统被切分成了,用户,订单交易,支付几个模块。 一个架构设计较好的应用系统,其总体功能肯定是由很多个功能模块所组成的,而每一个功能模块所需要的 数据对应到数据库中就是一个或者多个表。而在架构设计中,各个功能模块相互之间的交互点越统一越少,系统 的耦合度就越低,系统各个模块的维护性以及扩展性也就越好。这样的系统,实现数据的垂直切分也就越容易。 优点 拆分后业务清晰,拆分规则明确。 系统之间整合或扩展容易。 数据维护简单。 缺点 部分业务表无法 join,只能通过接口方式解决,提高了系统复杂度。 受每种业务不同的限制存在单库性能瓶颈,不易数据扩展跟性能提高。

MySQL升级

|▌冷眼眸甩不掉的悲伤 提交于 2019-11-28 19:04:04
一、概述 Linux MySQL 5.7二进制 小版本升级,升级前需要备份数据和mysql主配置文件my.cnf 对数据字典的升级数据字典有:mysql、information_schema、performance_schema、sys schema。 MySQL升级的两种方式: in-place upgrade: 适合小版本的升级。 即 关闭当前的MySQL,替换当前的二进制文件或包,在现有的数据目录上重启MySQL,并运行mysql_upgrade. 特点:不改变数据文件,升级速度快;但,不可以跨操作系统,不可以跨大版本(5.5—>5.7). logical upgrade: 适合不同操作系统的MySQL升级,大版本之间的升级。 即:使用mysqldump 或 mydumper 导入导出数据,实现版本的升级。 特点:可以跨操作系统,跨大版本;但,升级速度慢,容易出现乱码等问题。 二、小版本升级 in-place upgrade方式 in-place upgrade包括关闭旧的MySQL服务器,用新的MySQL服务器替换旧的MySQL二进制文件或软件包,在现有数据目录上重新启动MySQL,以及运行mysql_upgrade。 2.1 XA事务InnoDB 如果您使用XA事务InnoDB,请XA RECOVER在升级之前运行以检查未提交的XA事务。如果返回结果,则通过发出XA

学生综合评价系统

天大地大妈咪最大 提交于 2019-11-28 17:57:41
学生综合评价系统 学生综合评价系统mysql数据库创建语句 学生综合评价系统oracle数据库创建语句 学生综合评价系统sqlserver数据库创建语句 学生综合评价系统mysql数据库版本源码: 超级管理员表创建语句如下: create table t_admin( id int primary key auto_increment comment '主键', username varchar(100) comment '超级管理员账号', password varchar(100) comment '超级管理员密码' ) comment '超级管理员'; insert into t_admin(username,password) values('admin','123456'); 建议表创建语句如下: create table t_contact( id int primary key auto_increment comment '主键', username varchar(100) comment '账号', password varchar(100) comment '密码', name varchar(100) comment '姓名', gh varchar(100) comment '工号' ) comment '建议'; 订单详情表创建语句如下: create

mysql优化数据库方法

半腔热情 提交于 2019-11-28 15:22:31
首先声明此篇博客为转载,转载自最下方链接,为防止本人遗忘,故发布博客 第一方面:30种mysql优化sql语句查询的方法 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by涉及的列上建立索引。   2.应尽量避免在 where 子句中使用 !=或<> 操作符,否则将引擎放弃使用索引而进行全表扫描。   3.应尽量避免在 where 子句中对字段进行 null 值 判断,否则将导致引擎放弃使用索引而进行全表扫描,如:   select id from t where num is null   可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:   select id from t where num=0   4.应尽量避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,如:   select id from t where num=10 or num=20   可以这样查询:   select id from t where num=10   union all   select id from t where num=20   5.下面的查询也将导致全表扫描:   select id from t where name like '%abc%'   对于 like '..%'