
数据库
simonGeek
Geek技术 Share想法 Update思想 Download成果
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
分布式小白对Memcached和Redis的比较
一直听说分布式存储、分布式缓存等关键字,但是一直处在局外观望。但是对于现在的海量数据时代,分布式缓存和分布式存储注定会需求越来越大,技术也更新也会越来越快,为了适应当前互联网大数据的时代。 今天小编就分布式缓存的两个架构:memcached和redis进行一些粗浅的比较,由于刚刚接触,所以如果有不对或者不恰当的地方,还请各位看官批评指正。 第一部分,对于Memcached和Redis简要介绍。原创 2015-03-27 21:42:06 · 1261 阅读 · 0 评论 -
一次Mysql死锁排查过程的全纪录
前言之前接触到的数据库死锁,都是批量更新时加锁顺序不一致而导致的死锁,但是上周却遇到了一个很难理解的死锁。借着这个机会又重新学习了一下mysql的死锁知识以及常见的死锁场景。在多方调研以及和同事们的讨论下终于发现了这个死锁问题的成因,收获颇多。虽然是后端程序员,我们不需要像DBA一样深入地去分析与锁相关的源码,但是如果我们能够掌握基本的死锁排查方法,对我们的日常开发还是大有裨益的。PS:本文不会介...转载 2018-04-03 13:37:48 · 3565 阅读 · 0 评论 -
SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded 解决思路
SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded; try restarting transactionMySQL有时会报这种延时的异常。本篇博文针对MySQL这个异常提供一个分析思路。原创 2017-11-16 11:05:16 · 10814 阅读 · 0 评论 -
laravel如何输出最后一条执行的SQL
在使用Laravel框架的时候,调试的时候,需要将查询的SQL输出校验,这是需要将SQL打印出来,\DB::connection()->enableQueryLog(); // 开启查询日志\DB::table('xxx'); // 要查看的sql$queries = \DB::getQueryLog(); // 获取查询日志print_r($queries); // 即可查看执行原创 2017-02-14 20:59:45 · 25453 阅读 · 0 评论 -
乐观锁和悲观锁简介
引言为什么需要锁(并发控制)? 在多用户环境中,在同一时间可能会有多个用户更新相同的记录,这会产生冲突。这就是著名的并发性问题。典型的冲突有:丢失更新:一个事务的更新覆盖了其它事务的更新结果,就是所谓的更新丢失。例如:用户A把值从6改为2,用户B把值从2改为6,则用户A丢失了他的更新。脏读:当一个事务读取其它完成一半事务的记录时,就会发生脏读取转载 2017-02-14 20:43:49 · 2161 阅读 · 0 评论 -
表复制 SELECT INTO 和 INSERT INTO SELECT
Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少。但我们在开发、测试过程中,经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用SELECT INTO 和 I转载 2017-02-10 22:45:19 · 795 阅读 · 0 评论 -
数据库建立索引的原则
索引查询是数据库中重要的记录查询方法,要不要进入索引以及在那些字段上建立索引都要和实际数据库系统的查询要求结合来考虑,下面给出实际中的一些通用的原则:1. 在经常用作过滤器的字段上建立索引; 2. 在SQL语句中经常进行GROUP BY、ORDER BY的字段上建立索引;3. 在不同值较少的字段上不必要建立索引,如性别字段;4. 对于经常存取的列避免建立索引;转载 2016-11-25 18:17:19 · 1208 阅读 · 0 评论 -
即使删了全库,保证半小时恢复
即使删了全库,保证半小时恢复近期一篇《就这样把根目录删了!!!》引发了广泛的讨论,《如何防止根目录被删》汇总了7种防删方案。还有同学评论中反馈“不小心把库删了”,如何快速恢复删掉的数据库,是今天要讨论的话题。 【高可用数据库架构】一般来说数据库集群会是主从架构:或者主主架构: 如果此时主库宕机,可以:(1)一个从库顶上,重建集群(2)流量转载 2016-11-24 09:57:51 · 549 阅读 · 0 评论 -
11 个重要的数据库设计规则
英文原文: 11 Important Database designing rules 简介 在您开始阅读这篇文章之前,我得明确地告诉您,我并不是一个数据库设计领域的大师。以下列出的 11 点是我对自己在平时项目实践和阅读中学习到的经验总结出来的个人见解。我个人认为它们对我的数据库设计提供了很大的帮助。实属一家之言,欢迎拍砖 : ) 我之所以写下这篇这么完转载 2016-11-21 11:33:33 · 828 阅读 · 0 评论 -
group_concat()函数的应用
group_concat(),手册上说明:该函数返回带有来自一个组的连接的非NULL值的字符串结果。看到这个手册解释,其实很多人是懵逼的,不知道该如何使用,以及使用的效果。通俗点理解,其实是这样的:group_concat()会计算哪些行属于同一组,将属于同一组的列显示出来。要返回哪些列,由函数参数(就是字段名)决定。分组必须有个标准,就是根据group by指定的列进行分组。原创 2016-10-11 10:29:23 · 1347 阅读 · 0 评论 -
Redis持久化(persistence)介绍
这篇文章提供了 Redis 持久化的技术性描述转载 2016-07-07 11:28:25 · 873 阅读 · 0 评论 -
优化系列 | DELETE子查询改写优化
0、导读有个采用子查询的DELETE执行得非常慢,改写成SELECT后执行却很快,最后把这个子查询DELETE改写成JOIN优化过程1、问题描述朋友遇到一个怪事,一个用子查询的DELETE,执行效率非常低。把DELETE改成SELECT后执行起来却很快,百思不得其解。下面就是这个用了子查询的DELETE了:[yejr@imysql.com]myd转载 2016-07-06 10:37:25 · 1881 阅读 · 0 评论 -
【技术晨读】EAV or JSON
MongoDB 之类的 NoSQL 之所以流行,很大程度上取决于相对自由的 schema 设计,不管数据量多大,可以随时在线上环境添加新字段来保存新数据,而这种能力恰恰是传统的关系数据库所欠缺的,不过别担心,传统关系数据库有自己的应对之道。我们今天就讨论一下其中最具代表性的两种方法,看看孰优孰劣。转载 2016-07-11 10:21:35 · 1315 阅读 · 0 评论 -
SQLSTATE[23000]主键重复
工程环境中,会遇到插入数据库失败的情况,经过分析解决问题,发现是主键重复的问题。数据库抛出23000的状态码。在本篇文章中,详细分析遇到这种问题场景,问题产生的原因,解决问题的思路。原创 2016-06-24 15:53:44 · 19841 阅读 · 0 评论 -
浅析Redis复制
摘要 早期的 RDBMS 被设计为运行在单个CPU之上,读写操作都由经单个数据库实例完成,复制技术使得数据库的读写操作可以分散在运行于不同CPU之上的独立服务器上.Redis作为一个开源的、优秀的key-value缓存及持久化存储解决方案,也提供了复制功能,本文主要介绍Redis的复制原理及特性。 Redis复制概论 数据库复制指的是发生在不同数据库实例之间,单向的信息传播的行为,通常由被复制转载 2016-05-31 10:16:36 · 449 阅读 · 0 评论 -
数据库中自增量字段和Guid字段的比较
据库中使用自增量字段与Guid字段主键的性能对比1.概述: 在我们的数据库设计中,数据库的主键是必不可少的,主键的设计对整个数据库的设计影响很大.我就对自动增量字段与Guid字段的性能作一下对比,欢迎大家讨论.2.简介: 1.自增量字段 自增量字段每次都会按顺序递增,可以保证在一个表里的主键不重复。除非超出了自增字段类型的最大值并从头递增,但这转载 2015-04-26 13:19:56 · 3947 阅读 · 0 评论 -
JAVA实现随机无重复数字功能
JAVA实现随机无重复数字功能 本文给大家介绍如何在JAVA中实现随机无重复数字的功能。如果您是初学者的话,有必要看一看这篇文章,因为这个功能一般会在面试中遇到。包括我本人在招聘人员的时候也喜欢拿这个问题去问别人,主要看一看考虑问题的模式和基础知识如何。 希望这篇文章能给初次接触的朋友一些帮助,因为我曾接触过一些朋友要么写不出来,要么使用很平铺的思维方式去实现它。 一般有点开发经验转载 2015-04-02 22:54:53 · 655 阅读 · 0 评论 -
MySQL中修改root密码的方式
整理了以下四种在MySQL中修改root密码的方法,可能对大家有所帮助!方法1: 用SET PASSWORD命令 mysql -u root mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');方法2:用mysqladmin mysqladmin -u root passwo转载 2015-03-22 15:36:36 · 1103 阅读 · 0 评论 -
MySQL EXPLAIN详解
MySQL EXPLAIN命令是查询性能优化不可缺少的一部分,该文主要讲解explain命令的使用及相关参数说明。EXPLAIN Output Columns列名 说明 id 执行编号,标识select所属的行。如果在语句中没子查询或关联查询,只有唯一的select,每行都将显示1。否则,内层的select语句一般会顺序编号,对应于其在原始语句中的位置 select_t...转载 2019-05-29 18:05:19 · 321 阅读 · 0 评论