betway必威亚洲官网 16

索引阐述系列八,数据导出工具

一.概述

    索引填充因子作用:提供填充因子选项是为了优化索引数据存储和性能。 当创建或重新生成索引时,填充因子的值可确定每个叶级页上要填充数据的空间百分比,以便在每一页上保留一些剩余存储空间作为以后扩展索引的可用空间,例如:指定填充因子的值为
80 表示每个叶级页上将有 20%
的空间保留为空,以便随着向基础表中添加数据而为扩展索引提供空间。

  填充因子的值是 1 到 100
之间的百分比,服务器范围的默认值为
0,这表示将完全填充叶级页。

 1.1
页拆分现象

   根据数据的查询和修改的比例,正确选择填充因子值,可提供足够的空间,以便随着向基础表中添加数据而扩展索引,从而降低页拆分的可能性。如果向已满的索引页添加新行(新行位置根据键排序规则,可以是页中任意行位置), 数据库引擎将把大约一半的行移到新页中,以便为该新行腾出空间。 这种重组称为页拆分。页拆分可为新记录腾出空间,但是执行页拆分可能需要花费一定的时间,此操作会消耗大量资源。 此外,它还可能造成碎片,从而导致 I/O
操作增加。 如果经常发生页拆分(可能过sys.dm_betway必威亚洲官网,db_index_physical_stats
来查看页拆分情况),可通过使用新的或现有的填充因子值来重新生成索引,从而重新分发数据。

  填充值设置过低: 优点是
插入或修改时降低页的拆分次数。缺点是
会使索引需要更多的存储空间,并且会降低读取性能。

  填充值设置过高: 优点是
如果每一个索引页数据都全部填满,此时select效率最高。缺点是
插入或修改时需要移动后面所有页,效率低。

一.概述  

  sql
server在快速查询值时只有索引还不够,还需要知道操作要处理的数据量有多少,从而估算出复杂度,选择一个代价小的执行计划,这样sql
server就知道了数据的分布情况。索引的统计值信息,还内置策略用来在没有索引的属性列上创建统计值。在有索引和没有索引的属性列上统计值信息会被自动维护。大部分场景下不需要手动去维护统计信息。
  
  作用是 sqlserver
查询优化器使用统计信息来创建可提高查询性能的查询计划。
对于大多数查询,查询优化器已为高质量查询计划生成必要的统计信息。每个索引都会自动建立统计信息,
统计信息的准确性直接影响指令的速度,执行计划的选择是依据统计信息。

  1.1 属性列统计值
  默认情况下,每当在一个查询的where子句中使用非索引属性列时,sqlserver会自动地创建统计值,统计名称以_WA_Sys开头。

-- 查看表中非索引的统计信息
 sp_helpstats PUB_Search_Log

   如下所示:

 betway必威亚洲官网 1betway必威亚洲官网 2

  1.2 自动更新统计信息的阀值

  在自动更新统计信息选项 AUTO_UPDATE_STATISTICS 为 ON
时,查询优化器将确定统计信息何时可能过期。查询优化器通过计算自最后统计信息更新后数据修改的次数并且将这一修改次数与某一阈值进行比较,确定统计信息何时可能过期。
  (1)如果在评估时间统计信息时表基数为 500 或更低,则每达到 500
次修改时更新一次。
  (2)如果在评估时间统计信息时表基数大于 500,则改变每达到 500 +
20%的行数更新一次(大表特别要注意更新时间)

一.概述

    mysqldump客户端工具是用来备份数据库或在不同数据库之间进行数据迁移。备份内容包含创建表或装载表的sql语句。mysqldump目前是mysql中最常用的备份工具。
  三种方式来调用mysqldump,命令如下:
betway必威亚洲官网 3
  上图第一种是备份单个数据库或者库中部分数据表(从备份方式上,比sqlserver要灵活一些,虽然sql
server有文件组备份)。第二种是备份指定的一个或者多个数据库。第三种是备份所有数据库。
  1.连接导出,下面将test数据库导出为test.txt文件,导出位置在data目录下

[root@hsr data]# /usr/local/mysql/bin/mysqldump -uroot -p test > test.txt

betway必威亚洲官网 4betway必威亚洲官网 5

  上图显示: 导出到test.txt文件里,
数据有几部份sql语句,包括:(1)有判断表存在删除,(2)导出表结构和表数据,(3)导前加table
write锁,导完释放。通过下面帮助命令可以看到默认设置。

 [root@hsr data]# /usr/local/mysql/bin/mysqldump --help

betway必威亚洲官网 6  2.
输出内容选项

-n, –no-create-db

不包含数据库的创建语句

-t, –no-create-info

不包含数据表的创建语句

-d,–no-data

不包含数据

    下面演示导出test库的a表,不包含数据:

[root@hsr data]# /usr/local/mysql/bin/mysqldump -uroot -p -d  test a > a.txt

betway必威亚洲官网 7

    上图显示,使用more 查看a.txt,内容只有表结构。
  3. 使用
–compact选项使得结果简洁,不包括默认选项中的各种注释,下面还是演示a表:

[root@hsr data]# /usr/local/mysql/bin/mysqldump -uroot -p --compact  test a > a.txt

betway必威亚洲官网 8

  4. 使用-c –complete-insert 选项,使insert语句包括字段名称

[root@hsr data]# /usr/local/mysql/bin/mysqldump -uroot -p -c --complete-insert  test b > b.txt

betway必威亚洲官网 9

  5. 使用-T选项将指定数据表中的数据备份为单纯的数据文本和建表sql,
两个文件。

     [root@hsr data]# midir bak
        [root@hsr data]# /usr/local/mysql/bin/mysqldump -uroot -p   test b -T ./bak
        Enter password: 
        mysqldump: Got error: 1290: The MySQL server is running with the --secure-file-priv option so it cannot execute 
                      this statement when executing 'SELECT INTO OUTFILE'

 --上面的语句报错,查找错误信息中的字段设置
SHOW VARIABLES LIKE '%secure%';

betway必威亚洲官网 10

    secure-file-priv参数是用来限制LOAD DATA, SELECT … OUTFILE, and
LOAD_FILE()传到哪个指定目录的。

                   (1) 当secure_file_priv的值为null ,表示限制mysqld
不允许导入|导出。

                   (2) 当secure_file_priv的值为/tmp/ ,表示限制mysqld
的导入|导出只能发生在/tmp/目录下。

                   (3
)当secure_file_priv的值没有具体值时,表示不对mysqld
的导入|导出做限制。

    下面来设置my.cnf文件,加上导入位置,位置在/tmp 目录下,如下图:
betway必威亚洲官网 11betway必威亚洲官网 12

-- 再次导出,导出路径在/tmp下
[root@hsr data]#  /usr/local/mysql/bin/mysqldump -uroot -p   test b -T /tmp

betway必威亚洲官网 13

    使用more 查看文件,b.sql中包含了表架构, b.txt包含数据。
betway必威亚洲官网 14

betway必威亚洲官网 15

   6.  字符集选项

    –default-character-set=name
选项可以设置导出的客户端字符集。这个选项很重要,如果客户端字符集和数据库字符集不一致,有可能成为乱码,使得备份文件无法恢复。

[root@hsr data]#  /usr/local/mysql/bin/mysqldump -uroot -p  --compact --default-character-set=utf8 test >test.txt

    betway必威亚洲官网 16

  7. 其他常用选项

    (1) -F –flush-logs(备份前刷新日志) 
备份前将关闭旧日志,生成新日志。恢复的时候直接从新日志开始进行重做,方便恢复过程。

    (2) -l –lock-tables(给所有表加读锁)
使得数据无法被更新,从而使备份的数据保持一致性(可以导致大量长时间阻塞)。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

标签:
网站地图xml地图