首页 技术 正文
技术 2022年11月6日
0 收藏 911 点赞 1,017 浏览 1834 个字

1.索引

详细介绍:http://www.cnblogs.com/57rongjielong/p/8039452.html

索引是对数据库表中一个或多个列的值进行排序的结构。索引是经过某种算法优化过的,因而查找次数相对较少。

mysql的索引分为单列索引(主键索引,唯一索引,普通索引)和组合索引.

单列索引:一个索引只包含一个列,一个表可以有多个单列索引.

组合索引:一个组合索引包含两个或两个以上的列,

2.MySQL中常见索:

A.普通索引

 CREATE TABLE person(
pid INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
pname VARCHAR(20) NOT NULL,
page INT,
-- 创建表时创建索引
INDEX index_pname(pname)
) -- 单独创建索引
-- create index 索引名称 on 表名(列名)
CREATE INDEX index_page ON person(page); -- 删除索引
-- drop index 索引名称 on 表名;
DROP INDEX index_page ON person; -- 查看索引
-- show index from 表名;
SHOW INDEX FROM person; -- 对于创建索引时如果是BLOB 和 TEXT 类型,必须指定length

B.唯一索引

唯一性索引和普通索引最大的差异就是在索引列上增加了一层唯一约束。添加唯一性索引的数据列可以为空,但是只要存在数据值,就必须是唯一的。

 CREATE TABLE person(
pid INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
pname VARCHAR(20) NOT NULL,
page INT,
-- 创建表时创建唯一索引
UNIQUE index_pname(pname)
) -- 单独创建索引
-- create index 索引名称 on 表名(列名)
CREATE UNIQUE INDEX index_page ON person(page); -- 删除索引
-- drop index 索引名称 on 表名;
DROP INDEX index_page ON person; -- 查看索引
-- show index from 表名;
SHOW INDEX FROM person; -- 对于创建索引时如果是BLOB 和 TEXT 类型,必须指定length

C.主键索引

在数据库关系图中为表定义一个主键将自动创建主键索引,主键索引是唯一索引的特殊类型。主键索引要求主键中的每个值是唯一的。当在查询中使用主键索引时,它还允许快速访问数据。数据不能为空。

CREATE TABLE person(
pid INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
pname VARCHAR(20) NOT NULL,
page INT
)

CREATE TABLE person(
pid INT NOT NULL AUTO_INCREMENT,
pname VARCHAR(20) NOT NULL,
page INT,
PRIMARY KEY(pid)
)
CREATE TABLE person(
pid INT NOT NULL,
pname VARCHAR(20) NOT NULL,
page INT
)
-- 添加主键索引
ALTER TABLE person ADD PRIMARY KEY(pid);
-- 删除主键
ALTER TABLE person DROP PRIMARY KEY;ALTER TABLE person MODIFY pid INT,DROP PRIMARY KEY;

D.组合索引

——两列或者多列组合成一个索引进行查询,频繁的同时使用n列来进行查询

CREATE INDEX ix_pid_pname ON person(pid,pname);
  • pid and pname– 使用索引
  • pid                   — 使用索引
  • pname             — 不使用索引

注意:

  • 避免使用select *
  • count(1)或count(列) 代替 count(*)
  • 创建表时尽量使用 char 代替 varchar
  • 表的字段顺序固定长度的字段优先
  • 组合索引代替多个单列索引(经常使用多个条件查询时)
  • 尽量使用短索引
  • 使用连接(JOIN)来代替子查询(Sub-Queries)
  • 连表时注意条件类型需一致
  • 索引散列值(重复少)不适合建索引,例:性别不适合

3.limit分页

    select * from 表 limit 5;            - 前5行
select * from 表 limit 4,5; - 从第4行开始的5行
select * from 表 limit 5 offset 4 - 从第4行开始的5行
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,110
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,584
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,431
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,203
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,838
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,921