
数据库专栏
Mysql+Redis+MongoDB+Elistic search等数据库的使用和疑难杂症分析
高司机
公众号:游戏开发司机 资深游戏服务器,曾就职IBM LSF,淘米网,网易雷火
-
原创 MySQL -通过调整索引提升查询效率
我们遇到的最容易引起困惑的问题就是索引列的顺序。正确的顺序依赖于使用该索引的查询,并且同时需要考虑如何更好地满足排序和分组的需要(顺便说明,本节内容适用于B-Tree索引;哈希或者其他...2020-12-15 07:26:5910
0
-
原创 MYSQL增量备份和全量备份脚本
1.MySQLdump增量备份假定星期日下午1点执行全量备份,适用于MyISAM存储引擎。[root@test-huanqiu ~]# MySQLdump --lock-all-tables --flush-logs --master-data=2 -u root -p test > backup_sunday_1_PM.sql对于InnoDB将--lock-all-tables替换...2020-11-20 09:46:1364
0
-
转载 Redis你不得不探索的11个问题
1. 说说Redis基本数据类型有哪些吧 字符串:redis没有直接使用C语言传统的字符串表示,而是自己实现的叫做简单动态字符串SDS的抽象类型。C语言的字符串不记录自身的长度信息,而SDS则保存了长度信息,这样将获取字符串长度的时间由O(N)降低到了O(1),同时可以避免缓冲区溢出和减少修改字符串长度时所需的内存重分配次数。 链表linkedlist:redis链表是一个双向无环链表结构,很多发布订阅、慢查询、监视器功能都是使用到了链表来实现,每个链表的节点由一个listNode结构...2020-10-28 12:03:2380
0
-
原创 Mysql服务器线上配置主从同步
我们一般在线上搭建MYSQL都会部署一套主从同步方案: 当master(主)库的数据发生变化的时候,变化会实时的同步到slave(从)库。主从复制的过程:Mysql同步过程的第一部分就是master服务器记录二进制日志。在每个事务更新数据完成之前,master在二日志记录这些改变。MySQL将事务串行的写入二进制日志,即使事务中的语句都是交叉执行的。在事件写入二进制日志完成后,master通知存储引擎提交事务。 第二部分就是slave将master的binary lo...2020-07-17 15:47:04125
0
-
原创 windows安装 MySQL5.7服务端
1,安装https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.30-winx64.zip mysql安装包。2. 自己配置my.ini[client]port=3306[mysql]default-character-set=utf8[mysqld]character-set-server=utf8port=330...2020-05-08 18:10:43139
0
-
转载 memcache的使用入门C++代码
下载源码编译,memcached就是生成的主程序,启动可指定端口,memcached作为server端,依然是我们熟悉的cs模式,使用两个client一个setkey,一个getkey一百万个做测试。./memcached -d -m 300 -p 11211 -u root -c 4096#include "../libmemcached-1.0.7/libmemcached/mem...2019-01-24 17:32:06395
0
-
原创 MongoDB修改器使用
欢迎关注我的新微信公众号 ipgame,有什么问题可以提供交流的平台,欢迎大家讨论。对于文档的更新除替换外,针对某个或多个文档只需要部分更新可使用原子的更新修改器,能够高效的进行文档更新。更新修改器是中特殊的键,用来指定复杂的操作,比如增加、删除或者调整键,还可能是操作数组或者内嵌文档。1.$inc对指定的键做加法操作,如果指定的关键不存在,则新创建这个键,并且赋值为$inc指定的...2018-11-20 14:35:21389
0
-
转载 Elasticsearch集群节点配置详解
注意:如果是在局域网中运行elasticsearch集群也是很简单的,只要cluster.name设置一致,并且机器在同一网段下,启动的es会自动发现对方,组成集群。三、配置浅涉elasticsearch的config文件夹里面有两个配置文件:elasticsearch.yml和logging.yml,第一个是es的基本配置文件,第二个是日志配置文件,es也是使用log4j来记录日志的,...2018-11-14 15:29:321926
0
-
原创 Elasticsearchan相关插件和工具安装
1、下载elasticsearch-head的源码包地址:https://github.com/mobz/elasticsearch-head/releases2、安装node运行环境地址:https://nodejs.org/en/download/3、安装完node之后编译elasticsearch-head执行npm install -g grunt-cli编译源码执...2018-11-14 14:23:44177
0
-
原创 elasticsearch的Linux下安装报错问题解决
1.启动报错如下:vim /etc/security/limits.conf然后修改如下* soft nofile 65536* hard nofile 65536sudo vi /etc/pam.d/common-session添加 session required pam_limits.sosudo vi /etc/pam.d/common-session-no...2018-11-13 17:37:30229
0
-
原创 MongoDB数据库查询性能提高40倍
MongoDB数据库查询性能提高40倍的经历分享转载更新时间:2017年02月13日 14:41:14 作者:mydeman 我要评论大家在使用 MongoDB 的时候有没有碰到过性能问题呢?下面这篇文章主要给大家分享了MongoDB数据库查询性能提高40倍的经历,需要的朋友可以参考借鉴,下面来一起看看吧。前言数据库性能对软件整体性能有着至关重要的影响,本文给大家分享...2018-07-30 14:47:416429
2
-
原创 最近准备学习下mongodb(一 Windows安装篇)
1 先安装mongodb 的windows版本,Linux的我后期会加上的。https://www.mongodb.com/dr/fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-ssl-4.0.0-signed.msi/download2.安装php扩展插件:https://pecl.php.net/package/mong...2018-07-24 15:10:28139
0
-
原创 redis排行榜之日排行周排行设计
排行榜功能是一个很普遍的需求。使用 Redis 中有序集合的特性来实现排行榜是又好又快的选择。一般排行榜都是有实效性的,比如“用户积分榜”。如果没有实效性一直按照总榜来排,可能榜首总是几个老用户,对于新用户来说,那真是太令人沮丧了。首先,来个“今日积分榜”吧,排序规则是今日用户新增积分从多到少。那么用户增加积分时,都操作一下记录当天积分增加的有序集合。 假设今天是 2015 年 04 ...2018-07-20 13:34:333459
0
-
原创 mysql导入source数据库sql的C++实现和封装
不需要mysql客户端,在代码里实现source功能的C++实现和封装2015-02-05 08:48:551863
0
-
原创 关于mysql的cpu占用高的问题
现在游戏开了泰服 ,发现泰服的cpu占用率总是比繁体或者大陆的高很多,每次都是占用了300%多top - 15:34:06 up 222 days, 2:51, 2 users, load average: 0.75, 0.73, 0.66Tasks: 215 total, 1 running, 214 sleeping, 0 stopped, 0 zombieCpu2015-01-12 17:06:357476
0
-
原创 关于mysql的change和modify
前端时间要写个游戏里的邮件系统,定义了一个如下的表结构:CREATE TABLE `sysmail` ( `mailid` int(20) NOT NULL AUTO_INCREMENT, `sendtime` int(11) NOT NULL DEFAULT '0', `mailtitle` varchar(512) COLLATE utf8_bin NOT NULL DEFAU2015-01-04 20:55:3412255
0
-
原创 关于mysql的一些时间格式和字符的问题
最近在做一些游戏的数据分析,需要对大量数据的用户行为进行处理存库,其中有个数据库字段是datetime类型的,这个以前都没用过,我以前都喜欢用int来存放时间戳,但这次这样用,我就得在数据库中转换了,char buf_update[81920] = {0};int length = 0;sprintf(buf_update, "update lost_player set accoun2014-03-20 18:17:315814
0
-
转载 mysql数据库表的导入导出
MySQL写入数据通常用insert语句,如 复制代码 代码如下:insert into person values(张三,20),(李四,21),(王五,70)…; 但有时为了更快速地插入大批量数据或交换数据,需要从文本中导入数据或导出数据到文本。 一、 建立测试表,准备数据 首先建立一个用于测试的表示学生信息的表,字段有id、姓名、年龄、城市、薪水。Id和姓名不 能为空2013-01-25 00:47:565842
0
-
原创 数据库的查询优化建议整理
从大多数数据库应用系统的实例来看,查询*作在各种数据库*作中所占据的比重最大,而查询*作所基于的SELECT语句在SQL语句中又是代价最大的语句。查询语句(SELECT)的优化建议 (1)、合理使用索引:where子句中变量顺序应与索引字键顺序相同。 如:create index test_idx on test(hm, rq, xx) 索引字键顺序:首先是号码hm,2012-11-22 16:50:49723
0
-
转载 给数据减肥 让MySQL数据库跑的更快
在数据库优化工作中,使数据尽可能的小,使表在硬盘上占据的空间尽可能的小,这是最常用、也是最有效的手段之一。因为缩小数据,相对来说可以提高硬盘的读写速度,并且在查询过程中小表的内容处理时所占用的系统资源比较少。同理,如果在比较小的列上设置索引的话,其索引所占用的资源也会比较少。那么数据库管理员该如何给自己的数据减肥呢?对此笔者有如下几个建议。 建议一:空值并不一定不占用空间 在这2012-10-18 14:34:375751
0
-
转载 mysql存储过程
存储过程如同一门程序设计语言,同样包含了数据类型、流程控制、输入和输出和它自己的函数库。--------------------基本语法--------------------一.创建存储过程create procedure sp_name()begin.........end二.调用存储过程1.基本语法:call sp_name()注意:存储过程名称后面必2012-10-08 19:59:526371
0
-
转载 Mysql索引优化实例讲解
MYSQL描述:一个文章库,里面有两个表:category和article。category里面有10条分类数据。article里面有20万条。article里面有一个"article_category"字段是与category里的"category_id"字段相对应的。article表里面已经把 article_category字义为了索引。数据库大小为1.3G。问题描述:执行一2012-09-18 13:55:235846
0