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.会造成索引失效的几种情况:

              

        




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值