sql 入门经典(第五版) Ryan Stephens 学习笔记 第五部分: 性能调整

第十六章: 利用索引改善性能

1、 create index

单字段索引:  create index index_name on table_name (column_name);
唯一索引:     create unique index index_name on table_name (column_name);

组合索引: 一个表中有两个或者多个字段的索引

  create index index_name on table_name (column1,column2);

2、何时考虑设置索引

3、 drop index index_name ;      // 删除索引

4、 alter index index_name ;     //修改索引  

第二十章: 创建和使用视图及异名

  视图是一个虚拟表,它只保存在内存里,不占实际的存储空间,不保存数据,它只是从表里引用数据,它的使用方式和表是一样的.

  1. 视图的使用场景
    • 简化数据访问
      有时候数据在表里的格式并不适合终端查询,这时可以创建一系列的视图.
    • 作为一种安全策略
      视图可以限制用户只访问表里特定字段或满足一定条件的记录.
    • 维护摘要数据
      如果摘要数据所基于的表经常更新,那么使用视图要比每次都写SQL来的方便

  2、创建视图
    MySQL的文档中对创建视图是这样定义的:

    CREATE  [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]

    [DEFINER = { user | CURRENT_USER }] [SQL SECURITY { DEFINER | INVOKER }]
    VIEW view_name [(column_list)]
    AS select_statement
    [WITH [CASCADED | LOCAL] CHECK OPTION]

  一个普通的视图创建语句是这样的:

  CREATE VIEW V_CUSTOMERS AS SELECT * FROM V_CUSTOMERS;

    1. WITH CHECK OPTION
      这个用的不是很多.它像是一种约束.如果在创建视图的适合使用了这个选项,那么当向表中插入或者更新的记录不符合视图的条件时则操作失败.
    2. 删除视图
      跟删除表一样,使用DROP可以删除一个视图:
      DROP VIEW V_CUSTOMERS;

  从视图创建视图:

    create table table_name as select column1,colum2 from table_from_view;

3、 异名: 表或者视图的另一个名字,访问时可以不适用完整的名字。

  创建异名: create [public | private ] synonym synonym_name for table_name|view_name ;

  删除异名: drop synonym synonym_name;

  应用: select synonym_name ;   == select * from table_name ;

可以不添加所有者的名字就能访问这个表。

时间: 2024-08-07 14:26:58

sql 入门经典(第五版) Ryan Stephens 学习笔记 第五部分: 性能调整的相关文章

《lua程序设计(第二版)》学习笔记(五)

-- 第 5 章 函数 -- 一种对语句和表达式进行抽象的主要机制 print(os.date()); -- 打印日期 Sun Apr 20 12:44:46 2014 -- 一看到sun,感慨广州没有晴天 -- 函数没有参数也要括号 -- 特殊情况:只有一个参数的时候, 并且参数一个string/table构造式,可不写括号 print "Hello world" -- dofile "chapter03.lua" -- 冒号操作符:为面向对象式的调用而提供的函数

sql 入门经典(第五版) Ryan Stephens 学习笔记 (第六,七,八,九,十章)

第六章: 管理数据库事务 事务 是 由第五章 数据操作语言完成的  DML ,是对数据库锁做的一个操作或者修改. 所有事务都有开始和结束 事务可以被保存和撤销 如果事务在中途失败,事务中的任何部分都不会被记录到数据库 控制事务: commit , rollback ,savepoint; 6.1 commit 在操作之前 需要 设置: set autocommit = 0 ;  // 否则所有的操作都是 自动提交的 commit: 用于把事务所做的修改保存到数据库,它把上一个commit 或 r

sql 入门经典(第五版) Ryan Stephens 学习笔记  第四部分:建立复杂的数据库查询

第十四章: 使用子查询定义未确定的数据 1. 子查询与select 结合使用 select colum from table where column where  columnb=(select colum_name from ...); 2.   子查询与inset结合使用 insert table1 select column1 from table2 where cloumn2>(select ......); 将表二中满足条件的某几项 插入到表1 中,注: 插入的项数 = table1

sql 入门经典(第五版) Ryan Stephens 学习笔记 (第一章)

SQL - Structured  Query Language (结构化查询语言) 1/ SQL 命令的类型 : 数据定义语言: DDL 数据操作语言: DML 数据查询语言: DQL 数据控制语言: DCL 数据管理命令 事物控制命令 2/ 数据库 - 表 主键: 确保所有元素的标识都是唯一的 不同的表的映射: 公用某个字段(通常是主键)

sql 入门经典(第五版) Ryan Stephens 学习笔记 后续——存储引擎

一.引擎基础 1 查看系统支持的存储引擎 show engines; 2 查看表使用的存储引擎两种方法: a.show table status from database_name where name='table_name'; b.show create table table_name; 查看使用的默认引擎: show variables like 'default_storage_engine';  //MySQL5.5以后默认使用InnoDB存储引擎, 如果显示的格式不好看,可以用\

《Qt5 开发与实例(第三版)》学习笔记(五)

1 //2.5 控件 2 //2.51 按钮组(Buttons) 3 /* 4 Radio Button //单选按钮 5 Check Box//复选框 6 Dialog Button Box//对话框按钮盒 7 */ 8 //main.cpp 9 #include "mywidget.h" 10 #include <QApplication> 11 12 int main(int argc, char *argv[]) 13 { 14 QApplication a(arg

SQL入门经典(十) 之事务

事务是什么?事务关键在与其原子性.原子性概念是指可以把一些事情当作一个执行单元来看待.从数据库角度看待.他是指应该全部执行或者全部不执行一条或多条语句的最小组合.当处理数据时候经常确保一件事发生另一件事也随之发生.或者二件事都不发生.实际上可能达到程度是有几十件事情或者更多的事情都必须一起发生或者都不发生.来看一个一个经典事例.这个事例各大书籍讲事务都有.就是你去银行转帐给朋友.转了100元sql如下:你的帐号扣了100元,你朋友帐号加了100元.看起来很完美.其实有个BUG存在,你的帐号被扣1

c语言入门经典(第5版)

文章转载:http://mrcaoyc.blog.163.com/blog/static/23939201520159135915734 文件大小:126MB 文件格式:PDF    [点击下载] C语言入门经典(第5版)  内容简介: C语言是每一位程序员都应该掌握的基础语言.C语言是微软.NET编程中使用的C#语言的基础:C语言是iPhone.iPad和其他苹果设备编程中使用的Objective-C语言的基础:C语言是在很多环境中(包括GNU项目)被广泛使用的C++语言的基础.C语言也是Li

perl简洁编程,《Perl语言入门(第五版)》读书笔记

整理一下好多年前放在hi.baidu上的笔记! perl简洁编程,<Perl语言入门(第五版)>读书笔记20110316! 书很早就买了,简单翻翻就扔下了!最近买了ipad,良好的阅读体验,用来看书,感觉书又能看进去了!不能白看一遍,整理一下阅读笔记! Perl的程序竟能如此简洁!!! sub division  {     $_[0]/$_[1]; } $_即为接收的数组,同时数据运算后,直接返回,省略了return. sub max {    my($max_so_far)  =  shi