mysql数据库优化之索引

为什么添加索引后查询速度会变快?

    在我们添加完索引之后,mysql一般通过BTREE算法生成一个索引文件,在查询数据库时,找到索引文件进行遍历(折半查找大幅查询效率),找到相应的键从而获取数据

索引的代价:

    1. 创建索引是为产生索引文件的,占用磁盘空间

    2. 索引文件是一个二叉树类型的文件,可想而知我们的dml操作同样也会对索引文件进行修改,所以性能会下降

1,Mysql添加索引基础语法:

        ALTER TABLE <表名> ADD INDEX (<字段>);

2.mysql索引类型

        1.添加PRIMARY KEY(主键索引:当一张表,把某个列设为主键的时候,则该列就是主键索引

            mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 


        2.添加UNIQUE(唯一索引
            mysql>ALTER TABLE `table_name` ADD UNIQUE ( `column`)

        3.添加INDEX(普通索引:普通索引一般是在建表后再添加的
            mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column` ) 

        4.添加FULLTEXT(全文索引:全文索引主要针对文本文件,比如文章,标题,全文索引只有MyISAM有效(mysql5.6之后InnoDB也支持了全文索引

            mysql>ALTER TABLE `table_name` ADD FULLTEXT ( `column`) 

           备注: 

            1.  在mysql中fulltext 索引只针对 myisam生效

            2.  mysql自己提供的fulltext针对英文生效->sphinx(coreseek)技术处理中文

            3.  使用方法是 match(字段名..) against(‘关键字’)

        5.添加多列索引 

            mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`,`column3` )

       6.索引查询

            show indexes from table_name;

            show keys from table_name;

         7.删除索引

            alter table table_name drop index 索引名;

          8.会造成索引失效的几种情况:

              

        




猜你喜欢

转载自blog.csdn.net/weixin_40751299/article/details/80873744