美文网首页MySQL
MySQL——数据库维护及性能改善(终)

MySQL——数据库维护及性能改善(终)

作者: 开心糖果的夏天 | 来源:发表于2017-06-30 14:54 被阅读147次

    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

    MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

    MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。

    数据库维护

    一、备份数据

    由于MySQL数据库是基于磁盘文件,普通的备份系统和例程就能备份MySQL的数据。但是,由于这些文件总是处于打开和使用状态,普通的文件副本备份不一定总是有效。下面列出这个问题的可能解决方案:
    (1)使用命令行实用程序mysqldump转储所有数据库内容到某个外部文件。在进行常规备份前这个实用程序应该正常运行,以便能正确地备份转储文件。
    (2)可用命令行实用程序mysqlhotcopy从一个数据库复制所有数据(但并非所有数据库引擎都支持这个实用程序)。
    (3)可以使用MySQL的BACKUP TABLE 或SELECT INTO OUTFILE转储所有数据到某个外部文件。这两条语句都接受将要创建的系统文件名,此系统文件必须不存在,否则会出错。数据可以用RESTORE TABLE来复原。

    二、进行数据库维护

    MySQL提供了一系列的语句,可以用来保证数据库正确和正常运行。
    (1)ANALYZE TABLE,用来检查表键是否正确。ANALYZE TABLE返回如下所示的状态信息:



    (2)CHECK TABLE用来针对许多问题对表进行检查。在MyISAM表上还对索引进行检查。CHECK TABLE支持一系列的用于MyISAM表的方式。CHANGED检查自最后一次检查以来改动过的表。EXTENDED执行最彻底的检查,FAST只检查未正常关闭的表。如下所示,CHECK TABLE发现和修复问题:

    三、诊断启动问题

    服务器启动问题通常在对MySQL配置或服务器本身进行更改时出现。MySQL在这个问题发生时报告错误,但由于MySQL服务器是作为系统进程或服务自动启动的,这些消息可能看不到。在排除系统启动问题时,首先应该尽量用手动启动服务器。下面是几个重要的mysqld命令行选项:
    (1)help显示帮助——一个选项列表;
    (2)safe-mode装载减去某些最佳配置的服务器;
    (3)verbose显示全文本消息(为获得更详细的帮助消息与help联合使用);
    (4)version显示版本信息然后退出。

    性能改善

    (1)首先,MySQL(与所有DBMS一样)具有特定的硬件建议。但对用于生产的服务器来说,应该坚持遵循这些硬件建议。一般来说,关键的生产DBMS应该运行在自己的专用服务器上。
    (2)MySQL是一个多用户多线程的DBMS,换言之,它经常同时执行多个任务。如果这些任务中的某一个执行缓慢,则所有请求都会执行缓慢。如果遇到显著的性能不良,可使用SHOW PROCESSLIST显示所有活动进程(以及它们的线程ID和执行时间)。
    (3)一般来说,存储过程执行的比一条一条地执行其中的各条MySQL语句快。
    (4)在导入数据时,应该关闭自动提交。你可能还想删除索引(包括FULLTEXT索引),然后在导入完成后再重建它们。
    (5)LIKE很慢。一般来说,最好是使用FULLTEXT而不是LIKE。
    (6)通过使用多条SELECT语句和连接它们的UNION语句,你能看到极大地性能改善。
    (7)总是由不止一种方法编写同一条SELECT语句。应该试验联结、并、子查询等,找出最佳的方法。
    ......
    ......
    ......

    MySQL的学习到此结束,只是浅显的入门学习。学习是一个慢慢积累的过程,也是一件很快乐的事,这种快乐来自于你的思考。完成一项学习任务固然重要,但更重要的是在完成的过程中学到了什么,掌握了什么,遇到一些什么问题,为什么会出现这种问题,根源是什么,都有哪些解决方案,什么样的情况适合这个方案。只有在不断的思考,你的能力才会有所提升!

    相关文章

      网友评论

        本文标题:MySQL——数据库维护及性能改善(终)

        本文链接:https://www.haomeiwen.com/subject/omekcxtx.html