分类目录归档:数据库db

LSM VS B-Tree

LSM树整个结构不是有序的,所以不知道数据在什么地方,需要从每个小的有序结构中做二分查询,找到了就返回,找不到就继续找下一个有序结构。所以说LSM牺牲了读性能。但是LSM之所以能够作为大规模数据存储系统在于读性能可以通过其他方式来提高,比如读取性能更多的依赖于内存/缓存命中率而不是磁盘读取。 阅读全文

从PHP客户端看MongoDB通信协议

MongoDB 的 PHP 客户端有一个 MongoCursor 类,它是用于获取一次查询结果集的句柄(或者叫游标),这个简单的取数据操作,内部实现其实不是那么简单。本文就通过对 MongoCursor 类一些操作进行分析,向大家揭开 MongoDB 客户端服务器通信的一些内部细节。 阅读全文

MongoDB导出/导入指定条件数据

–export
~/mongodb2.4.6/bin/mongoexport -h 127.0.0.1:27017 -d intelligence -c intelligence -q ‘{“type”:3,”source”:{$in:[208,210]}}’ -o /home/map/backup/tmp/intelligence_208_210.data
–import
~/mongodb2.4.6/bin/mongoimport -h 127.0.0.1:27017 -d intelligence_test -c intelligence /home/map/backup/tmp/intelligence_208_210.data

MongoDB运行状态、性能监控,分析

mongo stat
 这篇文章的目的是让你知道怎么了解你正在运行的Mongdb是否健康。

mongostat详解

mongostat是mongdb自带的状态检测工具,在命令行下使用。它会间隔固定时间获取mongodb的当前运行状态,并输出。如果你发现数据库突然变慢或者有其他问题的话,你第一手的操作就考虑采用mongostat来查看mongo的状态。 阅读全文

MongoDB导出/导入指定条件数据

–export ~/mongodb2.4.6/bin/mongoexport -h 127.0.0.1:27017  -d intelligence -c intelligence -q ‘{“type”:3,”source”:{$in:[208,210]}}’ -o /home/map/backup/tmp/intelligence_208_210.data –import ~/mongodb2.4.6/bin/mongoimport -h 127.0.0.1:27017 -d intelligence_test -c intelligence /home/map/backup/tmp/intelligence_208_210.data

Centos下安装php PDO PostgreSQL扩展

1.安装 wget http://pecl.php.net/get/PDO_PGSQL-1.0.2.tgz tar -zxvf PDO_PGSQL-1.0.2.tgz cd PDO_PGSQL-1.0.2 ~/php/bin/phpize export PGSQL_INCLUDE=/home/users/yanjingang/postgresql/include export PGSQL_LIBDIR=/home/users/yanjingang/postgresql/lib ./configure –with-php-config=/home/users/yanjingang/php/bin/php-config –with-pdo-pgsql=/home/users/yanjingang/postgresql/ –with-pgsql=/home/users/yanjingang/postgresql/ make && make install 2.配置 vim php/etc/ext/pdo_pgsql.ini   添加 [pdo_pgsql] extension=”pdo_pgsql.so” ~/php/sbin/php-fpm restart ~/webserver/bin/lighttpd.sh restart 3.done

深入浅出Symfony2 – 结合MongoDB开发LBS应用

随着近几年各类移动终端的迅速普及,基于地理位置的服务(LBS)和相关应用也越来越多,而支撑这些应用的最基础技术之一,就是基于地理位置信息的处理。我所在的项目也正从事相关系统的开发,我们使用的是Symfony2+Doctrine2 ODM+MongoDB的组合。 阅读全文

MySQL数据库准入规范

当前版本

  • 当前版本: 0.6
  • MySQL数据库准入规范由DBA起草,经rd\op\tc评审通过;

目录

MySQL数据库准入规范
当前版本
目录
1. MySQL 准入的背景和目的
2. MySQL 数据库准入项
2.1 数据库设计
2.1.1 数据库设计
2.1.2 表结构设计
2.1.3 索引设计
2.1.4 分区表
2.1.5 中间表和备份表
2.1.6 分库分表
2.1.7 数据库账号
2.1.8 字符集
2.1.9 数据库连接
2.1.10 其他
2.2 SQL编写
2.2.1 SELECT语句
2.2.2 DML语句
2.2.3 多表联合查询
2.2.4 事务
2.2.5 表扫描方式
2.2.6 排序和分组
2.2.7 数据导出导入
2.2.8 cache的使用
2.2.9 其他
2.3 MySQL 服务器及实例
2.3.1 硬件及网络
2.3.1.1 OS内核
2.3.1.2 磁盘相关
2.3.1.3 机房及网络
2.3.2 数据库实例
2.3.2.1 MySQL 版本
2.3.2.2 MySQL 目录
2.3.2.3 MySQL 参数
2.3.2.4 MySQL 架构
2.3.2.5 MySQL 日志
2.3.2.6 MySQL 备份
2.4 中间层DBProxy
2.4.1 服务器配置和命名
2.4.2 机房和网段
2.4.3 DBProxy日志
2.4.4 访问账号和权限
3. 上线及监控
3.1 上线时间窗口
3.2 上线单内容
3.3 MySQL 和DBProxy监控
3.4 产品线SLA
3.5 其他
4. MySQL 风险点及BUG
4.1 同步中断
4.2 主从数据不一致
4.3 数据库crash 阅读全文

MySql登陆密码忘记怎么办?

可以进行如下的步骤重新设置MySQL的root密码:

1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库。因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的状态下,其他的用户也可以任意地登录和修改MySQL的信息。可以采用将MySQL对外的端口封闭,并且停止Apache以及所有的用户进程的方法实现服务器的准安全状态。
2.修改MySQL的登录设置:
# vi /etc/my.cnf
在[mysqld]的段中加上一句:skip-grant-tables
例如:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
skip-name-resolve
skip-grant-tables
保存并且退出vi。
3.重新启动mysqld
# /etc/init.d/mysqld restart
Stopping MySQL: [ OK ]
Starting MySQL: [ OK ]
4.登录并修改MySQL的root密码
# /usr/bin/mysql
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 to server version: 3.23.56 Type ‘help;’ or ‘\h’ for help.Type ‘\c’ to clear the buffer.
mysql> USE mysql ;
Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A
Database changed
mysql> UPDATE user SET Password = password ( ‘new-password’ ) WHERE User = ‘root’ ;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 2 Changed: 0 Warnings: 0
mysql> flush privileges ;
Query OK, 0 rows affected (0.01 sec)
mysql> quit
Bye
5.将MySQL的登录设置修改回来
# vi /etc/my.cnf
将刚才在[mysqld]的段中加上的skip-grant-tables删除,保存并且退出vi。
6.重新启动mysqld
# /etc/init.d/mysqld restart
Stopping MySQL: [ OK ]
Starting MySQL: [ OK ]