« 类别 db 下的文章

通过分区(Partition)提升MySQL性能

什么是数据库分区? 数据库分区是一种物理数据库设计技术,DBA和数据库建模人员对其相当熟悉。虽然分区技术可以实现很多效果,但其主要目的是为了在特定的SQL操作中减少数据读写的总量以缩减响应时间。 分区主要有两种形式://这里一定要注意行和列的概念(row是行,column是列) 1. 水平分区(Horizontal Partitioning)这种形式分区是对表的行进行分区,通过这样的方式不同分组里面的物理列分割的数据集得以组合,从而进行个体分割(单分区)或集 体分割(1个或多个分区)。所有在表中定义的列在每个数据集中都能找到,所以表的特性依然得以保持。 举个简单例子:一个包含十年发票记录的表可以被分区为十个不同的分区,每个分区包含的是其中一年的记录。(朋奕注:这里具体使用的分区方式我们后面再说,可以先说一点,一定要通过某个属性列来分割,譬如这里使用的列就是年份) 2. 垂直分区(Vertical Partitioning) 这种分区方式一般来说是通过对表的垂直划分来减少目标表的宽度,使某些特定的列 被划分到特定的分区,每个分区都包含了其中的列所对应的行。 举个简单例子:一个包含了大te…
阅读更多……

quickdb另辟捷径高效解决NOSQL数据库 数据持久性问题

目前的NOSQL主要分为两种,一种是基于内存型的如redis、memcached,一种是基于磁盘型的如Tokyo Tyrant、Tokyo Cabinet、Berkeley DB。 redis、memcached这类内存型NOSQL。虽然读写效率很高,但是有一个大问题,就是数据库持久性。memcached是一重启进程数据就没 了。redis支持两种持久化方式,一种是 Snapshotting(快照)也是默认方式,另一种是Append-only file(缩写aof)的方式。但是这两种效率都不高。 怎样才能做到高效读写,又能保持数据持久性了? quickdb 是 一款基于内存文件系统的 HashTable数据结构的Key-Value数据引擎. . 什么是内存文件系统了?就是操作系统把系统内存划出一部分当作硬盘使用。你可以像操作磁盘那样的操作内存。但效率远远比硬盘来的快多了。通俗叫做内存文件 系统,只要服务器不重起数据将一直都在。 通俗的来讲 redis、memcached是自己申请内存管理数据。当进程重启或者挂了就会丢失数据。quickdb是把实体数据储存在内存文件系统里的。当 quic…
阅读更多……

Sphinx 2.0.3 发布,全文搜索引擎

全文搜索引擎 Sphinx 发布了最新的 2.0.3 版本,可从这里 下载 。 这是自 0.9.9 版本以来的第一个稳定发行版本,包括稳定的经过大量测试的实时索引技术,64位的 MVA 支持,基于表达式的ranker、关键字字典等多项新特性,完整列表请看 changelog . Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。Sphinx特别为一些脚本语言设计搜索API接口,如PHP,Python, Perl ,Ruby等,同时为MySQL也设计了一个存储引擎插件。 更多关于 Sphinx 的详细信息,或者下载地址请点 这里
阅读更多……

MySQL高可用性大杀器之MHA

提到MySQL高可用性,很多人会想到 MySQL Cluster ,亦或者 Heartbeat + DRBD ,不过这些方案的复杂性常常让人望而却步,与之相对,利用MySQL复制实现高可用性则显得容易很多,目前大致有 MMM , PRM , MHA 等方案可供选择:MMM是最常见的方案,可惜它问题太多( What’s wrong with MMM , Problems with MMM for MySQL );至于PRM,它还是个新项目,暂时不推荐用于产品环境,不过作为 Percona 的作品,它值得期待;如此看来目前只能选MHA了,好在经过 DeNA 大规模的实践应用证明它是个靠谱的工具。 安装: 作为前提条件,应先配置 MySQL复制 ,并设置 SSH公钥免密码登录 。下面以CentOS为例来说明,最好先安装 EPEL ,不然YUM可能找不到某些软件包。 MHA由Node和Manager组成,Node运行在每一台MySQL服务器上,也就是说,不管是MySQL主服务器,还是MySQL从服务器, 都要安装Node,而Manager通常运行在独立的服务器上,但如果硬件资源吃紧,也可以用一…
阅读更多……

文本数据库 txtSQL

TXTSQL是一种文本数据库,文件存储方式类似mysql,兼容部分sql语句.PHP需4.0以上版本才能运行。 授权协议: GPL 开发语言: PHP 操作系统: 跨平台 收录时间: 2011年08月29日 软件首页 软件下载
阅读更多……

MYSQL INSERT DELAYED 详解

INSERT DELAYED 用于INSERT语句的DELAYED选项是MySQL相对于标准SQL的扩展。如果您的客户端不能等待 INSERT完成,则这个选项是非常有用的。当您使用MySQL进行日志编写时,这是非常常见的问题。您也可以定期运行SELECT和UPDATE语句, 这些语句花费的时间较长。 当一个客户端使用INSERT DELAYED时,会立刻从服务器处得到一个确定。并且行被排入队列,当表没有被其它线程使用时,此行被插入。 使用INSERT DELAYED的另一个重要的好处是,来自许多客户端的插入被集中在一起,并被编写入一个块。这比执行许多独立的插入要快很多。 使用DELAYED时有一些限制: ·INSERT DELAYED仅适用于MyISAM, MEMORY和ARCHIVE表。对于MyISAM表,如果在数据文件的中间没有空闲的块,则支持同时采用SELECT和INSERT语句。在这些情况 下,基本不需要对MyISAM使用INSERT DELAYED。 ·INSERT DELAYED应该仅用于指定值清单的INSERT语句。服务器忽略用于INSERT DELAYEDSELECT语…
阅读更多……

(转)Mysql分区表局限性总结

Mysql5.1已经发行很久了,本文根据官方文档的翻译和自己的一些测试,对Mysql分区表的局限性做了一些总结,因为个人能力以及测试环境的原因,有可能有错误的地方,还请大家看到能及时指出,当然有兴趣的朋友可以去官方网站查阅。 本文测试的版本 mysql select version(); ++ | version()  | ++ | 5.1.33-log | ++ 1 row in set (0.00 sec) 一、关于Partitioning Keys, Primary Keys, and Unique Keys的限制 在5.1中分区表对唯一约束有明确的规定,每一个唯一约束必须包含在分区表的分区键(也包括主键约束)。 这句话也许不好理解,我们做几个实验: CREATE TABLE t1 (      id INT NOT NULL, uid INT NOT NULL, PRIMARY KEY (id) ) PARTITION BY RANGE (id) (PARTITION p0 VALUES LESS THAN(5) ENGINE = INNODB, PARTITION p1 VA…
阅读更多……

MyWebSQL 2.2 发布,基于Web的MySQL管理客户端

MyWebSQL 2.2 发布了! MyWebSql 是一个PHP开发的、基于Web的MySQL数据库管理客户端,类似 phpMyAdmin,但界面更好看。除了可以操作数据库数据外,MyWebSql 还可以对包括视图、存储过程、触发器和函数在内的对象进行控制,支持数据和查询结果的导入\导出。MyWebSql 还内置一个带语法着色功能的SQL编辑器。 该版本的改进: 增加了在启动时登录到多台服务器的功能; 增加了使用“SET @命令的会话变量选项; 添加了复制不同名称的table/view/procedure/view的右键选项。 表编辑器漏洞修复: 使用set/enum字段创建多张表单会导致查询错误; 无法在SQL中为多个字段生成默认值; 新创建的数据库名出现在数据库列表的结尾,而不是正确的地方; 在某些情况下SQL导入失败; 每次拖放对象时都会询问,尽管用户设置了不再询问。 详细信息 : http://mywebsql.net/downloads/changes/version-2-2/ 官网地址: http://mywebsql.net/ 下载地址: http://mywebsql…
阅读更多……

mysql 查看binlog,slowlog,查看锁表情况,当前连接

shell mysqlbinlog log-file 使用mysqldumpslow命令获得日志中显示的查询摘要来处理慢查询日志,例如: [zzx@bj37 data]$ mysqldumpslow bj37-slow.log 一.1 获取锁等待情况 可以通过检查table_locks_waited和table_locks_immediate状态变量来分析系统上的表锁定争夺: mysql show status like Table%; +-+-+ | Variable_name | Value | +-+-+ | Table_locks_immediate | 105 | | Table_locks_waited | 3 | +-+-+ 2 rows in set (0.00 sec) 可以通过检查Innodb_row_lock状态变量来分析系统上的行锁的争夺情况: mysql show status like innodb_row_lock%; +-+-+ | Variable_name | Value | +-+-+ | Innodb_row_lock_current_waits…
阅读更多……

SQLite 入门教程(一)基本控制台(终端)命令

一、基本简介 SQLite 是一个自持的(self-contained)、无服务器的、零配置的、事务型的关系型数据库引擎。因为他很小,所以也可以作为嵌入式数据库内建在你的应 用程序中。SQLite 被应用在 Solaris 10操作系统、Mac OS 操作系统、iPhone 和 Skype 中。QT4 、Python 、 PHP 都默认支持 SQLite ,Firefox Amarok 等流行的应用程序在内部也使用了 SQLite. SQLite   数据库引擎实现了主要的 SQL-92 标准,引擎本身只有一个文件,大小不到 300k ,但是并不作为一个独立的进程运行,而是动态或者静态的链接到其他应用程序中。它生成的数据库文件是一个普通的磁盘文件,可以放置在任何目录下。 SQLite 本身是 C 语言开发的,开源也跨平台,并且被所有的主流编程语言支持。 相关资源 sqlite.org wikipedia.org 二、下载安装 Windows 版的下载地址为: sqlite-shell-win32-x86-3070701.zip 我们这里下载的是命令行版本,所以是一个可执行文件,还有一个…
阅读更多……
浙ICP备08010023号