当前位置: 首页 > news >正文

mysql—自增长和索引

本次博客带领大家学习mysql数据库中的自增长和索引。

自增长

  • 自增长的基本介绍:
基本语法:
字段名 整型 primary key auto_increment

添加 自增长的字段方式:
INSERT INTO xxx(字段1,字段2...) VALUES(NULL,'值'...);
INSERT INTO xxx(字段2...) VALUES('值1','值2'...);
INSERT INTO xxx VALUES(NULL,'值1'...);
  • 案例1:
CREATE TABLE t24
	(id INT PRIMARY KEY AUTO_INCREMENT,
	email VARCHAR(32) NOT NULL DEFAULT '',
	`name` VARCHAR(32) NOT NULL DEFAULT '');
	
DESC t24;

INSERT INTO t24 VALUES(NULL,'tom@qq.com','tom');

INSERT INTO t24(email,`name`) VALUES('ld@qq.com','ld');
  • 自增长使用细节

    1. 一般来说自增长是和primary key 配合使用的。
    2. 自增长也可以单独使用[但是需要配合一个unique]。
    3. 自增长修饰的字段为整数型的(虽然小数也可以但是非常非常少这样使用)。
    4. 自增长默认从1开始,你也可以通过如下命令修改 alter table 表名 auto_increment = 新的开始值。
    5. 如果你添加数据时,给自增长字段(列)指定的有值,则以指定的值为准,如果指定了自增长,一般来说,就按照自增长的规则来添加数据。
  • 案例2:

CREATE TABLE t25
	(id INT PRIMARY KEY AUTO_INCREMENT,
	email VARCHAR(32) NOT NULL DEFAULT '',
	`name` VARCHAR(32) NOT NULL DEFAULT '');
	
ALTER TABLE t25 AUTO_INCREMENT = 100;

INSERT INTO t25 VALUES(NULL,'tom@qq.com','tom');

INSERT INTO t25 VALUES(666,'ld@qq.com','ld');

索引

  • 索引的原理:

    • 没有索引为什么会慢? 因为全表扫描。
    • 使用索引为什么会快?形成一个索引的数据结构,比如二叉树。
  • 索引的代价:

    1. 磁盘占用。
    2. 对dml(update、delete、insert)语句的效率影响。
  • 索引的类型:

    1. 主键索引,主键自动的为主键索引(类型Primary key)

    2. 唯一索引(UNIQUE)

    3. 普通索引(INDEX)

    4. 全文索引(FULLTEXT)[适用于MyISAM]

      一般开发,不适用mysql自带的全文索引,而是开发中考虑使用:全文搜索Solr 和 ElasticSearch(ES)

  • 索引的使用:

    1. 添加索引:
    create [unique] index index_name on tbl_name (col_name[(length)] [ASC | DESC],...)
    
    alter table table_name ADD index [index_name ] (index_col_name,...)
    
    CREATE UNIQUE INDEX id_idex ON t26(id);
    CREATE INDEX id_index ON t26 (id);
    ALTER TABLE t26 ADD INDEX id_index (id);
    
    1. 添加主键(索引):
    ALTER TABLE 表名 ADD PRIMARY KEY(列名,...);
    
    ALTER TABLE t26 ADD PRIMARY KEY (id);
    
    1. 删除索引:
    drop index index_name on tabl_name;
    
    alter table table_name drop index index_name;
    
    DROP INDEX id_index ON t26;
    ALTER TABLE t26 DROP PRIMARY KEY; 
    
    1. 查询索引:
    SHOW INDEX FROM t26;
    SHOW INDEXES FROM t26;
    SHOW KEYS FROM t26;
    desc t26;
    
  • 小结:

    1. 较频繁的作为查询条件字段应该创建索引。
    select * from emp where empno=1;
    
    1. 唯一性太差的字段不适合单独创建索引,即使频繁作为查询条件。
    select * from emp where sex='男';
    
    1. 更新非常频繁的字段不适合创建索引。
    select * from emp where logincount=1;
    
    1. 不会出现在WHERE子句中字段不该创建索引。

相关文章:

  • 【C语言】带你深入剖析字符串相关知识(详细讲解+源码展示)
  • PostgreSQL 常用管理命令
  • Canny边缘检测数学原理及Python代码实现
  • 代码解析MixFormer: Mixing Features across Windows and Dimensions
  • 墨者-网络安全
  • Thread类的基本用法
  • Vue——方法与事件、 样式绑定、数据绑定、面试题、笔试题
  • DCDC Bootstrap自举电路
  • 练习前端案例
  • Completed 404 NOT_FOUND,Whitelabel Error Page
  • 微信公众号多题库查题系统
  • Vue事件
  • TCP/IP协议专栏——ARP详解——网络入门和工程维护必看
  • python 字符串类型
  • 【canvas】-- H5新增标签canvas的简单用法
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • 2017届校招提前批面试回顾
  • 2017前端实习生面试总结
  • FineReport中如何实现自动滚屏效果
  • go语言学习初探(一)
  • Hibernate最全面试题
  • If…else
  • Java Agent 学习笔记
  • js
  • laravel 用artisan创建自己的模板
  • 阿里研究院入选中国企业智库系统影响力榜
  • 程序员该如何有效的找工作?
  • 代理模式
  • 关于Java中分层中遇到的一些问题
  • 简单易用的leetcode开发测试工具(npm)
  • 力扣(LeetCode)965
  • 扑朔迷离的属性和特性【彻底弄清】
  • 数据结构java版之冒泡排序及优化
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • 责任链模式的两种实现
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • ​一些不规范的GTID使用场景
  • #include到底该写在哪
  • #Linux(make工具和makefile文件以及makefile语法)
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (二)c52学习之旅-简单了解单片机
  • (二)丶RabbitMQ的六大核心
  • (六)Hibernate的二级缓存
  • (转)关于pipe()的详细解析
  • (转)重识new
  • .Net MVC4 上传大文件,并保存表单
  • .Net Web项目创建比较不错的参考文章
  • .net6 webapi log4net完整配置使用流程
  • @Controller和@RestController的区别?
  • @RequestBody的使用