mysql 语句其它及优化
将检索到的数据保存到文件
Select * into outfile ‘文件地址’ from tabname;
生成的文件以制表符区分字段,以换行符区分记录
为满足特殊需求会采用不同的分割方式。
支持在导出时设置 字段,行分隔符
通过设置如下选项:
Fiels:字段分割符选项
lines:行记录分割符
默认值:
字段:fields terminated by ‘\t’ enclosed by ‘’
escaped by ‘\\’ (字段用什么包裹)
记录: lines terminated by ‘\n’ starting by
‘’
select * into outfile 'E:cjb.txt' fields terminated by ',' lines terminated by '\n' starting by '->' from cj;
注意如果是是二进制数据
用dumpfile不做任何转义换行处理 也适用于非二进制数据
导入数据
Load data infile ‘文件地址’ into table tblname
考虑到数据冲突,利用主键自增 导出时主键设为Null(添加一列null)
插入时可以用更新式的语法
insert into msg (id,name) values(1,'ff');
insert into msg set id=1,name='ff';
插入时如果主键已存在的(主键更新)
比如
insert into msg (id,name) values(1,'ff'); //报错
insert into msg values(1,'php') on duplicate key update name='php';
replace into msg values(1,'php');
替换一个不存在的也可以
表数据复制
insert into msg (name) select name from msg
Delete
允许使用条件
Where,limit ,order by
Delete from teacher order by days limit 10
允许连接删除
允许使用类似的join语法
同时删除多了表内的记录
Delete from tb1,tb2 using tb1 join tb2 on tb1.id=tb2.id where tb1.id=1;
也可以分别删除,多条语句组合删除
删除表数据
Delete from tb1
操作成功的话,提示几条数据影响到,不影响自增的主键id,比如删除前最大id=3,
删除后再插入数据,Id从4开始
Truncate
重建自动增长的主键,再插入数据时从1开始,不烦胡删除的记录数
Delete逐行删除
Truncate:删除表,新建表,比delete快
更新数据
Update也支持多表同时更新
Update t1 join t2 on t1.x=t2.x set t1.x=,t2.x= where cond;
支持order by limit
备份和还原
对于mysiam表表的数据结构全在.frm .MYD .MYI
直接文件备份拷贝就行
mysql优化
a.表的设计合理(符合3NF)
b.添加适当的索引(普通索引,主键索引,唯一索引,全文)
c.分表技术(水平,垂直分割)
d.读写分离
e.存储过程
创建存储过程或函数时
报错
This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA
in its declaration and binary logging is enabled
(you *might* want to use the less safe log_bin_trust_function_creators variable)n_trust_function_creators variable)
这是我们开启了bin-log, 我们就必须指定我们的函数是否是
1 DETERMINISTIC 不确定的
2 NO SQL 没有SQl语句,当然也不会修改数据
3 READS SQL DATA 只是读取数据,当然也不会修改数据
4 MODIFIES SQL DATA 要修改数据
5 CONTAINS SQL 包含了SQL语句
其中在function里面,只有 DETERMINISTIC, NO SQL 和 READS SQL DATA 被支持。如果我们开启了 bin-log, 我们就必须为我们的function指定一个参数。
解决方法:
show variables like 'log_bin_trust_function_creators';
OFF
set global log_bin_trust_function_creators=1;
show variables like 'log_bin_trust_function_creators';
ON
这样添加了参数以后,如果mysqld重启,那个参数又会消失,因此记得在my.cnf(linux下) 或者my.ini(windows下)配置文件中添加:
log_bin_trust_function_creators=1
-----------------------
mysql慢查询配置
mysql会记录所有执行超过long_query_time参数设定时间阀值的sql语句,慢查询日志就是这些sql的日志
在Mysql配置文件里(windows下My.ini,linux下my.cnf)
里的mysqld的下面添加
log_slow_queries="D:\wamp\bin\mysql\mysql5.5.28\mylog\slowquery.log"
long_query_time=1
log-queries-not-using-indexes(如果查询的sql没使用索引(无论表有没有索引),也会被记录)
mysql 语句其它及优化的更多相关文章
- php代码优化,mysql语句优化,面试需要用到的
首先说个问题,就是这些所谓的优化其实代码标准化的建议,其实真算不上什么正真意义上的优化,还有一点需要指出的为了一丁点的性能优化,甚至在代码上的在一次请求上性能提升万分之一的所谓就去大面积改变代码习惯, ...
- MySql数据库3【优化2】sql语句的优化
1.SELECT语句优化 1).利用LIMIT 1取得唯一行[控制结果集的行数] 有时,当你要查询一张表是,你知道自己只需要看一行.你可能会去的一条十分独特的记录,或者只是刚好检查了任何存在的记录数, ...
- 老李分享:MySql的insert语句的性能优化方案
老李分享:MySql的insert语句的性能优化方案 性能优化一直是测试人员比较感兴趣的内容,poptest在培训学员的时候也加大了性能测试调优的方面的内容,而性能优化需要经验的积累,经验的积累依 ...
- MySql基础笔记(二)Mysql语句优化---索引
Mysql语句优化--索引 一.开始优化前的准备 一)explain语句 当MySql要执行一个查询语句的时候,它首先会对语句进行语法检查,然后生成一个QEP(Query Execution Plan ...
- Mysql语句优化
总结总结自己犯过的错,网上说的与自己的Mysql语句优化的想法. 1.查询数据库的语句的字段,尽量做到用多少写多少. 2.建索引,确保查询速度. 3.orm框架自带的方法会损耗一部分性能,这个性能应该 ...
- mysql语句优化方案(网上流传)
关于mysql处理百万级以上的数据时如何提高其查询速度的方法 最近一段时间由于工作需要,开始关注针对Mysql数据库的select查询语句的相关优化方法. 由于在参与的实际项目中发现当mysql表的数 ...
- DB-MySQL:MySQL 语句性能优化
ylbtech-DB-MySQL:MySQL 语句性能优化 1.返回顶部 1. MySQL概述1.数据库设计 3范式2.数据库分表分库---会员系统() 水平分割(分页如何查询)MyChar .垂直3 ...
- mysql语句优化原则
有时候发现数据量大的时候查询起来效率就比较慢了,学习一下mysql语句优化的原则,自己在正常写sql的时候还没注意到这些,先记录下来,慢慢一点一点的学,加油! 这几篇博客写的都可以: https:// ...
- 《MySQL慢查询优化》之SQL语句及索引优化
1.慢查询优化方式 服务器硬件升级优化 Mysql服务器软件优化 数据库表结构优化 SQL语句及索引优化 本文重点关注于SQL语句及索引优化,关于其他优化方式以及索引原理等,请关注本人<MySQ ...
随机推荐
- Spring Data Jpa真爽啊
http://www.ibm.com/developerworks/cn/opensource/os-cn-spring-jpa/ 持久层的实现类可以让框架生成.只需要声明持久层接口,框架直接生成代理 ...
- Ibatis 异常:Unable to open connection to "oledb , provider V2.0.0.0 in framework .NET V2.0".
在实际项目中使用了ibatis,然后在开发过程中遇到一些问题,最严重的就是这个“Unable to open connection to "Microsoft SQL Server, pro ...
- 用imageNamed加载图片产生的问题
通常我们会用imageNamed:来加载图片,但是用这个API有个问题,就是它会缓存加载的image. 因此,对于那些被重用的图片,这个API很高效.但是对于那些使用很少的图片,用这个就很耗内存,那怎 ...
- windows 测试数据库的连接状况-udl方法
udl是windows系统上,用于测试数据库的连接状态的测试软件. 使用方法: 1.建立一个空白文本 2.将文件的后缀名更改为*.udl 即可 文件内容一定为空 3.选择windows的“提供 ...
- [ CodeVS冲杯之路 ] P1368
不充钱,你怎么AC? 题目:http://codevs.cn/problem/1368/ 嗯……泡泡堂,很劲啊,其实就是个盗版的田忌赛马 http://www.cnblogs.com/hyfer/p/ ...
- THE ONE THING PEOPLE WILL MASSIVELY OVERPAY FOR (有一个东西人们是愿意出高价购买的)
THE ONE THING PEOPLE WILL MASSIVELY OVERPAY FOR有一个东西人们是愿意出高价购买的 by GARY VAYNERCHUK 点此直达湾区日报简评 I don' ...
- CA提供的身份认证配置弃用
场景:从CA网站登录,在CA主页点击我们集成到CA的业务系统图标进行跳转,发现业务系统登录过身份(没cookies),身份认证自动使用 url,跳转到CA登录页,造成二次登录 [Authorize] ...
- Centos linux php扩展安装步骤
使用phpinfo()函数输出PHP信息,然后找到Configuration File (php.ini) apachectl 其设计意图是帮助管理员控制Apache httpd后台守护进程的功能. ...
- ViewPager撤消左右滑动切换功能
ViewPager取消左右滑动切换功能 最近做项目要求某种情况下ViewPager不能滑动,那么我们只需要重写这个方法就可以禁止ViewPager滑动 IndexViewPager.java: imp ...
- oracle学习系列之三 (约束)
主键约束:外键约束:唯一性约束:检查约束:默认值约束 -——————五大约束 一. 主键约束: --创建表的主键约束 create table student (student_id number ...