指令(MySQL)

    1.指令

        show databases;      查看数据库

        use student;     使用数据库

        show tables;      查看所有表

        select * from subject;     查看指定表中内容

        explain select * from subject;    分析表

        show status like 'subject';    查看表的索引

        analyze table student;     分析 储存表的关键字

        check table student;   检查错误

        optimize table studnet;   优化数据库

    2.优化SQL语句

        1.选取最合适的字段属性

            MySQL支持了大量数据的存取,一般来说,表越小,查询速度越快,因此我们想要使数据库的性能更加良好,我们要将字段的数据类型宽度设置的要            尽量小,合适即可。

        2.使用连接(inner join)来代替子查询

            使用子查询可以一次性完成很多逻辑上需要很多步骤的SQL操作,在某些情况下我们可以使用(inner join)来代替子查询,使用inner join速度将会提高很         多。

        3.对查询进行优化,首先考虑在where和order by涉及的列上面建立索引

        4.in和not in要慎重应用,否则会导致全表搜索

        5.避免在where中进行对字段的表达式操作,这将导致数据库放弃使用索引而进行全表扫描

        6.不要在where中'='左边进行函数,算数运算或其他表达式运算,否则导致系统无法正确使用索引

        7.索引并不是越多越好,索引虽然可以提高 select 的效率,但同时也降低了 insert 及 update 的效率,因为 insert 或 update 时有可能会重建索引,所以           怎样建索引需要慎重考虑,视具体情况而定。一个表的索引数最好不要超过6个,若太多则应考虑一些不常使用到的列上建的索引是否有必要。

    3.优化数据库

        1.创建索引

                对于查询占主要的应用来说,索引尤为重要,有时候不加索引会导致致命的性能下降,如果建立索引没有任何优势则会影响更新速度,这被称为过              度索引

        2.索引不会包含有null值的列

                只要列中包含有NULL值都没有被包含在索引中,复合索引中只要有一列含有NULL值,那么这一列对于此复合索引就是无效的。所以我们在数据库              设计时不要让字段的默认值为NULL。

       3.使用短索引

                 串列进行索引,如果可能应该指定一个前缀长度。

       4.排序的索引问题

                 mysql查询只使用一个索引,因此如果where子句中已经使用了索引的话,那么order by中的列是不会使用索引的。因此数据库默认排序可以符合要               求的情况下不要使用排序操作;尽量不要包含多个列的排序,如果需要最好给这些列创建复合索引。

      5.like语句操作

                 一般情况下不建议使用like操作,如果非使用不可,如何使用也是一个问题。like “%aaa%” 不会使用索引而like “aaa%”可以使用索引。

      6.不使用not in和<>操作

                 NOT IN和<>操作都不会使用索引将进行全表扫描。

原文地址:https://www.cnblogs.com/yangshuwen/p/12832888.html