数据库服务器

2019PHP面试题最全面归纳总结

℡╲_俬逩灬. 提交于 2020-02-17 06:49:46
1、请选择以下代码运行的结果: <?php if ('1e3' == '1000') echo 'LOL'; ?>   A 无任何输出结果      B LOL       C 不执行且报错 解析:1e3 是 科学计数法 实数的指数形式 为1乘以10的三次方,故‘1e3’=='1000'是成立的,输出echo ‘LOL’; 2、请选出以下代码运行的结果: <?php $a = "aabbzz"; $a++; echo $a; ?>   A b            B aabbzz            C aabcaa 解析: 字符串字母相加其实就是在末尾字母加一 如:$a = "a"; $a++;答应结果就是 b,$a=''aa';结果就是ab 故$a = "aabb";打印结果就是 aabc ,如$a = "aabbz";结果就是 aabca,因为Z是末尾字母故加一变为a,向前一位进一,b就变为c,故结果为C; 3,写出一下程序的输出结果:<?php   $data = ['a','b','c']; foreach($data as $k=>$v){ $v = &$data[$k]; } > A $data = ['a','b','c'];            B $data = ['b','b','c'];            C $data = ['b','c','c

海量数据和高并发解决方案

霸气de小男生 提交于 2020-02-17 06:46:12
ps :读书笔记 海量数据解决方案 缓存和页面静态化   缓存就是把从数据库中的数据暂时存起来,下次使用时无需在查询数据库。缓存分为程序直接保存到内存和框架框架2种。程序缓存一般使用currentHashMap直接保存到内存。框架缓存的话有redis,memcache等。   ps:空数据值问题。   缓存创建的时候把没有数据的缓存用特定的符号来表示。因为这种模式下如果从缓存中获取不到数据,就会查询数据库,但是其本身就没有数据的话。那么每次都要查询一次数据库,不合理。   页面静态化:是将程序生成的页面保存起来。这样下次调用直接就使用。连程序这一关也过了。更加快速。可以在程序中使用velocity等技术来生成静态页面,也可以通过上层缓存Nginx来生成。 数据库优化   1.表结构优化:设计合理的符合规范的表。   2.sql优化:根据日志以及其他工具分析那条sql语句最耗时,在针对性的有的放矢的优化,要统筹好,不能只针对一条语句,优化时要考虑到表上的其他语句综合考虑。   3.分区:一个表中数据量太大时,那么分区就可以使用了。分区是将数据按照一定规则把数据分到不同区来保存,这样子操作数据时,数据量更少。查询数据时只在一定区间进行。且这种操作时对程序透明的。程序无需修改。   4.分表:分表就是把表横向切分为几个表。第一种方式就是为了减少数据,比如一张表里面某个字段是分类

redis之RDB持久化与AOF持久化

吃可爱长大的小学妹 提交于 2020-02-15 06:01:30
Redis是一个键值对数据库服务器,服务器中通常包含着任意个非空数据库,而每个非空数据库中又可以包含任意个键值对,为了方便起见,我们将服务器中的非空数据库以及它们的键值对统称为数据库状态。 因为Redis是内存数据库,它将自己的数据库状态储存在内存里面,所以如果不想办法将储存在内存中的数据库状态保存到磁盘里面,那么一旦服务器进程退出,服务器中的数据库状态也会消失不见。为了解决这个问题,Redis提供了RDB持久化功能,这个功能可以将Redis在内存中的数据库状态保存到磁盘里面,避免数据意外丢失。 RDB持久化功能所生成的RDB文件是一个经过压缩的 二进制文件 ,通过该文件可以还原生成RDB文件时的数据库状态。 1、RDB文件的创建与载入 有两个Redis命令可以用于生成RDB文件,一个是SAVE,另一个是BGSAVE. SAVE命令会阻塞Redis服务器进程,直到RDB文件创建完毕为止,在服务器进程阻塞期间,服务器不能处理任何命令请求 : redis> SAVE //等待直到RDB文件创建完毕 OK 和SAVE命令直接阻塞服务器进程的做法不同, BGSAVE命令会派生出一个子进程,然后由子进程负责创建RDB文件,服务器进程(父进程)继续处理命令请求 : redis> BGSAVE //派生子进程,并由子进程创建RDB文件 Background saving started

SQL Server跨库查询

荒凉一梦 提交于 2020-02-14 00:16:26
方式一:   语句   SELECT * FROM 数据库A.dbo.表A a, 数据库B.dbo.表B b WHERE a.field=b.field    "DBO"可以省略 如   SELECT * FROM 数据库A..表A a, 数据库B..表B b WHERE a.field=b.field 方式二(在一个数据库挂上另一个数据库的外链):   SqlServer数据库:   --这句是映射一个远程数据库   EXEC sp_addlinkedserver '远程数据库的IP或主机名',N'SQL Server'   --这句是登录远程数据库   EXEC sp_addlinkedsrvlogin '远程数据库的IP或主机名', 'false', NULL, '登录名', '密码'   --登录后,可以用以下格式操作远程数据库中的对象   select * from [远程数据库的IP或主机名].[数据库名].[dbo].[表名]   insert into openrowset('sqloledb','192.168.0.100';'sa';'10060','select * from knss2009.dbo.yw_kck') select * from yw_kck   示例:     --创建链接服务器     exec sp_addlinkedserver

MS SQL数据库的服务器角色和数据库角色 简述

烂漫一生 提交于 2020-02-13 22:04:27
固定服务器角色 描述 sysadmin 在 SQL Server 中进行任何活动。该角色的权限跨越所有其它固定服务器角色。 serveradmin 配置服务器范围的设置,关闭服务器。 setupadmin 添加和删除链接服务器,并执行某些系统存储过程(如 sp_serveroption)。 securityadmin 管理服务器登录和 CREATE DATABASE 权限,还可以读取错误日志和更改密码。。 processadmin 管理在 SQL Server 实例中运行的进程。 dbcreator 创建、改变和除去数据库。 diskadmin 管理磁盘文件。 bulkadmin 执行 BULK INSERT 语句。 固定数据库角色 描述 db_owner 数据库所有者 db_accessadmin 数据库访问管理员 db_securityadmin 数据库安全管理员 db_ddladmin 数据库 DDL 管理员 db_backupoperator 数据库备份操作员 db_datareader 数据库数据读取者 db_datawriter 数据库数据写入者 db_denydatareader 数据库拒绝数据读取者 db_denydatawriter 数据库拒绝数据写入者 转自:http://blog.javawind.net/disp-42-4.shtml 来源: https:/

SQL Server跨服务器查询

泄露秘密 提交于 2020-02-13 08:54:26
来源:https://www.cnblogs.com/tylerflyn/p/8339895.html 创建链接服务器 exec sp_addlinkedserver 'ITSV', ' ', 'SQLOLEDB', '远程服务器名或ip地址' exec sp_addlinkedsrvlogin 'ITSV', 'false ',null, '用户名', '密码' --查询示例 select * from ITSV.数据库名.dbo.表名 --导入示例 select * into 表 from ITSV.数据库名.dbo.表名 --以后不再使用时删除链接服务器 exec sp_dropserver 'ITSV', 'droplogins' --连接远程/局域网数据(openrowset/openquery/opendatasource) --1、openrowset --查询示例 select * from openrowset( 'SQLOLEDB', 'sql服务器名'; '用户名'; '密码',数据库名.dbo.表名) --生成本地表 select * into 表 from openrowset( 'SQLOLEDB', 'sql服务器名'; '用户名'; '密码 ',数据库名.dbo.表名) --把本地表导入远程表 insert openrowset( 'SQLOLEDB

MySQL数据库备份与恢复

断了今生、忘了曾经 提交于 2020-02-13 01:05:15
MySQL数据库备份与恢复 1、备份方式 逻辑备份(文本表示:SQL 语句) 物理备份(数据文件的二进制副本) 基于快照的备份 基于复制的备份 增量备份(刷新二进制日志) 2、备份类型 2.1 热备份 这些动态备份在读取或修改数据的过程中进行,很少中断或者不中断传输或处理数据的功能。使用热备份时,系统仍可供读取和修改数据的操作访问。 2.2冷备份 这些备份在用户不能访问数据时进行,因此无法读取或修改数据。这些脱机备份会阻止执行任何使用数据的活动。这些类型的备份不会干扰正常运行的系统的性能。但是,对于某些应用程序,会无法接受必须在一段较长的时间里锁定或完全阻止用户访问数据。 2.3温备份 这些备份在读取数据时进行,但在多数情况下,在进行备份时不能修改数据本身。这种中途备份类型的优点是不必完全锁定最终用户。但是,其不足之处在于无法在进行备份时修改数据集,这可能使这种类型的备份不适用于某些应用程序。在备份过程中无法修改数据可能产生性能问题。 3、物理备份 物理备份由存储数据库内容的目录和文件的原始副本组成。这种类型的备份适用于需要在发生问题时快速恢复的大型重要数据库。 3.1物理备份的特点 备份由数据库目录和文件的精确副本组成。通常这是全部或部分MySQL数据目录的副本。 物理备份方法比逻辑更快,因为它们只涉及文件复制而无需转换。 输出比逻辑备份更紧凑。 由于备份速度和紧凑性对繁忙

Redis系列(三):Redis的持久化机制(RDB、AOF)

拜拜、爱过 提交于 2020-02-12 16:26:40
原文: Redis系列(三):Redis的持久化机制(RDB、AOF) 本篇博客是Redis系列的第3篇,主要讲解下Redis的2种持久化机制:RDB和AOF。 本系列的前2篇可以点击以下链接查看: Redis系列(一):Redis简介及环境安装 。 Redis系列(二):Redis的5种数据结构及其常用命令 1. 为什么需要持久化? 因为Redis是内存数据库,它将自己的数据存储在内存里面,一旦Redis服务器进程退出或者运行Redis服务器的计算机停机,Redis服务器中的数据就会丢失。 为了避免数据丢失,所以Redis提供了持久化机制,将存储在内存中的数据保存到磁盘中,用于在Redis服务器进程退出或者运行Redis服务器的计算机停机导致数据丢失时,快速的恢复之前Redis存储在内存中的数据。 Redis提供了2种持久化方式,分别为: RDB持久化 AOF持久化 接下来,我们一一详解。 2. RDB持久化 RDB持久化是将某个时间点上Redis中的数据保存到一个RDB文件中,如下所示: 基于RDB持久化的上述性质,所以RDB持久化也叫做快照持久化。 该文件是一个经过压缩的二进制文件,通过该文件可以还原生成RDB文件时Redis中的数据,如下所示: 2.1 创建RDB文件 Redis提供了2个命令来创建RDB文件,一个是SAVE,另一个是BGSAVE。

Redis系列(三):Redis的持久化机制(RDB、AOF)

北城余情 提交于 2020-02-12 08:38:33
本篇博客是Redis系列的第3篇,主要讲解下Redis的2种持久化机制:RDB和AOF。 本系列的前2篇可以点击以下链接查看: Redis系列(一):Redis简介及环境安装 。 Redis系列(二):Redis的5种数据结构及其常用命令 1. 为什么需要持久化? 因为Redis是内存数据库,它将自己的数据存储在内存里面,一旦Redis服务器进程退出或者运行Redis服务器的计算机停机,Redis服务器中的数据就会丢失。 为了避免数据丢失,所以Redis提供了持久化机制,将存储在内存中的数据保存到磁盘中,用于在Redis服务器进程退出或者运行Redis服务器的计算机停机导致数据丢失时,快速的恢复之前Redis存储在内存中的数据。 Redis提供了2种持久化方式,分别为: RDB持久化 AOF持久化 接下来,我们一一详解。 2. RDB持久化 RDB持久化是将某个时间点上Redis中的数据保存到一个RDB文件中,如下所示: 基于RDB持久化的上述性质,所以RDB持久化也叫做快照持久化。 该文件是一个经过压缩的二进制文件,通过该文件可以还原生成RDB文件时Redis中的数据,如下所示: 2.1 创建RDB文件 Redis提供了2个命令来创建RDB文件,一个是SAVE,另一个是BGSAVE。 SAVE命令会阻塞Redis服务器进程,直到RDB文件创建完毕为止,在服务器进程阻塞期间

[SQL SERVER] 跨服务器查询

半世苍凉 提交于 2020-02-12 05:36:57
来自: http://www.cnblogs.com/daniel206/archive/2008/01/16/1041748.html 方法一: 用OPENDATASOURCE 下面是个跨SQLServer查询的示例 Select TableA.*,TableB.* From OPENDATASOURCE( 'SQLOLEDB', 'Data Source=ServerA;User ID=UserID;Password=Password' ).databaseAName.dbo.TableA Left Join OPENDATASOURCE( 'SQLOLEDB', 'Data Source=ServerB;User ID=UserID;Password=Password' ).databaseBName.dbo.TableB On TableA.key=TableB.key 下面是个查询的示例,它通过用于 Jet 的 OLE DB 提供程序查询 Excel 电子表格。 SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')..