mysql高级之编程优化
★编程优化
一、字符编码(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高级之编程优化的更多相关文章
- 【MySQL 高级】索引优化分析
MySQL高级 索引优化分析 SQL 的效率问题 出现性能下降,SQL 执行慢,执行时间长,等待时间长等情况,可能的原因有: 查询语句写的不好 索引失效 单值索引:在 user 表中给 name 属性 ...
- mysql 高级和 索引优化,目的:查的好,查的快,性能好
1-事物隔离级别: 更新丢失, 并发情况下,对同一字段进行更新,就会出现更新丢失,采用乐观锁,比较版本号或时间戳可解决 读未提交 解决了更新丢失但是会引起脏读, 二个session.sessionA中 ...
- MySQL高级知识(八)——ORDER BY优化
前言:在使用order by时,经常出现Using filesort,因此对于此类sql语句需尽力优化,使其尽量使用Using index. 0.准备 #1.创建test表. drop table i ...
- MySQL高级知识(六)——索引优化
前言:索引优化的目的主要是让索引不失效,本篇通过相关案例对索引优化进行讲解. 0.准备 创建经典的tb_emp表. DROP TABLE IF EXISTS `tb_emp`; CREATE TABL ...
- MySQL高级查询与编程作业目录 (作业笔记)
MySQL高级查询与编程笔记 • [目录] 第1章 数据库设计原理与实战 >>> 第2章 数据定义和操作 >>> 2.1.4 使用 DDL 语句分别创建仓库表.供应 ...
- MySQL高级查询与编程笔记 • 【目录】
章节 内容 实践练习 MySQL高级查询与编程作业目录(作业笔记) 第1章 MySQL高级查询与编程笔记 • [第1章 数据库设计原理与实战] 第2章 MySQL高级查询与编程笔记 • [第2章 数据 ...
- MySQL高级优化
MySQL高级 1.索引是什么? (1)索引是排好序可以快速查找的数据结构 (2)方便快速查找,索引实际上也是一张表所以也是要占内存的 2.索引存在哪里? (1)InnoDB引擎 ①索引是和数据存放在 ...
- 「MySQL高级篇」explain分析SQL,索引失效&&常见优化场景
大家好,我是melo,一名大三后台练习生 专栏回顾 索引的原理&&设计原则 欢迎关注本专栏:MySQL高级篇 本篇速览 在我们上一篇文章中,讲到了索引的原理&&设计原则 ...
- mysql高级day3
Mysql高级-day03 1. 应用优化 前面章节,我们介绍了很多数据库的优化措施.但是在实际生产环境中,由于数据库本身的性能局限,就必须要对前台的应用进行一些优化,来降低数据库的访问压力. 1.1 ...
随机推荐
- 海量数据挖掘MMDS week2: LSH的距离度量方法
http://blog.csdn.net/pipisorry/article/details/48882167 海量数据挖掘Mining Massive Datasets(MMDs) -Jure Le ...
- Android性能优化之TraceView和Lint使用详解
Android lint工具是Android studio中集成的一个代码提示工具,它主要负责对你的代码进行优化提示,包括xml和java文件,很强大.编写完代码及时进行lint测试,会让我们的代码变 ...
- ibatis 数据库时间 插入数据
<insert id="insert" parameterClass="ToDoBar" > <selectKey resultCla ...
- Linux学习笔记 --iptables防火墙配置
iptables防火墙配置 一.防火墙简介 1.功能: 1)通过源端口,源IP地址,源MAC地址,包中特定标记和目标端口,IP,MAC来确定数据包是否可以通过防火墙 2)分割内网和外网[附带的路由器的 ...
- opencv读写视频,对感兴趣区域进行裁剪
作为小码农,本人最近想对一段视频的某个区域进行处理,因此要将该段视频区域裁剪出来,搜搜网上,发现没有痕迹,是故自己琢磨一下,左右借鉴,编了如下代码,目标得以实现,希望对你有用. #include &q ...
- 【Android 应用开发】Android UI 设计之 TextView EditText 组件属性方法最详细解析
. 作者 :万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/18964835 . TextView 相关类的继承结构 ...
- Java的依赖注入(控制反转)
两个主角"依赖注入"和"控制反转": 1.二都说的都是同一件事,只是叫法不同.是一个重要的面向对象编程的法则,也是一种设计模式: 2.英文原称:依赖注入,Dep ...
- eclipse 设置maven来自动下载源码与doc
通常我们通过maven来使用各种库文件,想要真正了解别人的类实现方法,需要查看别人的源码,maven给我们提供了这个便利,它不仅可以下载各种库文件,还会下载对应的源码和doc文档. 一.在工具栏找到W ...
- unity用PUN进行信息交互模块
using UnityEngine; using System.Collections.Generic; public class MessageChat : Photon.MonoBehaviour ...
- linux打包压缩常用命令
打包: zip gzip bzip2 tar xz //rar zip 包 zip xxx.zip test.c 压缩 unzip xxx.zip ...