首页 > Database > 列表

mysql表分区


表分区优点

  • 和单个磁盘或者文件系统相比,可以存储更多数据
  • 优化查询,在Where子句中包含分区条件时(不包含分区键,将扫描所有分区),可以只扫描必要的一个或者多个分区来提高查询效率;
  • 对于已经过期的数据,可以通过删除与这些数据有关的分区来快速删除数据
  • 跨多个磁盘来分散数据查询,以获得更大的查询吞吐

表分区限制

  • 最大分区数目不能超过1024
  • 如果含有唯一索引或者主键,则分区列必须包含在所有的唯一索引或者主键在内
  • 不支持外键
  • 不支持全文索引(fulltext)

阅读全文 »


mysql定时备份与恢复


备份脚本

cd /myData/mysqlbackup
vim backup.sh

内容如下:
--------------------------
#!/bin/bash
#要备份的数据库名称
db_name='db1'
#备份文件存放目录
backup_dir='/myData/mysqlbackup/'
current_time=$(date +'%Y-%m-%d_%H%M%S')
filepath=$backup_dir$current_time'.sql.gz'
#gzip 压缩,压缩前800k,压缩后200k
echo '开始导出数据库...'
#-F刷新日志,-R备份存储过程
mysqldump --defaults-extra-file=/myData/mysqlbackup/login_info.cnf -F -R  $db_name | gzip > $filepath
echo '导出成功,文件名为: '$filepath
--------------------------
vim login_info.cnf
内容如下:
--------------------------
[mysqldump]
#此处指定max_allowed_packet,需注释掉/etc/my.cnf中的max_allowed_packet
max_allowed_packet=200M 
host=127.0.0.1
user=root
password='qif'
--------------------------

阅读全文 »


mysql索引


索引干什么的,如何理解

索引用于快速找出在某个列中有一特定值的行。不使用索引,会全表,扫表越大,花费的时间越多。 如果表中查询的列有一个索引,mysql能快速到达一个位置搜寻到数据 索引就像书的字典,数据犹如数的内容,而读者相当CPU

索引采用B+树

  • 它采用了多叉树的结构,降低了索引结构的深度,避免了传统二叉树结构中绝大部分的随机访问操作
  • 一次性读内存中的需要查找的关键字也就越多,有效减少了磁盘IO,B+树索引查询效率稳定,也有利于进行范围查询
  • B树相比B+树的一个主要区别就在于B树的分支节点上存储着数据,B+树的数据都存储在叶子节点上,分支节点均为索引

索引优缺点

查询效率快,维护效率低

设计原则

  1. 不是越多越好,数据量小的表建立会增加额外的索引开销,数据变更也需要维护索引,太多的索引会增加查询优化器的选择时间
  2. 常更新的表索引越少越好
  3. 不同的值比较多的列才需要建立索引
  4. 某种数据本身具备唯一性的时候,建立唯一性索引,可以保证定义的列的数据完整性,以提高查询熟度
  5. 频繁进行排序或分组的列(group by或者是order by)可以建立索引,提高搜索速度
  6. 经常用于查询条件的字段应该建立索引

阅读全文 »


mysql主从复制


介绍

mysql服务器, 一般有两个线程来负责复制和被复制。

  1. 作为主服务器Master,会把自己的每一次改动都记录到 二进制日志 Binarylog 中。 从服务器会负责来读取这个log, 然后在自己那里再执行一遍。
  2. 作为从服务器Slave, 会用master上的账号登陆到 master上, 读取master的Binarylog, 写入到自己的中继日志 Relaylog, 然后自己的sql线程会负责读取这个中继日志,并执行一遍。

阅读全文 »


centos7下RPM安装mysql5.7


查看是否有安装mysql

 rpm -qa|grep -i mysql

如有使用yum命令卸载

yum -y remove mysql版本

阅读全文 »