博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mysql 数据库优化
阅读量:5088 次
发布时间:2019-06-13

本文共 3553 字,大约阅读时间需要 11 分钟。

1、mysql基础操作

2、常用的sql技巧

3、sql语句优化

4、mysql数据库优化

5、myisam表锁

6、mysql服务器优化

 

一、mysql基础操作

1.1 mysql 表复制

复制表结构+复制表数据

mysql > create table t3 like t1;mysql > insert into t3 select * from t1;

1.2 mysql 索引

1、alter table 用来创建普通索引,unique索引或者parimary key索引

alter table tab_name add index index_name(column_list) //普通索引alter table tab_name add unique(column_list) //唯一索引alter table tab_name add primary key(column_list) //主键索引

2、create index 

create index index_name on table_namecreate unique index index_name on table_name

3、drop index

drop index index_name on table_name;

4、alter table table_name drop 

alter table table_name drop index index_name;alter table table_name drop primary key;

 

1.3 mysql 视图

创建视图

mysql > create view view_name as select * from table_name;//view 视图的帮助信息mysql > ? view alter view create viewdrop view//查看视图msql > show tables;//删除视图mysq > drop view view_name;

  

1.4 mysql 内置函数

字符串函数

concat(string1,string2) //连接字符串 select concat('hello','world') as myname; 

LCASE(string1) // 转换成小写 select lcase('mysq') as myname

UCASE(string1) //转换成大写  

Length(string1) //string1 长度

ltrim(string1) //去除左边空格

rtirm(string1) //去除右边空格

repeat(string1,count) //把string1 重复 count 次数

replace(string,search_str,replace_str) // 在str中用relace_str替换search_str

substing(string,pos,length) // 从str的pos开始取出length个字符

space(count) //生成count个空格

数学函数

BIN(decimal_number) //十进制转二进制

ceilling(number) //向上取整

floor(number) //向下取整

max(column) //取最大值 ,聚合使用

min(column) // 取最小值 ,聚合使用

sqrt(number) // 开方

rand() //返回0-1的随机数   随机排列 select * from t1 order by rand();

 

日期函数

curdate() //返回当前日期

curtime() //返回当前时间

now() //返回当前日期时间

unix_timestamp(date) //返回时间戳

from_unixtime() //返回时间戳中的日期值

week(date) //返回日期date一年中的第几周

year(date) //返回日期date中的年份

datediff(d1,d2) //计算日期d1与d2之间相隔的天数

1.5 mysq预处理语句

设置smtm1预处理,传递一个数据作为where判断的条件:

mysql>prepare smtm1 from 'select * from table_name where id >@i';//设置一个变量:mysql > set @i = 1;//执行stm1 预处理mysql > execute smtm1 using @i;//设置@i = 5mysql > set @i = 5;//再次执行smtm1 预处理mysql > execute smtm1 using @1;//如何删除预处理mysql > drop prepare smtm1;

1.6 mysql 事务处理

// 关闭自动提交功能mysql > set autocommit;//从表t1中删除一条记录mysql > delete from t1 where id =1;//此时做一个p1还原点mysql > savepoint p1;//再次从t1中删除一条记录mysql > delete from t1 where id =2;//再做一个p2还原点mysql > savepoint p2;//此时恢复到p1还原点mysql > rollback p1;//退回到最原始的还原点mysql > rollback;

  

1.7 mysql存储过程

创建一个存储p2();

mysql> \d //; 改变界定符mysql> create procedure p2()-> begin-> set @i = 1;-> while @i<100 do -> insert into t2(name) values(concat('user',@i));-> @i = @i +1;-> end while ;-> end ////执行储存 p2();mysql > \d ;mysql > call p2;//查看procedure p2的status 信息mysql > show procedure status \G//查看procedure 的具体信息mysql > show create procedure p2 \G

  

1.8 mysql触发器 (trriger)

//修改delimiter 为  //mysql > \d //;//创建一个名字为tg1的触发器,当向表t1插入一行数据的时候也向t2插入一条相同的数据mysql > create trigger tg1 before insert on t1 for each row ->begin->insert into t2(name) values (new.name);->end ////查看创建好的triggermysql->show triggers;//向t1表中插入多条数据mysql->insert into t1(name) values ('user1'),('user2') .... ;//如何制作删除表t1后t2表中的数据也跟着删除mysql > \d //mysql > create trigger tg2 before delete on t2 for each row->begin->delete from t2 where id = old.id;->end //mysql>\d ;//如何制作更改表t1后t2表中的记录跟着改变呢?mysql > \d //;mysql > create trigger tg3 before update t1 for each row->begin->update t2 set id = new.id where id = old.id->end //

1.9 重排auto_increment

Mysql 数据库自动增长的Id如何恢复

清空表的时候,不能用

delete from table_name;

而是要用:

truncate table table_name;

这样auto_increment 就恢复成1了;

或者清空内容后直接用alter命令修改表:

alter table table_name auto_increment =1 ;  

  

转载于:https://www.cnblogs.com/EasonSun/p/3193094.html

你可能感兴趣的文章
web服务器
查看>>
第一阶段冲刺06
查看>>
EOS生产区块:解析插件producer_plugin
查看>>
JS取得绝对路径
查看>>
排球积分程序(三)——模型类的设计
查看>>
HDU 4635 Strongly connected
查看>>
格式化输出数字和时间
查看>>
页面中公用的全选按钮,单选按钮组件的编写
查看>>
java笔记--用ThreadLocal管理线程,Callable<V>接口实现有返回值的线程
查看>>
(旧笔记搬家)struts.xml中单独页面跳转的配置
查看>>
不定期周末福利:数据结构与算法学习书单
查看>>
strlen函数
查看>>
python的列表与shell的数组
查看>>
关于TFS2010使用常见问题
查看>>
软件工程团队作业3
查看>>
火狐、谷歌、IE关于document.body.scrollTop和document.documentElement.scrollTop 以及值为0的问题...
查看>>
nodejs fs路径
查看>>
动态规划算法之最大子段和
查看>>
linux c:关联变量的双for循环
查看>>
深入浅出理解zend framework(三)
查看>>