带你了解MySQL数据库小技巧( 六 )


mysqldump将数据表导成SQL脚本文件 , 在不同的MySQL版本之间升级时相对比较合适 , 这也是最常用的备份方法 。 mysqldump比直接复制要慢些 。 也就是把内存中的数据都刷新到磁盘中 , 同时锁定数据表 , 以保证复制过程中不会有新的 数据写入 。 这种方法备份出来的数据恢复也很简单 , 直接复制回原来的数据库
34、平时应该打开哪些日志?日志既会影响MySQL的性能 , 又会占用大量磁盘空间 。 因此 , 如果不必要 , 应尽可能少地 开启日志 。 根据不同的使用环境 , 可以考虑开启不同的日志 。 例如 , 在开发环境中优化查询效率低的语句 , 可以开启慢查询日志;如果需要记录用户的所有查询操作 , 可以开启通用查询日志;如果需要记录数据的变更 , 可以开启二进制日志;错误日志是默认开启的 。
35、如何使用二进制日志?二进制日志主要用来记录数据变更 。 如果需要记录数据库的变化 , 可以开启二进制日志 。基于二进制日志的特性 , 不仅可以用来进行数据恢复 , 还可用于数据复制 。 在数据库定期备份的 情况下 , 如果出现数据丢失 , 可以先用备份恢复大部分数据 , 然后使用二进制日志恢复最近备份后变更的数据 。 在双机热备情况下 , 可以使用MySQL的二进制日志记录数据的变更 , 然后将变更部分复制到备份服务器上 。
36、如何使用慢查询日志?慢查询日志主要用来记录查询时间较长的日志 。 在开发环境下 , 可以开启慢查询日志来记 录查询时间较长的查询语句 , 然后对这些语句进行优化 。 通过配long_query_time的值 , 可以灵活地掌握不同程度的慢查询语句 。
37、是不是索引建立得越多越好?合理的索引可以提高查询的速度 , 但不是索引越多越好 。 在执行插入语句的时候 , MySQL 要为新插入的记录建立索引 。 所以过多的索引会导致插入操作变慢 。 原则上是只有查询用的字段 才建立索引 。
38、如何使用查询缓冲区?查询缓冲区可以提高查询的速度 , 但是这种方式只适合查询语句比较多、更新语句比较少 的情况 。 默认情况下查询缓冲区的大小为〇 , 也就是不可用 。 可以修改queiy_cache_size以调整 查询缓冲区大小;修改query_cache_type以调整查询缓冲区的类型 。 在my.ini中修改 query_cache_size 和 query_cache_type的值如下所示:
表示开启查询缓冲区 。 只有在查询语句中包含SQL_NO_CACHE关键字 时 , 才不会使用查询缓冲区 。 可以使用FLUSH QUERY CACHE语句来刷新缓冲区 , 清理查询缓 冲区中的碎片 。
原文来自: