首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

数据库优化之(创建索引、分表、读写分离、缓存

数据库优化之创建索引 索引(Index)是帮助DBMS高效获取数据的数据结构。 分类:普通索引/唯一索引/主键索引/全文索引。...普通索引: 允许重复的值出现; 唯一索引: 除了不能有重复的记录外,其它和普通索引一样(用户名、用户身份证、email、tel); 主键索引:是随着设定主键而创建的,也就是把某个列设为主键的时候,数据库就会給改列创建索引...具体技巧: 对于创建的多列索引(复合索引),不是使用的第一部分就不会使用索引。...数据库优化之缓存 在持久层(dao)和数据库(db)之间添加一个缓存层,如果用户访问的数据已经缓存起来时,在用户访问时直接从缓存中获取,不用访问数据库。而缓存是在操作内存级,访问速度快。...作用:减少数据库服务器压力,减少访问时间。 Java中常用的缓存有: 1、hibernate的二级缓存,该缓存不能完成分布式缓存

1.4K10
您找到你想要的搜索结果了吗?
是的
没有找到

数据库缓存

数据库缓存 摘要: 这里讲的缓存数据库本身的缓存,并不是外部缓存例如Redis/Memcache等等。...本文节选自《Netkiller Architect 手札》 第 10 章 数据库缓存 目录 10.1. 什么是数据库缓存? 10.2. 为什么缓存数据呢? 10.3....什么时候使用数据库缓存 10.4. 涉及缓存的地方有哪些 10.5. 谁来控制数据库缓存 10.6. 怎么控制数据库缓存 10.6.1. SQL_CACHE 缓存 10.6.2....涉及缓存的地方有哪些 数据库本身,查看数据库缓存状态 数据库应用程序接口(ODBC、JDBC......) 10.5....谁来控制数据库缓存 通常DBA只能控制数据库缓存是否开启,分配多少内存给缓存使用,过期销毁时间,以及策略等等. 上面我已经说过,通常数据库默认都开启缓存,所以更多的时候我们的操作是禁用缓存

3K80

缓存数据库Redis

1)、客户端向后端发送请求的时候,会先去缓存层查询,查询看看是否有符合的数据。   2)、如果有的话,直接返回。   3)、如果在缓存层没有查询到,才回去存储层去查询。   ...4)、去存储层查询叫做穿透查询,就是穿透缓存去存储层进行查询。   5)、从存储层查询出的数据回写到缓存层,方便下次查询的时候进行查询,回写的过程就是会种了。   ...2)、BGSAVE,fork出一个子进程来创建RDB文件,记录接收BGSAVE当时的数据库状态,父进程继续处理接收到的命令,子进程完成文件的创建之后会发送信号给父进程即Redis的主进程,而于此同时,父进程处理命令的同时...答:AOF(append-only-file)持久化,通过保存Redis服务器所执行的写状态来记录数据库的。   1)、记录下除了查询以外的所有变更数据库状态的指令。...数据库会记录下所有变更数据库状态的指令,除了指定数据库的查询命令,其它的命令都是来自client的。

1.4K30

redis缓存数据库

缓存数据库介绍 NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,泛指非关系型的数据库,随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的...文档型数据库可 以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。如:CouchDB, MongoDb. 国内也有文档型数据库SequoiaDB,已经开源。..., Oracle BDB 内容缓存,主要用于处理大量数据的高访问负载,也用于一些日志系统等等。...与memcached一样,为了保证效率,数据都是缓存在内存中。...MultiUtility工具:Redis是一个多功能实用工具,可以在很多如:缓存,消息传递队列中使用(Redis原生支持发布/订阅),在应用程序中,如:Web应用程序会话,网站页面点击数等任何短暂的数据

4K40

缓存淘汰、缓存穿透、缓存击穿、缓存雪崩、数据库缓存双写一致性

,而这个数据在Redis中不存在,从而所有的请求都落到了数据库上从而把数据库打死。...造成这种情况的原因如下: 系统设计不合理,缓存数据更新不及时 爬虫等恶意攻击 解决方案: 如果key在数据库中也不存在,那么就写一个空值到Redis中,并设置一个过期时间,避免一直占用内存 查询缓存之前使用布隆过滤器拦截...缓存击穿 缓存击穿,就是常说的热点key问题,当一个正有非常巨大的访问量访问的key 在失效的瞬间,大量的请求击穿了缓存,直接落到了数据库上,然后所有从数据获取到数据的线程又都并发的想要把数据缓存到...Redis 的持久化机制 数据库缓存双写一致性 当一个数据需要更新时因为不可能做到同时更新数据库缓存、那么此时读取数据的时候就一定会发生数据不一致问题,而数据不一致问题在金融交易领域的系统中是肯定不允许的...解决方案: 读的时候,先读缓存缓存没有的话,就读数据库,然后取出数据后放入缓存,同时返回响应。 更新的时候,先更新数据库,然后再删除缓存。 参考自公众号:石杉的架构笔记

1.7K20

Hive 基本操作(创建数据库创建数据库表)

二、Hive基本操作 2.1、创建数据库创建数据库创建数据库操作 创建数据库 create database if not exists myhive; use myhive; ?...hive-site.xml当中的一个属性指定的 hive.metastore.warehouse.dir /user/hive/warehouse 创建数据库并指定...但是数据库的元数据信息是不可更改的,包括数据库的名称以及数据库所在的位置 修改数据库创建日期 alter database myhive2 set dbproperties('createtime...删除数据库 删除一个空数据库,如果数据库下面有数据表,那么就会报错 drop database myhive2; 强制删除数据库,包含数据库下面的表一起删除 drop database myhive...cascade; 不要执行(危险动作) 创建数据库表操作 创建数据库表语法 CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name

4.5K50

django自带cache结合redis创建永久缓存

0916自我总结 django自带cache结合redis创建永久缓存 1.redis库 1.安装redis与可视化操作工具 1.安装redis https://www.runoob.com/redis...String 字典:Hash 列表:List 无序集合:Set 有序集合:Sorted Set https://www.runoob.com/redis/redis-tutorial.html 5.特点 内存数据库...:数据存储在内存中,存取效率极高 nosql数据库:没有mysql那样的表关系,通过 类似字典方式,用 key-value 方式存储数据 高并发支持:单线程单进程并发 数据可持久化:redis中的数据可以保存在硬盘中...,支持与mysql等数据库完成数据同步 #独有特点 支持的类型也较多:相比其他内存数据库(memcache)#独有特点 2.redis库python中操作 1.安装模块 pip3 install redis...redis pool = redis.ConnectionPool(host='127.0.0.1', port=6379) r = redis.Redis(connection_pool=pool) 常用的创建

1.3K10

MySQL 创建数据库

使用 mysqladmin 创建数据库 使用普通用户,你可能需要特定的权限来创建或者删除 MySQL 数据库。...所以我们这边使用root用户登录,root用户拥有最高权限,可以使用 mysql mysqladmin 命令来创建数据库。...实例 以下命令简单的演示了创建数据库的过程,数据名为 test: [root@host]# mysqladmin -u root -p create test 以上命令执行成功后会创建 MySQL 数据库...---- 使用 Python 创建数据库 Python 使用 execute 函数来执行SQL语句达到删除或创建 MySQL 数据库。...://暂时还没有学会如何在微信平台上插入代码的方法,可能下面代码为了能够一次截屏导致可读性较差,请谅解,若有读者指出插入代码的方法就更好了 创建数据库 ?

10.1K80
领券