MySQL 索引

  • 索引创建、删除

    给student表的‘name’列添加一个索引名为‘idx_name’的索引:ALTER TABLE student ADD INDEX idx_name(name);

    删除‘idx_name’的索引:DROP INDEX idx_name ON student;    ALTER TABLE student DROP INDEX idx_name; 

  • 修改引擎

    mysql版本支持的引擎:show ENGINES;

    数据库school中student标用的存储引擎:show table status from school  where name='student';

    #ALTER TABLE student ENGINE=MyISAM,使用MyISAM存储引擎后插入1000万条数据花费的时间431.915s;MyISAM引擎在插入数据的时候没有事物的,插入数据极快。

              InnoDB引擎在插入、修改、删除数据的时候有事物提交的步骤,速度较慢。
    

  • MyISAM引擎 、InnoDB引擎 比较

    Myisam内置了一个计数器,所以在使用 select count(*) from table 的时候,直接可以从计数器中取出数据,速度很快;而innodb必须全表扫描一次方能得到总的数量。

  • MySQL查询优化

     sql命令行运行sql文件:mysql> source f:Myfile/sakila-db/sakila-schema.sql;

    检查mysql是否开启慢查询日志:mysql> show variables like 'slow_query_log';

    查询所有的日志变量:mysql> show variables like 'slow_query_log';

    检查mysql是否开启没用上索引查询日志“,设置打开索引查询日志:mysql> set global log_queries_not_using_indexes=on;

    长查询时间设置:mysql> show variables like 'long_query_time'; 默认是10;

    便于测试,故设置为0:mysql> set global long_query_time=0;

    打开慢查询日志为on:mysql> set global slow_query_log=on;

    分析sql慢查询日志:pt-query-digest工具

    mysql explain分析查询语句:

 

posted @ 2017-10-12 10:27  闪电拉拉  阅读(147)  评论(0编辑  收藏  举报