数据库

MySQL 21道高频面试题及其解析

人盡茶涼 提交于 2020-04-03 23:52:04
Q1:MySQL主要有哪些存储引擎,分别适合哪些应用场景? 答:主要有①MyISAM,是5.5版本之前的默认存储引擎,支持表级锁,不支持事务和外键,并发效率较低,读取数据快,更新数据慢。适合以读操作为主,并且对并发性要求较低的应用。②InnoDB,MySQL目前的默认存储引擎,支持行级锁、事务和外键,并发效率好。适合对事务的完整性和并发性、数据的准确性要求比较高,增删操作多的应用。③Memory,所有的数据都保存在内存中,访问速度快,一旦服务关闭数据将丢失。适合更新不太频繁的数据量小的表用来快速得到访问结果。④Archive、Federated等。 Q2:索引是什么? 答:MySQL官方对索引的定义为:索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。 Q3:索引的优缺点有哪些? 答:①优势:提高数据检索的效率,降低数据库的IO成本。通过索引列对数据进行排序,降低数据排序的成本,降低CPU的消耗。②劣势:实际上索引也是一张表,该表中保存了主键与索引字段,并指向实体类的记录,所以索引列也是要占用空间的。 虽然索引大大提高了查询效率,同时却也降低更新表的速度,如对表进行INSERT、UPDATE

NET Core中的认证管理解析

試著忘記壹切 提交于 2020-04-03 22:16:18
2016-08-19 07:15 0x00 问题来源 在新建.NET Core的Web项目时选择“使用个人用户账户”就可以创建一个带有用户和权限管理的项目,已经准备好了用户注册、登录等很多页面,也可以使用AuthorizeAttribute进行各种权限管理,看起来似乎十分方便。不过生成的代码都替我干了些什么我一团雾水。看了下生成的数据表,功能也挺复杂的。实际上我需要的只是基于用户和角色的认证管理,而且用户资料是使用现有的库,但使用.NET Core自带的认证组件必须要依赖EF,表的结构也很多对不上,所以学习了下自带的认证组件的实现,然后自己写了个认证服务替换了Identity组件,同时Cookie管理使用自带的Cookie中间件、可以使用AuthorizeAttribute进行认证。复杂的需求还没遇到,所以就学习到了这里。这篇博客主要讨论最简单情况下的的基于用户和角色的认证。关于.NET Core自带认证组件的一些基本用法,可以参考。 0x01 .NET Core中的认证管理 提到认证管理,首相想到的就是用户的注册、登录、注销以及给用户添加/删除角色等功能。其中用户信息,角色信息等都是保存在数据库中的。所以主要包含数据库操作和登录业务逻辑两部分。在登录业务逻辑层面,.NET Core主要通过三个比较核心的类UserManager、RoleManager

数据库设计方法、规范与技巧

让人想犯罪 __ 提交于 2020-04-03 22:14:08
原文地址: http://www.xiaohao.com/bfart/view.asp?id=160 一、数据库设计过程 数据库技术是信息资源管理最有效的手段。数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。 数据库设计中需求分析阶段综合各个用户的应用需求(现实世界的需求),在概念设计阶段形成独立于机器特点、独立于各个DBMS产品的概念模式(信息世界模型),用E-R图来描述。在逻辑设计阶段将E-R图转换成具体的数据库产品支持的数据模型如关系模型,形成数据库逻辑模式。然后根据用户处理的要求,安全性的考虑,在基本表的基础上再建立必要的视图(VIEW)形成数据的外模式。在物理设计阶段根据DBMS特点和处理的需要,进行物理存储安排,设计索引,形成数据库内模式。 1. 需求分析阶段 需求收集和分析,结果得到数据字典描述的数据需求(和数据流图描述的处理需求)。 需求分析的重点是调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。 需求分析的方法:调查组织机构情况、调查各部门的业务活动情况、协助用户明确对新系统的各种要求、确定新系统的边界。 常用的调查方法有: 跟班作业、开调查会、请专人介绍、询问、设计调查表请用户填写、查阅记录。 分析和表达用户需求的方法主要包括自顶向下和自底向上两类方法

Java Web入门学习路线图的规划

偶尔善良 提交于 2020-04-03 22:11:30
Java作为学习编程开发入门语言,可能对于许多新手来说可能有点摸不着北,做位一名有几年开发经验的老鸟,希望给一些新人分享经验,当然其他老鸟如果有什么意见可以指出,我也会努力纠正。 本人工作是有关Java Web 开发,所以我会以Java Web标准开发去做一个标准,当然Java 能做的事情很多,包括Android,Java Me等,后期只要我们努力可以学习更多,更深的我也说不了,我现在只谈谈怎么去入门,至于登堂入室,大家有了套路以后,都能够达到。我写这个初衷,是因为我本来是一名非计算机专业的学生,后来我渐渐地走向这条编程不归路时,深谙非本专业同学自学不易,所以我总结一些经验,希望能给学习Java的同学们一些帮助。 以下是一张总图。 我把Java Web学习分成6个阶段,本人也未完成所有的目标,毕竟学无止境嘛,而且编程本来就是不断学习,积累的过程。好了,我再详细的介绍每一个阶段的小目标,毕竟学习是一个循序渐进的过程。 第一个阶段,HTML,JavaScript,Css,这三个是网页展示的三个密切相连的技术。学习Html 需要从最基本的标签入手,学习Css需要从选择器,属性开始。至于JavaScript,就是要从Dom对象入手,以及理解,函数定义,监听事件处理。 Jquery是对JavaScript的一种简化,它有许多选择器,操作Dom对象,ajax请求,动画对象。 第二阶段,Java

Django---Mysql数据库链接

人盡茶涼 提交于 2020-04-03 22:05:17
Django链接Mysql数据库: 第一步:创建应用 python manage.py startapp index 第二步:将应用添加到配置里面 settings INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'index', ] 第三步:新建数据库 testone 第四步:引入 pymysql 在当前应用 index 下的 __init__.py 中引入 pymysql 第四步:数据库链接配置 settings DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'testone', 'USER':'root', 'PASSWORD':'root', 'HOST':'127.0.0.1', 'PORT':'3306', } } 第五步:修改应用下的 models.py from django.db import models # Create your models here

用DB2 Runtime Client实现Apache Derby 数据库ODBC编程

。_饼干妹妹 提交于 2020-04-03 20:49:18
笔者对数据库了解的不是很多,最近有个需求需要整合DerBy数据库,所以需要研究了下它的ODBC编程方式。主要参考IBM官网的一篇文章,链接地址如下: 点击此处 。按照它的步骤进行操作发现,编目数据库没问题,也可以连接上,但执行sql语句会有问题。最后经过搜索资料,发现需要在db2 client端进行以下设置:DB2COMM=tcpip;DB2CODEPAGE=1208,一个是设置通信默认协议,一个是解决编码问题。再次进行ODBC 连接测试,并在DB2 CLP中运行sql语句成功返回结果。 来源: https://www.cnblogs.com/uvyifan/archive/2013/03/22/2975797.html

数据库监控工具--PIGOSS BSM

谁说胖子不能爱 提交于 2020-04-03 16:00:38
数据就是一切,各类数据在企业生产经营中都起着至关重要的作用,是所有的经营活动所依赖的,不可或缺的信息。数据就犹如企业经营者的眼睛一样,通过数据可以反映出所有的问题,就犹如舵手依赖导航一样。 现在每个企业和组织发展都需要依赖大量的数据,数据也成为了企业最有价值的资产。现代网络纷繁复杂,由众多组件构成,我们不可能关注到所有的东西,为了让数据发挥最大的价值,通常我们都会采用数据库监控工具, 监控数据库与监控其他 IT 组件没有什么不同。数据库监控的主要目标是确保数据在需要时是可用的。这听起来很简单,但实际操作却相当复杂,部分原因在于组件的数量和种类。 虽然数据库是一个抽象概念,但它是由非常具体的东西组成的。从硬件到软件,数据库监控工具必须始终确保所有组件都是可用的,并且在正常范围内运行。 数据库最基本的元素是它所运行的硬件。就像任何一台计算机一样,这些硬件有很多可调整的参数。例如,我们需要考虑 CPU 负载、可用内存或处理器核心温度。实际上,监控数据库服务器与监控其他服务器没有什么不同。需要监控的下一个组件是底层操作系统。有些数据库运行在 Windows 上,有些运行在 Linux 或其他 Unix 发行版上。无论是什么操作系统,都有几个重要的参数需要监控,例如磁盘空间或磁盘使用情况。就像硬件一样,操作系统级别的数据库监控与其他类型的监控也没有什么不同。最后是对实际数据库的监控

linux下导入导出数据库

霸气de小男生 提交于 2020-04-03 14:01:06
导入导出数据库用mysqldump命令,使用方法与mysql命令类似。 导出 导出sql(包含数据和表结构):mysqldump -uroot -p dbname > dbname.sql 导出sql(只导出表结构):mysqldump -uroot -p -d dbname > dbname.sql 敲回车后会提示输入数据库登录密码 导入 登录数据库:mysql -h192.168.0.1 -uroot -p (如果是本地库,-h192.168.0.1就不需要了) 创建空数据库:create database mydb; 选择数据库:use mydb; 执行语句(导出时的语句):source /mnt/dbname.sql (注意文件所在目录) show tables 查看是否都导入了。 来源: https://www.cnblogs.com/xjxz/p/6544585.html

细说SYBASE数据库日志

不问归期 提交于 2020-04-03 13:51:07
细说SYBASE数据库日志   SYBASE公司是世界著名的数据库厂家,其关系数据库产品SYBASE SQL Server在中国大中型企事业单位中拥有大量的用户。笔者在多年的使用过程中,总结出SYBASE数据库管理和维护的一些经验,现拿出来与大家分享。   我们知道,SYBASE SQL Server用事务(Transaction)来跟踪所有数据库的变化。事务是SQL Server的工作单元。一个事务包含一条或多条作为整体执行的T-SQL语句。每个数据库都有自己的事务日志(Transaction Log),即系统表(Syslogs)。事务日志自动记录每个用户发出的每个事务。日志对于数据库的数据安全性、完整性至关重要,我们进行数据库开发和维护必须熟知日志的相关知识。    一、SYBASE SQL Server 如何记录和读取日志信息   SYBASE SQL Server是先记Log的机制。每当用户执行将修改数据库的语句时,SQL Server就会自动地把变化写入日志。一条语句所产生的所有变化都被记录到日志后,它们就被写到数据页在缓冲区的拷贝里。该数据页保存在缓冲区中,直到别的数据页需要该内存时,该数据页才被写到磁盘上。若事务中的某条语句没能完成,SQL Server将回滚事务产生的所有变化。这样就保证了整个数据库系统的一致性和完整性。    二、日志设备  

Informatica 9.5.1 安装配置

99封情书 提交于 2020-04-03 13:16:16
Informatica 结构 1个或多个资源库(Respository) PowerCenter数据整合引擎是基于元数据驱动的,提供了基于数据驱动的元数据知识库(Repository),该元数据知识库可以在主流的关系型数据库中部署。该院数据库中存储所有的ETL元数据,包括:源、目标表的物理和逻辑元数据,ETL转换规则,知识库用户权限,ETL任务运行历史信息等元数据。 2个Server Informatica Repository Server: 资料库的Server,管理ETL过程中产生的元数据,用来管理所有对资料库中元数据的请求和操作。 Informatica Server: 实际的ETL引擎 5个Client PowerCenter Designer: 设计开发环境,定义源及目标数据结构;设计转换规则,生成ETL映射 Workflow Manager: 合理地实现复杂的ETL工作流,基于时间、事件的作业调度 Workflow Monitor: 监控Workflow和Session 运行情况,生成日志的报告 Repository Manager: 资料库管理,包括安全性管理等,元数据维护和安全操作,如:元数据查找,用户、组、权限管理等。 Repository Server Administrator Console:对知识库的操作,如:知识库的创建、备份,恢复等。