★编程优化
一、字符编码(mysql控制台乱码输出解决:character_set_results='gbk')
表/列编码设置
  列:alter table 表名 change 列名 列名 数据类型 character set 字符集名
  表:alter table 表名 character set utf8
服务器编码设置
多表结构设置
二、视图

①简介
·什么是视图?视图是由查询结果形成的一张虚拟表。视图的主要作用就是查询。
·什么时候用到视图?如果某个查询结果出现的非常频繁,也就是,要经常拿这个查询结果来做子查询。
·使用视图的好处:简化查询语句,可以进行权限控制,大数据表分表的时候
·视图与表的关系:视图是表的查询结果,自然表的数据变了,会影响视图的结果。
·能否对视图进行增删改查的操作?
1>视图的增删改也会影响表;2>但视图并不总是能增删改的;视图与表的数据一一对应时可以修改,对于视图的insert还应注意;视图必须包含表中没有默认值的列。
②创建
create [or replace] [algorithm={undefined|merge|temptable}]
view view_name[(colum_list)]
as select_statement
[with[cascaded|local] check option]
③管理
·视图的存放位置
select * from iinformation_schema.views; 查询视图的存放位置;show tables;也可以查看
·查看视图的定义:show table status from 视图名称 like '视图名称'\G
·删除视图,只能删除视图的定义,不能删除数据,必须有drop权限
drop view if exists 视图名称
·update 视图名称 set salary=1500 where emp_no=1001;更新视图中emp_no=1001的工资;
·某些视图是可更新的,也就是说,可以在诸如update、delete或insert等语句中使用他们,以更新基表的内容,对于可更新的视图,在视图中的行和基表中的行之间必须具有一对一的关系;包含以下的视图都是不可更新的
1>聚合函数sum() min() max() count()
2>distinct
3>group by
4>having
5>union或union all
6>位于选择列表中的子查询
7>join
8>from子句中的不可更新视图
9>algorithm=temptable(使用临时表总会使视图成为不可更新的)
·关于with check option的理解与应用?
通过视图进行的修改,必须也能通过该视图看到修改的后的结果。
三、变量与流程控制
·局部变量:局部变量在存储过程中被定义,那么局部变量只有在存储过程中才有效,其他范围无效。
use companys;
delimiter $$;
create procedure p_vartest()
begin
declare a varchar(20) default 'abc';
select a
end
$$
delimiter;
call p_vartest
·会话变量:客户端与服务器端相关联的时候,你设置的变量,就是客户端所拥有的变量,这些变量就是会话变量。
  查看所有会话变量show session variables;  
   show session variables like 'auto%';
当A客户端和B客户端同时操作mysql数据库,各自设置的变量只对自己起作用,互不干扰,等下次在操作mysql的时候,mysql会把自己的一些变量作用于客户端。
   修改session会话变量方法:
      set @@session.autocommit='off';
      set 变量名=‘某个值’;           
·全局变量:不管是sessionA还是sessionB,只要你针对MySQL全局变量做了修改,A访问和B访问都是访问相同的变量值,
   查看所有全局变量
    show global variables;
   查看某一个全局变量
     show global variables like 'auto%';
   设置全局变量
     set @@global.变量名=某个值
·选择语句   
  use companys;
  delimiter $$;
  create procedure p_showage(in age int)
  begin
    if age>=18 then
       select '成年人';
    else
       select '未成年人';
    end if;
    end
    $$

mysql高级之编程优化的更多相关文章

  1. 【MySQL 高级】索引优化分析

    MySQL高级 索引优化分析 SQL 的效率问题 出现性能下降,SQL 执行慢,执行时间长,等待时间长等情况,可能的原因有: 查询语句写的不好 索引失效 单值索引:在 user 表中给 name 属性 ...

  2. mysql 高级和 索引优化,目的:查的好,查的快,性能好

    1-事物隔离级别: 更新丢失, 并发情况下,对同一字段进行更新,就会出现更新丢失,采用乐观锁,比较版本号或时间戳可解决 读未提交 解决了更新丢失但是会引起脏读, 二个session.sessionA中 ...

  3. MySQL高级知识(八)——ORDER BY优化

    前言:在使用order by时,经常出现Using filesort,因此对于此类sql语句需尽力优化,使其尽量使用Using index. 0.准备 #1.创建test表. drop table i ...

  4. MySQL高级知识(六)——索引优化

    前言:索引优化的目的主要是让索引不失效,本篇通过相关案例对索引优化进行讲解. 0.准备 创建经典的tb_emp表. DROP TABLE IF EXISTS `tb_emp`; CREATE TABL ...

  5. MySQL高级查询与编程作业目录 (作业笔记)

    MySQL高级查询与编程笔记 • [目录] 第1章 数据库设计原理与实战 >>> 第2章 数据定义和操作 >>> 2.1.4 使用 DDL 语句分别创建仓库表.供应 ...

  6. MySQL高级查询与编程笔记 • 【目录】

    章节 内容 实践练习 MySQL高级查询与编程作业目录(作业笔记) 第1章 MySQL高级查询与编程笔记 • [第1章 数据库设计原理与实战] 第2章 MySQL高级查询与编程笔记 • [第2章 数据 ...

  7. MySQL高级优化

    MySQL高级 1.索引是什么? (1)索引是排好序可以快速查找的数据结构 (2)方便快速查找,索引实际上也是一张表所以也是要占内存的 2.索引存在哪里? (1)InnoDB引擎 ①索引是和数据存放在 ...

  8. 「MySQL高级篇」explain分析SQL,索引失效&&常见优化场景

    大家好,我是melo,一名大三后台练习生 专栏回顾 索引的原理&&设计原则 欢迎关注本专栏:MySQL高级篇 本篇速览 在我们上一篇文章中,讲到了索引的原理&&设计原则 ...

  9. mysql高级day3

    Mysql高级-day03 1. 应用优化 前面章节,我们介绍了很多数据库的优化措施.但是在实际生产环境中,由于数据库本身的性能局限,就必须要对前台的应用进行一些优化,来降低数据库的访问压力. 1.1 ...

随机推荐

  1. iOS中 陀螺仪/加速器 韩俊强的博客

    引进框架: #import <CoreMotion/CoreMotion.h> 定义属性初始化相关: #import "ViewController.h" #impor ...

  2. 使用C++的string实现高精度加法运算

    对于超大数字的运算,用long long int仍然不能解决,这时候就需要考虑通过模拟运算和数组存储来实现高精度运算. 本文讨论借助C++的string来实现高精度的运算. 首先输入的量直接存储为st ...

  3. MO_GLOBAL包中一些过程和函数的使用

    DECLARE V_CURRENT_ORG_ID NUMBER; V_ACCESS_MODE VARCHAR2(2); V_OU_COUNT NUMBER; V_ORG_ID NUMBER; V_MO ...

  4. Android官方网站

     http://wear.techbrood.com/sdk/installing/index.html?pkg=tools

  5. 使用js控制表单重复提交(1加锁,2事件方式,3 EasyUI中解决表单重复提交)

    方法一. var flag = true; $(function() { $("#interested").click(function() { beInterested(); } ...

  6. input驱动12种事件类型Event types的含义

    linux2.6 input subsystem中部分相关结构体的分析  最近在做linux2.6的键盘驱动程序的工作,接触到了input subsystem这一概念,现把我对其中相关结构体的理解写出 ...

  7. 基于Bootstrap的Metro风格模板

    这几天在看Bootstrap的一些书,这里整理一下书中的一些模板,方便以后使用. 1.BootMetro http://www.guoxiaoming.com/bootmetro/ 2.Bootswa ...

  8. MySQL学习笔记_7_MySQL常用内置函数

    MySQL常用内置函数 说明: 1)可以用在SELECT/UPDATE/DELETE中,及where,orderby,having中 2)在函数里将字段名作为参数,变量的值就是字段所对应的每一行的值. ...

  9. UE4 Hello World 创建第一个UE4工程

    首先先熟悉几个UE4常用的类 AGameMode(控制整个项目的逻辑) The GameMode defines the game being played. It governs thegame r ...

  10. Android 常用的ORM框架详解

    1. OrmLite OrmLite 不是 Android 平台专用的ORM框架,它是Java ORM.支持JDBC连接,Spring以及Android平台.语法中广泛使用了注解(Annotation ...