(三)MySQL终极篇
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行
(三)MySQL终极篇的更多相关文章
- Linux配置mysql (centos配置java环境 mysql配置篇 总结四)
♣安装的几种方法和比较 ♣配置yum源 ♣安装mysql ♣启动mysql ♣修改密码 ♣导入.sql文件 ♣缓存设置 ♣允许远程登录(navicat) ♣配置编码为utf8 1.关于Linux系统 ...
- 第二章 MySQL入门篇
第一章 MySQL入门篇 一.MySql简介 简言: 和SQL Server数据库相同,MySQl也是一个关系型数据库管理系统.由瑞典的MySQL AB公司开发,2008年被SUN公司收购,2009年 ...
- mysql 架构篇系列 3 复制运行状态监控与选项参数说明
一. 概述 在上一篇中,搭建了一主一从的复制架构,这篇通过一些诊断方法来了解复制的运行状态和一些选项参数说明.上次mysql主从服务关机,今天在打开mysql服务,出现了错误信息. 1.首先 启动主从 ...
- {MySQL数据库初识}一 数据库概述 二 MySQL介绍 三 MySQL的下载安装、简单应用及目录介绍 四 root用户密码设置及忘记密码的解决方案 五 修改字符集编码 六 初识sql语句
MySQL数据库初识 MySQL数据库 本节目录 一 数据库概述 二 MySQL介绍 三 MySQL的下载安装.简单应用及目录介绍 四 root用户密码设置及忘记密码的解决方案 五 修改字符集编码 六 ...
- 【目录】mysql 进阶篇系列
随笔分类 - mysql 进阶篇系列 mysql 开发进阶篇系列 55 权限与安全(安全事项 ) 摘要: 一. 操作系统层面安全 对于数据库来说,安全很重要,本章将从操作系统和数据库两个层面对mysq ...
- mysql注入篇
博客这个东西真的很考验耐心,每写一篇笔记,都是在艰难的决定中施行的,毕竟谁都有懒惰的一面,就像这个,mysql注入篇,拖拖拖一直拖到现在才开始总结,因为这个实在是太多太杂了,细细的总结一篇太烧脑. 由 ...
- 最新MySQL入门篇
一.SQL简介 SQL:结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询.更新和管理关系数据库系 ...
- (6)MySQL进阶篇SQL优化(MyISAM表锁)
1.MySQL锁概述 锁是计算机协调多个进程或线程并发访问某一资源的机制.在数据库中,除传统的计算资源 (如 CPU.RAM.I/O 等)的抢占以外,数据也是一种供许多用户共享的资源.如何保证数 据并 ...
- 「 MySQL高级篇 」MySQL索引原理,设计原则
大家好,我是melo,一名大二后台练习生,大年初三,我又来充当反内卷第一人了!!! 专栏引言 MySQL,一个熟悉又陌生的名词,早在学习Javaweb的时候,我们就用到了MySQL数据库,在那个阶段, ...
随机推荐
- Redis数据结构总结
Redis 字符串(String) SET runoobkey redis GET runoobkey Redis 哈希(Hash) Redis hash 是一个string类型的field和valu ...
- Oracle入门第四天(下)——约束
一.概述 1.分类 表级约束主要分为以下几种: NOT NULL UNIQUE PRIMARY KEY FOREIGN KEY CHECK 2.注意事项 如果不指定约束名 ,Oracle server ...
- 20155207第二周myod以及课堂测试
第二周myod以及课堂测试 第二周测试5 题目 1.除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.so共享库?main ...
- 实验四: Android程序设计
实验四 Android程序设计 1 实验目的及要求 1.安装 Android Stuidio. 2.完成Hello World, 要求修改res目录中的内容,Hello World后要显示自己的学号. ...
- 20155316 2016-2017-2 《Java程序设计》第2周学习总结
教材学习内容总结 学习主要内容:基本类型介绍及流程控制简介 关键点:关键记住JAVA的大体框架,可以类比C语言结合着记.相较于C不同且值得关注的主要信息有: 基本类型的不同:byte.boolean. ...
- python append extend区别
1. 列表可包含任何数据类型的元素,单个列表中的元素无须全为同一类型. 2. append() 方法向列表的尾部添加一个新的元素. 3. 列表是以类的形式实现的.“创建”列表实际上是将一个类实例化.因 ...
- day2 HTML - body
<body>内常用标签 1.基本标签 所有标签分为: # 块级标签: div(白板),H系列(加大加粗),p标签(段落和段落之间有间距) # 行内标签: span(白板) 1. 图标, ...
- 图论-最短路径--3、SPFA算法O(kE)
SPFA算法O(kE) 主要思想是: 初始时将起点加入队列.每次从队列中取出一个元素,并对所有与它相邻的点进行修改,若某个相邻的点修改成功,则将其入队.直到队列为空时算法结束. 这个算 ...
- hadoop hdfs 找不到本地库解决办法
export LD_LIBRARY_PATH=/usr/lib/hadoop-0.20-mapreduce/lib/native/Linux-amd64-64 <-- HAOOP_HOME/li ...
- XDS100V3连接Pandaboard ES OMAP4460开发板
1. 硬件连接如下 2. 使用CCS创建工程,不过好像没有ARM9的内核吧?为啥会出现? 3. 创建目标配置文件 4. 不过确实有ARM9的内核,两个A9内核,一个DSP C64X内核,两个M3的内核 ...