SQL
clypm
松弛的琴弦,永远奏不出时代的强音
展开
-
mysql获取插入后ID
mysql获取插入ID 在MySQL中,使用auto_increment类型的id字段作为表的主键。通常的做法,是通过“select max(id) from tablename”的做法,但是显然这种做法需要考虑并发的情况,需要在事务中对主表以“X锁“,待获得max(id)的值以后,再解锁。 www.2cto.com 这种做法需要的步骤比较多,有些麻烦,而且并原创 2015-06-11 16:21:30 · 1755 阅读 · 0 评论 -
mysql创建存储过程
一、变量的使用1.用户变量:以”@”开始,形式为”@变量名。” 用户变量跟MySQL客户端是绑定的,设置的变量,只对当前用户使用的客户端生效,使用如下图: 2.全局变量:定义时,以如下两种形式出现,set GLOBAL 变量名 或者 set @@global.变量名。show global variables; 对所有客户端生效。只有具有super权限才可以设置全局变原创 2017-05-15 16:23:53 · 453 阅读 · 0 评论 -
SQL优化
1. 优化SQL步骤1. 通过 show status和应用特点了解各种 SQL的执行频率 通过 SHOW STATUS 可以提供服务器状态信息,也可以使用 mysqladmin extende d-status 命令获得。 SHOW STATUS 可以根据需要显示 session 级别的统计结果和 global级别的统计结果。 如显转载 2014-09-03 16:54:08 · 533 阅读 · 0 评论 -
详解MySQL中EXPLAIN解释
explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。使用方法,在select语句前加上explain就可以了:EXPLAIN列的解释:table:显示这一行的数据是关于哪张表的type:这是重要的列,显示连接使用了何种类型。从最好到最差的连接类型为const、eq_reg、ref、range、indexh原创 2015-02-27 14:20:43 · 429 阅读 · 0 评论 -
使用数据库索引的优点与缺点
优点:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构,作为通用规则,只有当经常查询索引列中的数据时,才需要在表上创建索引。索引占用磁盘空间,并且降低添加、删除和更新行的速度。在多数情况下,索引用于数据检索的速度优势大大超过它的。缺点:建立太多的索引将会影响更新和插入的速度,因为它需要同样更新每个索引文件。对于一个经常需要更新和插入的表原创 2015-03-02 11:33:52 · 1158 阅读 · 0 评论 -
MySQL 学习笔记--架构
1、MySQL服务器逻辑架构图:第一层:该服务并不是MySQL所独有的,大多数基于网络的客户端/服务器的工具或者服务都有的类似的架构。比如连接处理、授权认证、安全等等。第二层:MySQL的核心服务功能,包括查询解析、分析、优化、缓存以及所有的内置函数(日期、时间、加密),所有跨存引擎的功能都在这里实现:存储过程、触发器、视图等。第三层:BDB(页级)、MyISAM(表级:可读不可写原创 2015-03-17 13:38:17 · 414 阅读 · 0 评论 -
mysql show processlist 性能解析详解
查看当前连接数命令: show processlist; 如果是root帐号,你能看到所有用户的当前连接。如果是其它普通帐号,只能看到自己占用的连接。 show processlist;只列出前100条,如果想全列出请使用show full processlist; mysql> show processlist;说明各列的含义和用途,id列:一个标识,你要kill原创 2015-04-03 14:38:30 · 897 阅读 · 0 评论 -
mysql 优化之开启慢查询并分析原因
首先查看log_output参数,确认日志信息输出到操作系统文件还是数据库的表中:mysql> show variables like 'log_output';+---------------+-------+| Variable_name | Value |+---------------+-------+| log_output | FILE |+------原创 2016-05-13 11:25:29 · 736 阅读 · 0 评论 -
mysql binlog介绍、日志格式、数据查看等
(一) binlog介绍binlog,即二进制日志,它记录了数据库上的所有改变,并以二进制的形式保存在磁盘中;它可以用来查看数据库的变更历史、数据库增量备份和恢复、Mysql的复制(主从数据库的复制)。(二) binlog格式binlog有三种格式:Statement、Row以及Mixed。–基于SQL语句的复制(statement-based replication,SBR), –基于行的复制(...原创 2018-06-06 19:29:03 · 2134 阅读 · 0 评论 -
java解析 mysql binlog
在进入正题之前,我们需要知道binlog的event的类型,先来看看自己binlog文件有哪些?其中红色部分为event_type。binlog event 的类型有很多,具体可以参见mysql官方文档:http://dev.mysql.com/doc/internals/en/event-meanings.html(一)Open Replicator中相关的Event类与接口Open Repli...转载 2018-06-06 19:30:12 · 10581 阅读 · 0 评论 -
select for update 行级锁,表级锁
MySQL 使用SELECT ... FOR UPDATE 做事务写入前的确认以MySQL 的InnoDB 为例,预设的Tansaction isolation level 为REPEATABLE READ,在SELECT 的读取锁定主要分为两种方式:SELECT ... LOCK IN SHARE MODE SELECT ... FOR UPDATE这两种方原创 2016-02-15 17:07:24 · 1799 阅读 · 0 评论 -
SQL查询重复记录操作
删除重复记录的SQL语句1.用rowid方法2.用group by方法3.用distinct方法 1。用rowid方法据据oracle带的rowid属性,进行判断,是否存在重复,语句如下: 查数据: select * from table1 a where rowid !=(select max(rowid)原创 2014-06-05 15:10:39 · 439 阅读 · 0 评论 -
50个常用sql语句
Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 问题: 1、查询“”课程比“”课程成绩高的所有学生的学号; SELECT a.S# FROM (SELECT s#,score FROM S转载 2014-06-03 10:19:01 · 515 阅读 · 0 评论 -
Mysql 多表查询详解
选择重复,消除重复和选择出序列 有例表:emp emp_no name age 001 Tom 17 002 Sun 14 003 Tom 15 004 Tom 1转载 2014-03-24 14:36:45 · 6499 阅读 · 0 评论 -
SQL Server 语法
oracle的建表sql转成sqlserver的建表sql时的注意点 :1.所有的comment语句需要删除。2.clob类型转换为text类型。3.blob类型转换为image类型。4.number类型转换为int,number(16,2)等转换为decimal(16,2),number(18)转换为bigint。5.default sysdate改为default getD原创 2014-03-20 14:09:57 · 648 阅读 · 0 评论 -
SQL Server触发器创建、删除、修改、查看
教程贴士:本教程为大家介绍SQL Server触发器创建、删除、修改、查看方法。 一:触发器是一种特殊的存储过程,它不能被显式地调用,而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活。所以触发器可以用来实现对表实施复杂的完整性约束。 二:SQL Server为每个触发器都创建了两个专用表:Inserted表和Deleted表。这两个表由系统来维护,它们存在于内存中而转载 2016-04-04 18:58:44 · 430 阅读 · 0 评论 -
从一个表中查数据,插入另一个表
其实很简单,只是为了忘记,做个记录,用的时候方便。 不管是在网站开发还是在应用程序开发中,我们经常会碰到需要将MySQL或MS SQLServer某个表的数据批量导入到另一个表的情况,甚至有时还需要指定导入字段。 本文就将以MySQL数据库为例,介绍如何通过SQL命令行将某个表的所有数据或指定字段的数据,导入到目标表 中。此方法对于SQLServer数据库,也就是T原创 2016-04-04 18:55:56 · 5073 阅读 · 0 评论 -
SQL删除重复数据只保留一条
用SQL语句,删除掉重复项只保留一条在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select peopleId from people group by peopleId havi转载 2016-04-04 18:53:51 · 697 阅读 · 0 评论 -
mysql索引总结
关于MySQL索引的好处,如果正确合理设计并且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。对于没有索引的表,单表查询可能几十万数据就是瓶颈,而通常大型网站单日就可能会产生几十万甚至几百万的数据,没有索引查询会变的非常缓慢。还是以WordPress来说,其多个数据表都会对经常被查询的字段添加索引,比如wp_comments表中针对5个字段设计了BTR转载 2016-04-05 13:53:09 · 269 阅读 · 0 评论 -
Mysql 语句执行顺序
一 创建表创建一个表:CREATE TABLE `flower` ( `id` int(11) NOT NULL AUTO_INCREMENT, `color` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1插入转载 2016-07-21 15:35:29 · 380 阅读 · 0 评论 -
MySql按周,按月,按日分组统计数据
知识关键词:DATE_FORMATSELECT DATE_FORMAT(created_date,'%Y-%m-%d') as time,sum(money) money FROM o_finance_detail where org_id = 1000 GROUP BY timeSELECT DATE_FORMAT(created_date,'%Y-%m') as time,s原创 2016-08-11 15:33:00 · 9621 阅读 · 1 评论 -
Java数据类型和MySql数据类型对应表
java mysql 数据类型对照类型名称显示长度数据库类型JAVA类型JDBC类型索引(int)描述 VARCHARL+NVARCHARjava.lang.String12 CHARN原创 2015-04-02 14:26:08 · 264 阅读 · 0 评论 -
利用Canal完成Mysql数据同步Redis
流程Canal的原理是模拟Slave向Master发送请求,Canal解析binlog,但不将解析结果持久化,而是保存在内存中,每次有客户端读取一次消息,就删除该消息。这里所说的客户端,就需要我们写一个连接Canal的程序,持续从Canal获取数据。步骤一、配置Canal参考https://github.com/alibaba/canal【mysql配置】1,配置参数[html] view pla...转载 2018-06-06 19:31:20 · 3701 阅读 · 1 评论