`
阅读更多

一. MySQL Dump:

命令行下具体用法如下:  mysqldump -u用戶名 -p密码 -d 數據库名 表名 脚本名;

1、导出數據库為dbname的表结构(其中用戶名為root,密码為dbpasswd,生成的脚本名為db.sql)

mysqldump -uroot -pdbpasswd -d dbname >db.sql;

2、导出數據库為dbname某张表(test)结构

mysqldump -uroot -pdbpasswd -d dbname test>db.sql;

3、导出數據库為dbname所有表结构及表數據(不加-d)

mysqldump -uroot -pdbpasswd  dbname >db.sql;

4、导出數據库為dbname某张表(test)结构及表數據(不加-d)

mysqldump -uroot -pdbpasswd dbname test>db.sql;

EG: 

mysqldump  -h XXXX.XXX.XXX.XX -uUSERNAME_XXXX -pPASSWORD_XXX DBNAME TABLENAME>file.sql;

 

二. MySQL查询随机一行数据:

SELECT AAA.ID, AAA.Name, AAA.Age 
FROM MySqlTable AS AAA JOIN ( 
     SELECT ROUND(RAND() * 
            ((SELECT MAX(ID) FROM MySqlTable)-(SELECT MIN(ID) FROM MySqlTable))+ 
            (SELECT MIN(ID) FROM MySqlTable) 
     ) AS RandomID) AS BBB 
WHERE AAA.ID >= BBB.RandomID 
ORDER BY AAA.ID LIMIT 1; 

 在7W的数据量下,  查询平均花费 0.0014 秒(已测)

 

三. MySQL 查询缓存:select @@query_cache_type;

1. 要么打开缓存;

2. 要么关闭缓存;

3. 要么使用SQL的显示缓存 select SQL_CACHE user_name from users where user_id = '100';

http://blog.sina.com.cn/s/blog_75ad10100101by7j.html

 

四. MySQ Lleft(right)join筛选条件在on and与where差异:

http://xianglp.iteye.com/blog/868957

 

五. MySQL计算集合之间的差集和交集;

普通做法就是IN; 但是大数据下太慢; 所以1, 2:

1. 差集;

SELECT ID FROM (
SELECT DISTINCT A.AID AS ID FROM TABLE_A A
UNION ALL
SELECT DISTINCT B.BID AS ID FROM TABLE_B B
)TEMP GROUP BY ID HAVING COUNT(ID) = 1

 2. 交集;

SELECT ID FROM (
SELECT DISTINCT A.AID AS ID FROM TABLE_A A
UNION ALL
SELECT DISTINCT B.BID AS ID FROM TABLE_B B
)TEMP GROUP BY ID HAVING COUNT(ID) = 2

 3. .... LEFT JOIN解决问题:

http://www.cnblogs.com/cy163/archive/2008/11/03/1325400.html

 

六. MySQL死锁解决:

JAVA异常:

2014-02-11 12:20:29,947 - SYS [http-bio-52000-exec-9] ERROR  Log4jUtil.exception(Log4jUtil.java:47) 

- PreparedStatementCallback; SQL []; Deadlock found when trying to get lock; 

try restarting transaction; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Deadlock found when trying to get lock;  try restarting transaction

mysql> show processlist ;

mysql> kill mysqlprocessid;

原因: 数据批量更新时,执行一个Update语句时, 使用了一个耗时较大的SQL, SQL中用了IN, IN中的数据大约是2000条;

 

七. mysql group by order by

select * from test group by category_id order by `date`
 
select * from (select * from `test` order by `date` desc) `temp`  group by category_id order by `date` desc
第一个SQL,是基于 category_id分组后, 取分组的数据为顺序排列的第一条数据.  最后在根据每个组的数据基于date排序;
第二个SQL, 是取category_id分组中date最大的值的行, 最后再根据每个组基于date排序
 
八. 循环插入表数据
#创建测试的test表
DROP TABLE IF EXISTS test; 
CREATE TABLE test( 
    ID INT(10) NOT NULL, 
    `Name` VARCHAR(20) DEFAULT '' NOT NULL, 
    PRIMARY KEY( ID ) 
)ENGINE=INNODB DEFAULT CHARSET utf8; 

#创建生成测试数据的存储过程
DROP PROCEDURE IF EXISTS pre_test; 
DELIMITER //
CREATE PROCEDURE pre_test() 
BEGIN 
DECLARE i INT DEFAULT 0; 
SET autocommit = 0; 
WHILE i<10000000 DO 
INSERT INTO test ( ID,`Name` ) VALUES( i, CONCAT( 'Carl', i ) ); 
SET i = i+1; 
IF i%2000 = 0 THEN 
COMMIT; 
END IF; 
END WHILE; 
END; //
DELIMITER ;

#执行存储过程生成测试数据
CALL pre_test();
 
九. 查询排名:
/*表结构*/
CREATE TABLE  `t1` (                   
          `xingming` char(10) default NULL,   
          `chengji` decimal(6,2) default NULL,
           `mingci` int(3) NOT NULL,            
          KEY `t1` (xingming,chengji)            
        ) ;
/*数据*/
insert into t1 (xingming,chengji)
      values
      ('张一',50),
      ('张二',80),
      ('张三',70),
      ('张四',20),
      ('张五',90),
      ('张六',90),
      ('张七',70);
/*思路
排名是这样的
先按分数排序
如果分数一样,则并列第几名
分数不一样,则是他的顺序号
用三个变量实现
@chengji  保存成绩
@mingci 保存名次
@shunxu 保存顺序
*/
set @chengji=0;
set @mingci=1;
set @shunxu=0;
/*sql语句*/
update t1,
(select xingming,chengji,
@shunxu:=@shunxu+1,
if(chengji=@chengji,@mingci,@mingci:=@shunxu) as mingci,
@chengji:=chengji
from t1 order by chengji desc) as t2
set t1.mingci=t2.mingci
WHERE t1.xingming=t2.xingming and t1.chengji=t2.chengji;


select xingming,chengji,mingci from t1 order by mingci desc;
/*查询结果
"张四"	"20.00"	"7"
"张一"	"50.00"	"6"
"张三"	"70.00"	"4"
"张七"	"70.00"	"4"
"张二"	"80.00"	"3"
"张五"	"90.00"	"1"
"张六"	"90.00"	"1"
*/
 同理, 给每行数据返回中添加自增的ID的SQL;
SET    @VAR_Rank=0;
SELECT AA.DataColumn,
       @VAR_Rank:=@VAR_Rank+1 AS ID
FROM   TABLE_XXXXX AA
where  AA.DataColumn>1000
ORDER  BY AA.DataColumn ASC
LIMIT  100
 http://bbs.csdn.net/topics/250014224
   十. 数据库表数据备份:
#!/bin/bash

da=`date '+%Y%m%d'`
#echo "$da"
mysqldump -udbusername -ppasswd110 -h127.0.0.1 dbname tablename > /data/tablename/tablename_$da.sql
 
  • 大小: 1.8 KB
  • 大小: 1.8 KB
  • 大小: 1.9 KB
  • 大小: 1.8 KB
  • 大小: 1.9 KB
  • 大小: 1.8 KB
0
2
分享到:
评论
1 楼 greatwqs 2018-11-07  
ALTER TABLE `mydb`.`user` 
MODIFY COLUMN `CreateTime` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP,
MODIFY COLUMN `UpdateTime` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;


创建时间默认值, 更新时间默认值 + 更新默认值

相关推荐

    mysql时间函数用法集合

    网上找到的mysql时间函数用法集合,和大家分享

    技术合辑一

    携程技术合辑涵盖了互联网技术的多个重要领域,包括架构、大数据、前端、安全、运维、云计算以及数据库等。每一部分都分享了携程技术团队在实践中的经验和遇到的挑战,为开发者提供了宝贵的学习资料。 在架构篇中,...

    携程技术2018年度合辑

    3. 无线:合辑可能包含携程在移动应用开发上的经验分享,如Android和iOS平台的优化技巧、推送服务、跨平台解决方案(如React Native)等,以提供更好的用户体验。 4. 前端:前端技术部分可能涵盖Web开发的新趋势,...

    携程技术2020年度合辑.pdf

    ### 携程技术2020年度合辑知识点概览 ...综上所述,携程技术2020年度合辑涵盖了从前端开发到大数据处理,再到云计算和运维等众多领域的实践经验和最新成果,为读者提供了丰富的技术知识和实战指导。

    mysql 和sql 必知必会合辑

    本合辑涵盖了这两个主题的基础知识,旨在帮助初学者建立坚实的理论基础和实践经验。 SQL(Structured Query Language),结构化查询语言,是用于管理关系数据库的标准编程语言。无论是在小型应用程序还是大型企业级...

    互联网Java工程师岗位面试真题合辑上+下

    8. **数据库**:MySQL、Oracle等关系型数据库的使用,SQL查询优化,事务处理,索引原理,NoSQL数据库如MongoDB等的基本知识。 9. **框架知识**:Spring Boot、Spring Cloud、MyBatis等主流框架的工作原理及应用场景...

    《程序员》杂志2012年合辑2

    《程序员》杂志作为IT行业的权威读物,2012年的合辑包含了当年的重要技术趋势、深度分析和专业见解。这个合辑分为两部分,旨在为读者提供全面且深入的年度回顾,帮助他们理解当时的科技动态,提升自身的编程技能和...

    携程技术精选合辑—运维数据库风险控制1

    【MySQL 锁之源码探索】这篇文章由拥有多年数据库核心代码开发经验的姜宇祥撰写,他目前专注于携程 MySQL 的底层研发。文章深入探讨了 MySQL 数据库中的锁机制,这是保证数据库事务隔离性和数据一致性的重要手段。 ...

    数据库开发视频合辑

    自己搜集整理的比较经典的数据开发视频 郝斌数据结构自学视频、郝斌数据库(SQL Server2005)、MYSQL视频、Oracle数据库性能优化等 百度云盘分享

    2018年春节美团点评技术年货合集

    合集可能涵盖MySQL、MongoDB、Redis等数据库的优化策略,以及数据备份、恢复、事务处理等实战经验。此外,分布式数据库、NoSQL与SQL的选型对比也是可能涉及的内容。 四、大数据处理 美团点评作为生活服务平台,必然...

    美团精选合辑—测试系列1

    - **数据驱动设计**:测试用例存储在MySQL数据库中,这样做的好处是可以方便地进行测试用例的管理、执行以及后期的优化和扩展。 - **易于维护和扩展**:使用数据库存储测试用例,当需求发生变化时,只需要修改数据库...

    08cms 空白系统 3.4 简体中文UTF-8版.rar

    自定义合辑体系及合辑封面模型,合辑允许相互嵌套,允许以全站类目体系进行分类,产生类目内的合辑列表。支持内容、属性、连载等合辑。 自定义附属信息模型,可生成公告、广告、单页、友链、咨询、留言等模型,...

    08cms 基础通用系统 3.3 繁体中文BIG5版.rar

    自定义合辑体系及合辑封面模型,合辑允许相互嵌套,允许以全站类目体系进行分类,产生类目内的合辑列表。支持内容、属性、连载等合辑。 自定义附属信息模型,可生成公告、广告、单页、友链、咨询、留言等模型,...

    程序员文摘第76期-精选最有价值的文章

    程序员文摘第76期是一份涵盖多个领域的技术文章合辑,涵盖云原生、开发与运维、后端、网络空间安全、IoT、微服务、安全、数据存储、开发工具、人工智能、大数据和云计算等多个领域。 云原生: * Docker的安装:...

    08cms 基础通用系统 3.3 简体中文UTF-8版

    自定义合辑体系及合辑封面模型,合辑允许相互嵌套,允许以全站类目体系进行分类,产生类目内的合辑列表。支持内容、属性、连载等合辑。 自定义附属信息模型,可生成公告、广告、单页、友链、咨询、留言等模型,...

    CoverCMS内容管理系统 v1.1.7

    CoverCMS V1.1.7现已发布! 基于PHP+MYSQL设计,支持跨...允许多重频道共存,类目结构统一设置,对全站所有文档及合辑通用。 支持发布付费、细致到颗粒度权限控制、有限展位排队等功能。 支持页面静态与缓存,可自选

    CoverCMS内容管理系统 v1.1.7.zip

    允许多重频道共存,类目结构统一设置,对全站所有文档及合辑通用。 支持发布付费、细致到颗粒度权限控制、有限展位排队等功能。 支持页面静态与缓存,可自选内容进行动态调用、部分更新、二级缓存,支持自动定时...

Global site tag (gtag.js) - Google Analytics