zoukankan      html  css  js  c++  java
  • PRIMARY KEY,key,unique key

    主键索引(必须指定为“PRIMARY KEY”,没有PRIMARY Index)、

    唯一索引(unique index,一般写成unique key)、

    普通索引(index,只有这一种才是纯粹的index)等,也是基于是不是把index看作了key

    sql插入索引语句:

    普通索引:ALTER TABLE `table_name` ADD INDEX index_name ( `column` )

    唯一索引:ALTER TABLE `table_name` ADD UNIQUE ( `column` )

    主键索引:ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )

    当文本字段与数字进行比较时,由于类型不同,MySQL 需要做隐式类型转换才能进行比较。

    默认转换规则是:

    不同类型全都转换为浮点型

    如果字段是字符,条件是整型,那么会把表中字段全都转换为整型

    什么情况下要建立索引:

    1.在经常需要搜索的列上,可以加快索引的速度。

    2.主键列上可以确保列的唯一性。

    3.在表与表的而连接条件上加上索引,可以加快连接查询的速度。

    4.在经常需要排序(order by),分组(group by)和的distinct 列上加索引 可以加快排序查询的时间,   (单独order by 用不了索引,索引考虑加where 或加limit)。

    5.尽量选择区分度高的列作为索引。

    6.索引列不能参与计算,保持列“干净”。

    7.尽量的扩展索引,不要新建索引

    什么情况下不建立索引:

    1.查询中很少使用到的列 不应该创建索引,如果建立了索引然而还会降低mysql的性能和增大了空间需求。

    2.很少数据的列也不应该建立索引,比如 一个性别字段 0或者1,在查询中,结果集的数据占了表中数据行 的比例比较大,mysql需要扫描的行数很多,增加索引,并不能提高效率。

    3.定义为text和image和bit数据类型的列不应该增加索引。

    4.当表的修改(UPDATE,INSERT,DELETE)操作远远大于检索(SELECT)操作时不应该创建索引,这两个操作是互斥的关系。
    ---------------------
    作者:jnshu_it
    来源:CSDN
    原文:https://blog.csdn.net/jnshu_it/article/details/80630054
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    Silverlight 中使用不同面板进行布局的效果比较
    将PDF格式文件添加到iPhone4手机 iBooks程序中.
    [转]学习WPF参考书
    [转]OEM版XP SP3安装时提示“序列号无效”的解决方法
    关于系统响应函数OnSysCommand
    为何在自定义消息处理函数中无法利用wParam或lParam传递指针?
    自定义消息(上)
    VC++中单选与复选按钮的使用
    VC++ Combo Box/Combo Box Ex控件
    VC++中的ON_COMMAND_RANGE宏
  • 原文地址:https://www.cnblogs.com/dianzan/p/11296326.html
Copyright © 2011-2022 走看看