随笔分类 - 【数据库集】
mssql、mysql、oracle、sqlite、EF、Redis、MongoDB
摘要:一、Sqlite删除记录后数据库文件大小不变 原因是:sqlite采用的是变长纪录存储,当你从Sqlite删除数据后,未使用的磁盘空间被添加到一个内在的”空闲列表”中用于存储你下次插入的数据,用于提高效率,磁盘空间并没有丢失,但也不向操作系统返回磁盘空间,这就导致删除数据乃至清空整个数据库后,数据文
阅读全文
摘要:Linux下Mysql中文显示成问号的问题 1、打开Linux窗口,启动mysql。 2、连接mysql输入show variables like '%character%'; 出现如下图,这样的话在linux下操作mysql会出现中文乱码,所以我们要解决这个问题。 3、关闭mysql,找到/etc
阅读全文
摘要:安装启动 安装之前可以看下系统中有没有已经安装。 查看所有软件:dpkg -l 1、查看mysql安装的版本 mysql --version 2、mysql状态 service mysql status 3、打开数据库 service mysql start 4、关闭数据库: service mys
阅读全文
摘要:一、EF框架之三种模式 Entity Framework是ORMapping的一种具体实现,那ORMapping又是什么呢? ORM--ObjectRelation Mapping,即对象关系映射框架/数据持久化框架,是根据实体对象操作数据表中数据的一种面向对象的操作框架。 其实Entity Fra
阅读全文
摘要:一、插入数据 1、插入数据返回当前主键ID 当我们插入一条数据的时候,很多时候都想立刻获取当前插入的主键值返回以做它用。我们通常的做法有如下几种: 1. 先 select max(id) +1 ,然后将+1后的值作为主键插入数据库; 2. 使用特定数据库的 auto_increment 特性,在插入
阅读全文
摘要:mysql执行原理 只要是B/S架构,都是会有客户端与服务端,mysql也不例外。 首先客户端发出一个请求,这个请求就是一个查询请求(Select),而它请求的对象就是服务端,服务端是怎么处理这项查询功能的呢? 首先可以把服务端想象成一个大的容器,里面有四层结构,当一个请求过来后,将会执行这四层,执
阅读全文
摘要:一、MongoClient类 在2.10.0版本中引入了MongoClient类,同时在其API中也说明了Mongo类会在将来的版本中被MongoClient替换(Note: This class has been superseded by MongoClient, and may be depr
阅读全文
摘要:一、简介 NoSQL NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。 NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,
阅读全文
摘要:EF添加数据、查询数据 使用EF添加数据、查询数据 EF大数据批量处理 BulkInsert EF更新数据库字段的三种方法 实体类 public class TestDbContext : DbContext { public DbSet<Test> Tests { get; set; } publ
阅读全文
摘要:要在vs2017中能打开mysql的连接,需要安装以下扩展 mysql-connector-net-6.9.9+.msi 【这里注意不要下载最新8.x.y版本,有坑】mysql-for-visualstudio-1.2.7+.msi 搜索之后通过官网下载, 安装。。安装mysql-for-visua
阅读全文
摘要:1、缓存雪崩 1.1什么是缓存雪崩? 如果我们的缓存挂掉了,这意味着我们的全部请求都跑去数据库了。 我们都知道Redis不可能把所有的数据都缓存起来(内存昂贵且有限),所以Redis需要对数据设置过期时间,并采用的是惰性删除+定期删除两种策略对过期键删除。 如果缓存数据设置的过期时间是相同的,并且R
阅读全文
摘要:Redis服务安装 主要有两种方式:apt安装和编译安装。 我采用的是apt安装,系统是ubuntu18.04,Redis version 5:4.0.9-1 在 Ubuntu 系统安装 Redi 可以使用以下命令: $sudo apt-get update $sudo apt-get instal
阅读全文
摘要:安装 下载地址:https://github.com/MSOpenTech/redis/releases。 Redis 支持 32 位和 64 位。这个需要根据你系统平台的实际情况选择,这里我们下载 Redis-x64-xxx.zip压缩包到 C 盘,解压后,将文件夹重新命名为 redis。 解压后
阅读全文
摘要:Redis介绍 Redis(Remote Dictionary Server远程字典服务)是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、高性能的Key-Value分布式内存数据库(NoSQL非结构化数据库),和Memcached类似,key只能是字符串,但它支持存储的
阅读全文
摘要:1、客户端多进程并行访问 多进程并行访问是指在客户端创建多个进程(线程),每个进程建立一个与数据库的连接,然后同时向数据库提交访问请求。当数据库主机资源有空闲时,我们可以采用客户端多进程并行访问的方法来提高性能。如果数据库主机已经很忙时,采用多进程并行访问性能不会提高,反而可能会更慢。所以使用这种方
阅读全文
摘要:1、使用绑定变量 绑定变量是指SQL中对变化的值采用变量参数的形式提交,而不是在SQL中直接拼写对应的值。 非绑定变量写法:Select * from employee where id=1234567 绑定变量写法: Select * from employee where id=? Prepar
阅读全文
摘要:1、batch DML 数据库访问框架一般都提供了批量提交的接口,jdbc支持batch的提交处理方法,当你一次性要往一个表中插入1000万条数据时,如果采用普通的executeUpdate处理,那么和服务器交互次数为1000万次,按每秒钟可以向数据库服务器提交10000次估算,要完成所有工作需要1
阅读全文
摘要:1、数据分页处理 一般数据分页方式有: 1.1、客户端(应用程序或浏览器)分页 将数据从应用服务器全部下载到本地应用程序或浏览器,在应用程序或浏览器内部通过本地代码进行分页处理 优点:编码简单,减少客户端与应用服务器网络交互次数 缺点:首次交互时间长,占用客户端内存 适应场景:客户端与应用服务器网络
阅读全文
摘要:1、创建并使用正确的索引 数据库索引的原理非常简单,但在复杂的表中真正能正确使用索引的人很少,即使是专业的DBA也不一定能完全做到最优。 索引会大大增加表记录的DML(INSERT,UPDATE,DELETE)开销,正确的索引可以让性能提升100,1000倍以上,不合理的索引也可能会让性能下降100
阅读全文
摘要:以前看过的一篇长文 1.数据库访问优化法则 要正确的优化SQL,我们需要快速定位能性的瓶颈点,也就是说快速找到我们SQL主要的开销在哪里?而大多数情况性能最慢的设备会是瓶颈点,如下载时网络速度可能会是瓶颈点,本地复制文件时硬盘可能会是瓶颈点,为什么这些一般的工作我们能快速确认瓶颈点呢,因为我们对这些
阅读全文