mysql设计-优化
mysql表复制
1.复制表结构
create table student like user;
2.复制表内容
insert into t3 select * from t1;
mysql索引
1.查看索引
show index from user\G
2.普通索引
1)创建
create index i_age on user(age);
2)删除
drop index i_age on user;
3.唯一索引
1)create unique index u_username on user(username);
2)drop index u_username on user;
4.主键索引
--去除auto_increment 主键不能modify
alter table user modify id int unsigned;
1)创建(要自增必须主键)
alter table table_name add primary key (column_list)
2)删除
alter table table_name drop index index_name
alter table table_name drop primary key
mysql视图
视图相当于截图 会随着表变化而变化 没有存储任何数据
1.创建
create view userclass as select user.username,user.age,class.name from user,class where user.class_id=class.id;
2.删除
drop view userclass;
3.查看
show tables ;
- select * from userclass;
mysql查看表中未来的自增数
show create table user;
mysql内置函数
1.mysql字符串函数
CONCAT(string [,...]) //连接字符串
LCASE(string2) //转换成小写
UCASE(string2) //转换成大写
LENGTH(string) //string长度
LTRIM(string2) //去除前端空格
RTRIM(string2) //去除后端空格
REPEAT(string2,count) //重复count次
REAPEAT(str,search_str,replace_str) //在str中用replace_str替换search_str
SUBSTRING(str,position,[,length]) //position开始 取length个字符
SPACE(count) //生成count个空格
2.数学函数
bin() //把某一个数转换为二进制
ceiling() //取上一个整数
floor() //取下一个整数
select floor(10.5);
max() //取最大整数
select max(id) from user;
min() //取最小整数
sqrt() //平方根
rand() //随机数
3.日期函数
curdate()
curtime()
now()
unix_timestamp()
from_unixtime()
week(date)
year(date)
datediff()
mysql
sql语句优化
1)优化SQL语句的一般步骤
2)索引优化
3)check与optimize使用方法
4)常用sql优化
检查服务器增删查改使用频次 自启动以来
show status like "%InnoDB_rows%";
通过show status命令了解各种sql执行效率
格式:show[session|global]status;
session(默认)表示当前连接
global表示自数据库启动至今
show status;
show global status;
show status like 'Com_%';
show global status like 'Com_%';
定位执行效率较低的sql语句
1.explain或desc定位一条sql语句的影响行数
desc select * from user where id=1\G
desc select * from user where username='weizai'\G
mysql慢查询
1.查看慢查询次数
show status like "%quer%";
Slow_queries | 0
2.修改慢查询时间(my.ini)
long_query_time=6
show variables like "%query%";
附录:批量插入数万条测试数据(存储过程)
mysql> delimiter $$
mysql> create procedure ptest()
-> begin
-> declare pid int ;
-> set pid = 1000000;
-> while pid>0 do
-> insert into ...... --插入语句
-> set pid = pid-1;
-> end while;
-> end $$
mysql> delimiter ;
mysql> call myFunction();//调用存储过程
优化表空间:
1.optimize table sales;
1).myisam表没有问题
2).innodb表ibdata1文件无法回收空间
索引
create index ind_company2_name on company2(name(4))
索引的存储分类
1).myisam
2).innodb
索引用于快速找出某个列中有特定值的行 对相关列使用索引是提高select操作性能的最佳途径
1.使用索引
1)对于创建的多列索引 只要查询的条件中用到最左边的列
索引一般会被使用
如下复合索引(比较少)
create index ind_sales2_com_mon on sales2(company_id,moneys);
然后按照company_id进行查询 发现使用了复合索引
explain select * from sales2 where company_id=2006\G
使用下面的查询就没有使用到复合索引
explain select * from sales2 where moneys=1\G
2)like关键词
当使用like进行搜索时 %在前索引可能会失效
desc select * from student_big where username like '%inux%'\G
desc select * from student_big where username like 'linux%'\G
3)如果对大的文本进行搜索 使用全文索引而不使用like % %
4)如果列名是索引 使用column_name is null将使用索引
mysql设计-优化的更多相关文章
- MYSQL设计优化
本文将从各方面介绍优化mysql设计的一些方式. 1.优化sql语句 (1)定位须要优化的sql语句 1)show status统计SQL语句频率 对Myisam和Innodb存储引擎都计数的參数: ...
- Mysql数据库优化
to be add... --------------------------------------------------------------------------------------- ...
- Mysql数据库优化总结2
说明:本文的环境为CENTOS 5.5 64 Bit /Mysql 5.1.50 简介:使用Mysql有一段时间了,期间做了不少关于Mysql优化.设计.维护的工作,这两天有时间做一下简单的总结,方便 ...
- MySQL性能优化总结___本文乃《MySQL性能调优与架构设计》读书笔记!
一.MySQL的主要适用场景 1.Web网站系统 2.日志记录系统 3.数据仓库系统 4.嵌入式系统 二.MySQL架构图: 三.MySQL存储引擎概述 1)MyISAM存储引擎 MyISAM存储引擎 ...
- mysql数据库优化课程---3、数据库设计是什么
mysql数据库优化课程---3.数据库设计是什么 一.总结 一句话总结: 就是设计各个字段及各个字段类型 1.char,varchar,text同存'ABC'的存储空间为多少? char(255): ...
- MySQL性能优化(二):优化数据库的设计
原文:MySQL性能优化(二):优化数据库的设计 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.n ...
- mysql设计与优化以及数据库表设计与表开发规范
一.设计问题? 1.主键是用自增还是UUID ? Innodb 中的主键是聚簇索引. 如果主键是自增的,那么每次插入新的记录,记录就会顺序添加到当前索引节点的后续位置,当一页写满,就会自动开辟一个新的 ...
- MySQL数据库优化、设计与高级应用
MySQL数据库优化主要涉及两个方面,一方面是对SQL语句优化,另一方面是对数据库服务器和数据库配置的优化. 数据库优化 SQL语句优化 为了更好的看到SQL语句执行效率的差异,建议创建几个结构复杂的 ...
- Mysql学习总结(17)——MySQL数据库表设计优化
1.选择优化的数据类型 MySQL支持很多种不同的数据类型,并且选择正确的数据类型对于获得高性能至关重要.不管选择何种类型,下面的简单原则都会有助于做出更好的选择: (1).更小通常更好 一般来说,要 ...
随机推荐
- 用Dos黑窗口运行Cmd命令
public class BlackWindow { private static BlackWindow _instance; public static BlackWindow Instance ...
- Angular4中利用promise异步加载gojs
GoJS是一个实现交互类图表(比如流程图,树图,关系图,力导图等等)的JS库 gojs提供了angular的基本例子,不过是离线版 https://github.com/NorthwoodsSoftw ...
- zabbix监控MySQL部署实战
1.部署zabbix监控. 1.1 建用户组和用户 groupadd zabbix useradd -d /home/zabbix -g zabbix -m zabbix passwd zabbix ...
- PHP配置数据库XML文件
<?php $doc=new DOMDocument('1.0','utf-8'); //new一个dom对象 $doc->load("config.xml"); 加载 ...
- SpringAOP02 自定义注解
1 自定义注解 1.1 创建自定义注解 从java5开始就可以利用 @interface 来定义自定义注解 技巧01:注解不能直接干扰程序代码的运行(即:注解的增加和删除操作后,代码都可以正常运行) ...
- SQL SERVER 2008权限配置
我要的结果是这样:只能有查询表的权限,而且还要有运行SQL Server Profiler的权限.这样才能跟踪发现问题,当然解决问题是另外一回事,即不能有修改和更新存储过程的权限. 我在分配角色成员时 ...
- linux的deamon后台运行
有的时候需要将程序一直跑在后台,比如一些服务类代码,或者一些监控类代码.使用deamon是正确的一种思路. 以前我们在看<unix环境高级编程>的时候,有专门的整章详细介绍如何编写一个后台 ...
- ./configure 交叉编译库时所最常用到的配置
./configure 交叉编译,一般流程 ./configure xxx make make instal 结合我自己的编译工具,一般我的编译选项如下 ./configure --prefix=in ...
- Luogu 3350 [ZJOI2016]旅行者
BZOJ 4456 听若干个大佬讲过$n$遍终于写掉了. 我把时限基本上跑满了2333…… 分治 + 最短路. 首先我们去分治这个矩形格子,找到一条长边把它对半切,对切开的边上的每一个点跑一遍最短路然 ...
- ESP8266文档阅读ESP8266 SDK 入门指南
ESP8266 SDK 入门指南 1.概述 1.2.ESP8266 HDK 1.3.ESP8266 SDK 1.4.ESP8266 FW 1.5.ESP8266 工具集 2.1.开发板方案 3.软件 ...