- 浏览: 93017 次
- 性别:
- 来自: 北京
最新评论
-
xiaoyi829:
应该可以grzrt 写道分区表partition,能用hand ...
初识mysql插件之HandlerSocket -
grzrt:
分区表partition,能用handlersocket查询指 ...
初识mysql插件之HandlerSocket
文章列表
给开发者看的关系型数据库设计
- 博客分类:
- mysql
目录
一 Codd的RDBMS12法则——RDBMS的起源
二 关系型数据库设计阶段
三 设计原则
四 命名规则
数据库设计,一个软件项目成功的基石。很多从业人员都认为,数据库设计其实不那么重要。现实中的情景也相当雷同,开发人员的数量是数据库设计人员的数倍。多数人使用数据库中的一部分,所以也会把数据库设计想的如此简单。其实不然,数据库设计也是门学问。
从笔者的经历看来,笔者更赞成在项目早期由开发者进行数据库设计(后期调优需要DBA)。根据笔者的项目经验,一个精通OOP和ORM的开发者,设计的数据库往往更为合理,更能适应需求的变化,如果追其原因,笔者个人猜测是因为数据库的规范化 ...
redis学习笔记之虚拟内存
- 博客分类:
- redis
redis学习笔记之虚拟内存
首先说明下redis的虚拟内存与os的虚拟内存不是一码事,但是思路和目的都是相同的。就是暂时把不经常访问的数据从内存交换到磁盘中,从而腾出宝贵的 内存空间用于其他需要访问的数据。尤其是对于redis这样的内存数据库,内存总是不够用的。除了可以将数据分割到多个redis server外。另外的能够提高数据库容量的办法就是使用vm把那些不经常访问的数据交换的磁盘上。如果我们的存储的数据总是有少部分数据被经常访问,大 部分数据很少被访问,对于网站来说确实总是只有少量用户经常活跃。当少量数据被经常访问时,使用vm不但能提高单台redis server数据库的 ...
redis学习笔记之pipeline
- 博客分类:
- redis
redis学习笔记之pipeline
redis是一个cs模式的tcp server,使用和http类似的请求响应协议。一个client可以通过一个socket连接发起多个请求命令。每个请求命令发出后client通常 会阻塞并等待redis服务处理,redis处理完后请求命令后会将结果 ...
redis学习笔记之事务
- 博客分类:
- redis
redis学习笔记之事务
redis对事务的支持目前还比较简单。redis只能保证一个client发起的事务中的命令可以连续的执行,而中间不会插入其他client的命令。 由于redis是单线程来处理所有client的请求的所以做到这点是很容易的。一般情况下redis在接受到一个client发来的命令后会立即处理并 返回处理结果,但是当一个client在一个连接中发出multi命令有,这个连接会进入一个事务上下文,该连接后续的命令并不是立即执行,而是先放到一 个队列中。当从此连接受到exec命令后,redis会顺序的执行队列中的所有命令。并将所有命令的运行结果打包到一起返回给client.然 ...
redis学习笔记之排序
- 博客分类:
- redis
redis学习笔记之排序
在了解完各种redis类型后,这次介绍下redis排序命令.redis支持对list,set和sorted set元素的排序。排序命令是sort 完整的命令格式如下:
SORT key [BY pattern] [LIMIT start count] [GET pattern] [ASC|DESC] [ALPHA] [STORE dstkey]
下面我们一一说明各种命令选项
(1)sort key
这个是最简单的情况,没有任何选项就是简单的对集合自身元素排序并返回排序结果.下面给个例子
redis> lpush ml 12
(integer) 1
redis& ...
redis学习笔记之数据类型
- 博客分类:
- redis
redis学习笔记之数据类型
本文介绍下redis支持的各种数据类型包括string,list ,set ,sorted set 和hash
1. keys
redis本质上一个key-value db,所以我们首先来看看他的key.首先key也是字符串类型,但是key中不能包括边界字符
由于key不是binary safe的字符串,所以像"my key"和"mykey\n"这样包含空格和换行的key是不允许的
顺便说一下在redis内部并不限制使用binary字符,这是redis协议限制的。"\r\n"在协议格式中会作为特殊字 ...
redis学习笔记之环境搭建
- 博客分类:
- redis
一 redis学习笔记之环境搭建
1.简介
redis是一个开源的key-value数据库。它又经常被认为是一个数据结构服务器。因为它的value不仅包括基本的string类型还有 list,set ,sorted set和hash类型。当然这些类型的元素也都是string类型。也就 ...
l innodb_flush_log_at_trx_commit AND sync_binlog
innodb_flush_log_at_trx_commit = N:
N=0 – 每隔一秒,把事务日志缓存区的数据写到日志文件中,以及把日志文件的数据刷新到磁盘上;
N=1 – 每个事务提交时候,把事务日志从缓存区写到日 ...
l innodb_commit_concurrency
含义:同一时刻,允许多少个线程同时提交InnoDB事务,默认值为0,范围0-1000。
0 — 允许任意数量的事务在同一时间点提交;
N>0 — 允许N个事务在同一时间点提交;
注意事项:
① mysqld提供服 ...
l lower_case_table_names
Linux或类Unix平台,对文件名称大小写敏感,也即对数据库、表、存储过程等对象名称大小写敏 感,为减少开发人员的开发成本,为此推荐大家设置该参数使对象名称都自动转换成小写;
l max_connect_errors
max_connect_errors默认值为10,也即mysqld线程没重新启动过,一台物理服务器只要连接 异常中断累计超过10次,就再也无法连接上mysqld服务,为此建议大家设置此值至少大于等于10W; 若异常中断累计超过参数设置的值,有二种解决办法,执行命令:FLUSH HOSTS;或者重新启动mysqld ...
MySQL5.5数据库my.cnf配置文件模板
- 博客分类:
- mysql
引用
#*******以下开始为配置文件模板
[mysqld]
#**********************Server**************************
#******server start related
#user= #Run the mysqld server as the user having the name user_name or the numeric user ID user_id.
#bind-address= #Default 0.0.0.0;server listens on a single network soc ...
一些可以参考的文章:
http://blogs.innodb.com/wp/2011/04/get-started-with-innodb-memcached-daemon-plugin/
http://blogs.innodb.com/wp/2011/04/nosql-to-innodb-with-memcached/
http://dev.mysql.com/doc/refman/5.6/en/innodb-memcached-setup.html
http://dev.mysql.com/doc/refman/5.6/en/innodb-memcached-replication. ...
mysql5.6memcache安装
- 博客分类:
- mysql
下载地址:
http://labs.mysql.com
选择innodb-memcached
下载后得到文件:mysql-5.6.2-labs-innodb-memcached.tar.gz
解压。
安装步骤如下;
4290 shell> groupadd mysql
4291 shell> useradd -r -g mysql mysql
4292 # Beginning of source-build specific instructions
4293 shell> tar zxvf mysql-VERSION.tar.gz
4294 shell> cd my ...
MySQL常用存储引擎优化
- 博客分类:
- mysql
MySQL 提供的非常丰富的存储引擎种类供大家选择,有多种选择固然是好事,但是需要我们理解掌 握的知识也会增加很多。每一种存储引擎都有各自的特长,也都存在一定的短处。如何将各种存储引擎 在自己的应用环境中结合使用,扬长避短,也是一门不太简单的学问。本章选择最为常用的两种存储引 擎进行针对性的优化建议,希望能够对读者朋友有一定的帮助。
11.1 MyI SAM存储引擎优化
我们知道,MyISAM 存储引擎是MySQL 最为古老的存储引擎之一,也是最为流行的存储引擎之一。对 于以读请求为主的非事务系统来说,MyISAM 存储引擎由于其优异的性能表现及便利的维护管理方式无疑 是大家最优先考虑的 ...
如下图:
http://dl.iteye.com/upload/attachment/361467/e569587d-c62f-3e03-b09f-20925b13b4e7.jpg
第一步:应用程序把查询SQL语句发给服务器端执行。
我们在数据层执行SQL语句时,应用程序会连接到相应的数据库服务器,把SQL语句发送给服务器处理。
第二步:服务器解析请求的SQL语句。
1:SQL计划缓存,经常用查询分析器的朋友大概都知道这样一个事实,往往一个查询语句在第一次运行的时候需要执行特别长的时间,但是如果你马上或者在一定时间内运行同样的语句,会在很短的时间内返回查询结果。
原因:
1):服务器 ...