mysql索引和性能优化(mysql基础知识3)

1.索引

        索引是对数据库中一列或者多列的值排序的一种数据结构。

        优点:1.查询快

                  2.分组快

                  3.表连接快

        缺点:1.建立索引需要时间和空间

                  2.表中数据改变时,索引需要维护

            分类:

                {普通索引和唯一索引}

                普通索引是最基本的索引类型,唯一索引可以减少查询索引列的时间

                {单列索引和唯一索引}

                一个表可以创建多个单列索引,组合索引可以起几个索引的作用,遵从最左前缀

                {全文索引},只有MyISAM引擎支持

                {空间索引},只有MyISAM引擎支持

2.创建索引

            1)  方法1,创建表的时候添加索引

                create table table_name [col_name data_type] 

                [UNIQUE|FULLTEXT|SPATIAL]    [INDEX|KEY]    [index_name]    (col_name[length])    [asc|desc]

            2)方法2,在已经存在的表上创建索引

          alter table table_name add [unix|fulltext|spatial]    [index|key]    [index_name]    (col_name[length],...)    [ASC|DESC]

            3)  方法3,在已经存在的表上创建索引

                create    [unix|fulltext|spatial]    index    index_name    on    table_name    (col_name[lenth],...)    [ASC|DESC]

3.删除索引

            1)alter table table_name drop index index_name;

            2)   drop index   index_name on table_name;

4.查看索引

            show index from table_name;

5.性能优化

            原则:减少系统的瓶颈,减少资源的占用,增加系统的反应速度

            1.分析查询语句;

            2.创建索引并利用索引查询

            3.优化数据库结构

            4.优化mysql服务器

6.索引对查询速度的影响

1)什么事聚簇索引?什么事费聚簇索引?聚簇索引和非聚簇索引对查询速度的影响?

2)复合索引应该怎么用?(只有查询字段包含索引中起始字段才会有用)

3)使用like关键字查询,只有%不在起始位置索引才会起作用

4)使用or关键字查询,只有or前后两个字段都是索引时,查询中才会使用索引

5)使用连接查询代替子查询

猜你喜欢

转载自blog.csdn.net/woaichanganba/article/details/80150885