
数据库
文章平均质量分 69
samyang1
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
redis、memcache和mongodb比较
redis、memcahce 比较相似,但与 mongodb 完全不同,几乎没有可比性。 总的来说 redis/memcache 是基于内存的,讲究的是性能,多用作缓存层,比如说存放session。而 mongodb 是面向文档的,存储的是类似JSON的非结构化数据,查询起来非常方便,开发效率高,比较类似传统SQL关系型数据库。普遍认为redis性能明显好于MemoryCa转载 2017-11-29 16:36:59 · 206 阅读 · 0 评论 -
MyISAM和InnoDB对比
一、关于count(*)知识点:MyISAM会直接存储总行数,InnoDB则不会,需要按行扫描。潜台词是,对于select count(*) from t; 如果数据量大,MyISAM会瞬间返回,而InnoDB则会一行行扫描。实践:数据量大的表,InnoDB不要轻易select count(*),性能消耗极大。常见坑:只有查询全表的总行数,MyISAM才会直接返回结果,当加了where条件...转载 2018-08-09 10:31:52 · 445 阅读 · 0 评论 -
分库分表需要考虑的问题及方案
分库分表的基本思想Sharding的基本思想就要把一个数据库切分成多个部分放到不同的数据库(server)上,从而缓解单一数据库的性能问题。不太严格的讲,对于海量数据的数据库,如果是因为表多而数据多,这时候适合使用垂直切分,即把关系紧密(比如同一模块)的表切分出来放在一个server上。如果表并不多,但每张表的数据非常多,这时候适合水平切分,即把表的数据按某种规则(比如按ID散列)切分到多个数据库...转载 2018-05-30 23:23:11 · 1152 阅读 · 0 评论 -
mysql数据库分表后怎么进行分页查询?Mysql分库分表方案?
1.如果只是为了分页,可以考虑这种分表,就是表的id是范围性的,且id是连续的,比如第一张表id是1到10万,第二张是10万到20万,这样分页应该没什么问题。2.如果是其他的分表方式,建议用sphinx先建索引,然后查询分页,我们公司现在就是这样干的。Mysql分库分表方案1.为什么要分表:当一张表的数据达到几千万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了。分表的目...转载 2018-05-29 20:07:06 · 9348 阅读 · 2 评论 -
sql语句优化建议
1. 不论一个sql中涉及到多少表,每次都用两个表(结果集)操作,得到新的结果后,再和下一个表(结果集)操作。2. 避免在select f1,(select f2 from tableB ).... from tableA 这样得到字段列。直接用tableA和tableB关联得到A.f1,B.f2就可以了。3.避免隐含的类型转换 如:select id from employee where em...原创 2018-06-04 15:49:39 · 474 阅读 · 1 评论 -
MySQL分库分表总结
单库单表 :单库单表是最常见的数据库设计,例如,有一张用户(user)表放在数据库db中,所有的用户都可以在db库中的user表中查到。 单库多表 :随着用户数量的增加,user表的数据量会越来越大,当数据量达到一定程度的时候对user表的查询会渐渐的变慢,从而影响整个DB的性能。如果使用mysql, 还有一个更严重的问题是,当需要添加一列的时候,mysql会锁表,期间所有的读写操作只能等待。 可...转载 2018-05-21 12:58:04 · 202 阅读 · 0 评论 -
MySQL的索引的实现方式以及Btree索引和hash索引的区别
Hash 索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-Tree 索引。可 能很多人又有疑问了,既然 Hash 索引的效率要比 B-Tree 高很多,为什么大家不都用 Hash 索引而还要使用 B-Tree 索引呢?任何事物都是有两面性的,Hash原创 2017-12-10 14:23:05 · 680 阅读 · 0 评论 -
Mysql修改密码
以windows为例:1、用mysqladmin格式:mysqladmin -u 用户名 -p 旧密码 password 新密码 例子:mysqladmin -u root -p 123456 password 1232、set password命令首先登录MySQL。 格式:mysql> set password for 用户名@localhost = passwor原创 2017-12-07 09:44:01 · 201 阅读 · 0 评论 -
redis持久化
redis提供了不同幅度的持久化选项:RDB持久化对你的数据集基于特定的时间间隔执行时间点快照。AOF持久化在每次服务器收到写操作时记入日志,当服务器重启时,这些写操作会再次执行,重构出原始的数据集。命令以只能追加的方式记入日志,记入的格式与redis协议本身相同。当日志太大时,redis会重写日志。如果你想让你的数据只在服务器运行的时候存在,可以按照你的要求完全关闭持久化功能。可以在同一转载 2017-12-12 18:32:44 · 236 阅读 · 0 评论 -
Redis集群方案
一、为什么集群?通常,为了提高网站响应速度,总是把热点数据保存在内存中而不是直接从后端数据库中读取。Redis是一个很好的Cache工具。大型网站应用,热点数据量往往巨大,几十G上百G是很正常的事儿,在这种情况下,如何正确架构Redis呢?首先,无论我们是使用自己的物理主机,还是使用云服务主机,内存资源往往是有限制的,scale up不是一个好办法,我们需要scale out横向可伸缩转载 2017-12-20 13:03:15 · 142 阅读 · 0 评论 -
数据库中间件
这里主要介绍互联网行业内有关数据库的相关中间件。数据库相关平台主要解决以下三个方面的问题:为海量前台数据提供高性能、大容量、高可用性的访问为数据变更的消费提供准实时的保障高效的异地数据同步应用层通过分表分库中间件访问数据库,包括读操作(Select)和写操作(update, insert和delete等,DDL, DCL)。写操作会在数据库上产生变更记录,MySQL的变更记录叫binl转载 2017-12-11 23:52:49 · 10973 阅读 · 0 评论 -
java.sql.SQLException: Value '0000-00-00 ' can not be represented as java.sql.Timest
在使用MySql 时, 数据库中的字段类型是timestamp的,默认为0000-00-00, 会发生异常:java.sql.SQLException: Value '0000-00-00 ' can not be represented as java.sql.Timestamp。原因:“0000-00-00 00:00:00”在mysql中是作为一个特殊值存原创 2017-12-11 17:43:10 · 516 阅读 · 0 评论 -
MySql存储引擎比较
什么是存储引擎?关系数据库表是用于存储和组织信息的数据结构,可以将表理解为由行和列组成的表格,类似于Excel的电子表格的形式。有的表简单,有的表复杂,有的表根本不用来存储任何长期的数据,有的表读取时非常快,但是插入数据时去很差;而我们在实际开发过程中,就可能需要各种各样的表,不同的表,就意味着存储不同类型的数据,数据的处理上也会存在着差异,那么。对于MySQL来说,它提供了很多种类型的存储引转载 2017-12-10 21:03:57 · 124 阅读 · 0 评论 -
索引概念
1、什么是索引?索引用来快速地寻找那些具有特定值的记录。索引是加速查询主要手段,索引是快速定位数据的技术。索引是一种特殊的文件(innoDB(事务性数据库的首选引擎)数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。索引:一种特殊的目录,聚集索引和非聚集索引聚集索引:如同字典中按照字母查询,我们把这种正文内容本身就是一种按照一定规则排列原创 2017-12-10 14:34:33 · 4401 阅读 · 0 评论 -
Mysql全文索引
前言:本文简单讲述全文索引的应用实例,MYSQL演示版本5.5.24。Q:全文索引适用于什么场合?A:全文索引是目前实现大数据搜索的关键技术。一、设置条件1.表的存储引擎是MyISAM,默认存储引擎InnoDB不支持全文索引(新版本MYSQL5.6的InnoDB支持全文索引)2.字段类型:char、varchar和text二、配置my.ini配置文件中添加# MySQL全文索引...原创 2018-08-09 11:30:18 · 454 阅读 · 1 评论