美文网首页
PHP+Mysql 面试题记录

PHP+Mysql 面试题记录

作者: AdaYun | 来源:发表于2019-08-18 16:48 被阅读0次

    mysql索引的类型分几种?并做简要说明。

    1. 普通索引
    这是最基本的索引,值可以为空,它没有任何限制,仅加速查询
    增加索引:
    CREATE INDEX indexName ON tableName(columnName(length));
    ALTER table tableName ADD INDEX indexName(columnName);
    如果是CHAR,VARCHAR类型,length可以小于字段实际长度;如果是BLOB和TEXT类型,必须指定 length。
    删除索引:DROP INDEX indexName ON tablename;
    2. 唯一索引
    索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。它有以下几种创建方式:
    CREATE UNIQUE INDEX indexName ON tablename(columnName(length)) ;
    ALTER table tablename ADD UNIQUE [indexName] (columnName(length));
    3. 主键索引
    主键是一种唯一性索引,但它必须指定为PRIMARY KEY,不可以有空值,每个表只能有一个主键。
    ALTER table tablename add primary key (`columnName`)
    4. 全文索引:
    全文索引的索引类型为FULLTEXT。全文索引可以在varchar、char、text类型的列上创建。可以通过ALTER TABLE或CREATE INDEX命令创建。对于大规模的数据集,通过ALTER TABLE(或者CREATE INDEX)命令创建全文索引要比把记录插入带有全文索引的空表更快。MyISAM支持全文索引,InnoDB在mysql5.6之后支持了全文索引。 全文索引不支持中文需要借sphinx(coreseek)或迅搜技术处理中文。
    alter table tablename add FULLTEXT(`columnName`);
    索引优化: https://www.cnblogs.com/pcyy/p/7943759.html

    SQL中什么情况下需要用到左连接(left join)?

    LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。

    mysql存储引擎MyISAM和InnoDB的区别?

    https://blog.csdn.net/wjtlht928/article/details/46641865

    相关文章

      网友评论

          本文标题:PHP+Mysql 面试题记录

          本文链接:https://www.haomeiwen.com/subject/cfwrsctx.html