数据库

Mysql 创建数据库设置字符集和排序规则

眉间皱痕 提交于 2020-04-08 00:50:04
create database {database name} CHARACTER SET utf8 COLLATE utf8_general_ci CHARACTER : 字符集(多数情况下要选择一个支持中文的字符集) COLLATE : 排序规则,一般来说每种CHARSET都有多种它所支持的COLLATE,并且每种CHARSET都指定一种COLLATE为默认值。例如Latin1编码的默认COLLATE为latin1_swedish_ci,GBK编码的默认COLLATE为gbk_chinese_ci,utf8mb4编码的默认值为utf8mb4_general_ci Case Insensitive 来源: https://www.cnblogs.com/yxfcnbg/p/12657345.html

Django框架初步应用简述

不打扰是莪最后的温柔 提交于 2020-04-08 00:47:19
一、什么是Django? Django 是用Python开发的一个免费开源的Web框架,可以用于快速搭建高性能,优雅的网站!采用了MVC的框架模式,即模型M,视图V和控制器C,也可以称为MVT模式,模型M(model),视图V(view),模板T(template)。M负责与数据库交互,进行数据处理。V对应接收请求,进行业务处理,相当于MVC中的C,T负责构造要返回的html页面。 二、Django 初步应用?    1.环境准备: pip install -i https://pypi.douban.com/simple Django    2.新建工程: 建议直接在pycharm新建项目时,选择django工程,并在对应目录下创建独立的虚拟环境venv。如下图,选择好后,点击create,即可创建django项目。(需要在虚拟环境 安装数据库操作模块 pip install mysqlclient)    3. 新建子应用: 打开新建工程,进入虚拟环境,运行:python manage.py startapp 子应用名称,或者在pycharm菜单栏中选择TOOLS--RUN manage.py task--->终端窗口再运行:startapp 子应用名。    4. 修改配置: 工程结构如下(新建了projects和interfaces两个子应用)

WHMCS如何进行数据库备份

心已入冬 提交于 2020-04-08 00:22:06
随着计算机网络的飞速发展,信息安全的重要性日趋明显,但是,作为信息安全的一个重要内容——数据库备份的重要性却往往被人们所忽视。定期备份数据库是非常重要的——毕竟硬盘损坏、******对服务器网站造成的破坏都是毁灭性的!这时,如果没有采取数据库备份的话,服务器上的数据会全部丢失,这个严重性是不言而喻的。那么WHMCS是如何进行数据库备份?下面跟随小编一起去了解下吧,希望能帮助到大家。 在 WHMCS 上备份数据库文件非常简单,我们可以选择将备份的数据同步上传到另一个服务器上,那么不至于该服务器出现问题时备份文件也跟着丢失。这里我们在WHMCS上备份数据库时只需要创建一个FTP主机账户指定账户的IP,端口,以及数据库的备份目录。下面我们一起来看下具体的操作步骤。 1.登录到WHMCS账户,在导航栏找到Setup(设置)点击进去找到Other(其他)最后找到Database Backups(数据库备份)点击进去进入下一页页面。 2. 2.现在需要创建一个FPT账户,这里填写主机IP、端口号、登录FTP的用户名、密码和目录,全部设置完成后点击Test Connection创建连接。这里需要说明的是这个FPT账户的创建意味着我们备份的数据库文件会同步上传到我们指定的FTP账户上。 3.这个时候我们已经指定到FTP主机账户,这里你可以登录你的WHM账户(在WHMCS中指定的那个)

Redis 缓存问题(13)

断了今生、忘了曾经 提交于 2020-04-07 23:58:32
缓存使用场景 针对读多写少的高并发场景,我们可以使用缓存来提升查询速度。 当我们使用Redis作为缓存的时候,一般流程是这样的: 因为这些数据是很少修改的,所以在绝大部分的情况下可以命中缓存。但是,一旦被缓存的数据发生变化的时候,我们既要操作数据库的数据,也要操作Redis的数据,所以问题来了。现在我们有两种选择: 先操作Redis的数据再操作数据库的数据 先操作数据库的数据再操作Redis的数据到 底选哪一种?首先需要明确的是,不管选择哪一种方案,我们肯定是希望两个操作要么都成功,要么都一个都不成功。不然就会发生Redis跟数据库的数据不一致的问题。 但是,Redis的数据和数据库的数据是不可能通过事务达到统一的,我们只能根据相应的场景和所需要付出的代价来采取一些措施降低数据不一致的问题出现的概率,在数据一致性和性能之间取得一个权衡。 对于数据库的实时性一致性要求不是特别高的场合,比如T+1的报表,可以采用定时任务查询数据库数据同步到Redis的方案。 由于我们是以数据库的数据为准的,所以给缓存设置一个过期时间,是保证最终一致性的解决方案。 选择方案 一、先更新数据库,再删除缓存 正常情况: 更新数据库,成功。 删除缓存,成功。 异常情况: 1.更新数据库失败,程序捕获异常,不会走到下一步,所以数据不会出现不一致。 2.更新数据库成功,删除缓存失败。数据库是新数据,缓存是旧数据

一文总结分析聚集索引、非聚集索引、覆盖索引的工作原理!

旧街凉风 提交于 2020-04-07 22:47:24
「 数据库 」和「 数据库索引 」这两个东西是在服务器端开发领域应用最为广泛的两个概念,熟练使用数据库和数据库索引是开发人员在行业内生存的必备技能。 使用索引很简单,只要能写创建表的语句,就肯定能写创建索引的语句,要知道这个世界上是不存在不会创建表的服务器端程序员的。然而, 会使用索引是一回事, 而深入理解索引原理又能恰到好处使用索引又是另一回事,这完全是两个天差地别的境界(我自己也还没有达到这层境界)。很大一部份程序员对索引的了解仅限于到“加索引能使查询变快”这个概念为止。 1、为什么要给表加上主键? 2、为什么加索引后会使查询变快? 3、为什么加索引后会使写入、修改、删除变慢? 4、什么情况下要同时在两个字段上建索引? 这些问题他们可能不一定能说出答案。知道这些问题的答案有什么好处呢?如果开发的应用使用的数据库表中只有1万条数据,那么了解与不了解真的没有差别, 然而, 如果开发的应用有几百上千万甚至亿级别的数据,那么不深入了解索引的原理, 写出来程序就根本跑不动,就好比如果给货车装个轿车的引擎,这货车还能拉的动货吗? 接下来就讲解一下上面提出的几个问题,希望对阅读者有帮助。 网上很多讲解索引的文章对索引的描述是这样的「索引就像书的目录, 通过书的目录就准确的定位到了书籍具体的内容」,这句话描述的非常正确, 但就像脱了裤子放屁,说了跟没说一样

聊聊数据库的未来,写在 PingCAP 成立五周年前夕

旧城冷巷雨未停 提交于 2020-04-07 20:30:40
我还清楚记得,五年前的这个时候,当时还在豌豆荚,午后与刘奇和崔秋的闲聊关于未来数据库的想象,就像一粒种子一样,到了今天看起来也竟枝繁叶茂郁郁葱葱,有点感慨。按照惯例,五年是一个重要的节点,没有十年那么冗长,也没有一两年的短暂,是一个很好的回顾节点,就在此认真的回顾一下过去,展望一下未来。 五年前创业的出发点其实很朴素:做一个更好的分布式数据库。从学术的角度上看起来,并不是提出了什么惊天地泣鬼神的神奇算法,我们选择的 Shared-nothing 的架构其实在当时的业界也不是什么新鲜的事情了,但真正令我激动的是:我们要造的是一个真正能作为整个系统的 Single Source of Truth 的基础软件。这句话怎么理解呢?我在后边会好好聊聊。 数据是架构的中心 作为一个互联网行业的架构师,几乎是天天都在和各种类型的数据打交道,这么多年的经验,不同行业不同系统,从技术层面来说,抽象到最高,总结成一句话就是: 数据是架构的中心。 仔细想想,我们其实做的一切工作,都是围绕着数据。数据的产生,数据的存储,数据的消费,数据的流动……只不过是根据不同的需求,变化数据的形态和服务方式。计算机系的同学可能还记得老师说过的一句话:程序 = 算法 + 数据结构,我这里斗胆模仿一下这个句式: 系统 = 业务逻辑 x 数据 。可以说很多架构问题都是出在数据层,例如常见的「烟囱式系统」带来的种种问题

ORACLE外部表总结

有些话、适合烂在心里 提交于 2020-04-07 20:13:12
ORACLE外部表总结 https://www.cnblogs.com/kerrycode/p/3894260.html 外部表介绍 ORACLE外部表用来存取数据库以外的文本文件(Text File)或ORACLE专属格式文件。因此,建立外部表时不会产生段、区、数据块等存储结构,只有与表相关的定义放在数据字典中。外部表,顾名思义,存储在数据库外面的表。当存取时才能从ORACLE专属格式文件中取得数据,外部表仅供查询,不能对外部表的内容进行修改(INSERT、UPDATE、DELETE操作)。不能对外部表建立索引。因为创建索引就意味着要存在对应的索引记录。而外部表其实在没有存储在数据库中。故在外部是无法建立索引的。如果硬要建立的话,则系统会提示“操作在外部组织表上不受支持”的错误提示。 Notice: 外部表是ORACLE 9i后引入的。 外部表特征 (1) 位于文件系统之中(一定要在数据库服务器中,而不是其它网络路径),按一定格式分割, 例如@#$等,文本文件或者其他类型的文件可以作为外部表。   (2) 对外部表的访问可以通过SQL语句来完成,而不需要先将外部表中的数据装载进数据库中。   (3) 外部数据表都是只读的,因此在外部表不能够执行DML操作,也不能创建索引。   (4) ANALYZE语句不支持采集外部表的统计数据,应该使用DMBS

还原SQL Server 数据库

老子叫甜甜 提交于 2020-04-07 19:36:04
第一步,双击打开安装的Sql Server 2014 Management Studio。弹出“连接到服务器”窗口,点击连接即可。 第二步,将事先备份好的数据库文件复制后黏贴到Sql Server 2014 数据库存放目录 backup 下,并改文件后缀名为 .bak 以便还原。如我的目录是“D:\Microsoft SQL Server 2014\MSSQL12.MSSQLSERVER\MSSQL\Backup”。 第三步,在对象资源管理器中 右击数据库 ,选择“ 还原数据库 ”,弹出“还原数据库”窗口。 第四步,在“还原数据库”窗口中,” 源 “下面点击” 设备 “,然后点击小方形符号” ... “来选择备份设备。如图: 第五步,在”选择备份设备“窗口中,点击” 添加 “按钮,来选择数据库文件。如图所示: 第六步,在弹出的”定位备份文件“窗口中,选择刚才你加入的” .bak “目标文件即可,点击 确定 。如图: 第七步,接着再点击 确定 ,Sql Server 会自动帮我们做好一切还原前的准备。回到了“还原数据库”窗口。接着,点击“ 选项 ”,还原选项勾选“ 覆盖现有数据库 ”,以防之前的数据库影响。如图: 最后,点击 确定 ,Sql Server便自动为我们还原数据库文件了。等待几秒(如果数据库文件较大,可能要等待更长时间),弹出“ 成功还原了数据库 ”,点击“ 确定 ”

从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值

ⅰ亾dé卋堺 提交于 2020-04-07 19:28:59
最近在ASP.NET MVC中遇到一个问题,如题,在使用EF数据模型的时候,要去添加一条新的数据到Sqlserver数据库,在之前项目中并没有出现该异常,所以去扒了扒demo,发现有几个字段(数据库类型为datetime)savechange的时候默认绑定了datetime.now。问题就在这里,我的新项目并没有给定这几个字段的数据。下面总结下: 触发该错误的条件如下: SQL Server数据库版本中的字段类型为datetime2 数据库中,某个要进行Add或者Edit的字段的数据类型为datetime,比如表A中的today字段,类型为datetime。而后台代码进行数据库操作时,并没有给today(datetime类型)赋值。结果就是VS2015编译的时候默认将其类型编译为datetime2,导致用EF进行add和edit操作的时候出现该异常。 解决方案: 给这些字段一个值(不管它是否在数据库设置了默认值),并且日期要大于1753年1月1日,这是最简单的方法。 将数据库类型修改为datetime?类型,也就是说允许为空。 修改数据库字段类型为datetime2类型,前提是数据库要支持该类型。 在C#中用new DateTime(year,month,day,hour,minute,second)来限制精度,原因之后会在datetime2和datetime的区别中提到。