- 浏览: 1898924 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
July01:
最近了解到一款StratoIO打印控件,功能如下:1、Html ...
jquery打印指定的div -
GentlemanQc:
...
quartz系列(二)spring3.2.5与quartz2.1.7集群版集成简要说明 -
静夜独窗:
你好,能说一下server.xml增加的配置是怎么影响性能的吗 ...
tomcat7.0性能优化-挑战极限精简版 -
beyondfengyu:
beyondfengyu 写道如果每个客户进程的时间不同步,时 ...
java并发(二十二)分布式锁 -
beyondfengyu:
如果每个客户进程的时间不同步,时间超前的进程是不是更容易得到锁 ...
java并发(二十二)分布式锁
本人工作中的实际应用.在采集数据的时候,要求数据采集以后,不能重复.同时也要求有多个实例同时运转,保证数据采集的连续性.因此总结了一下,做成了如下的小试验.核心代码如下:
表结构:只有3个字段
id,name,password
sql语句
1)推荐
2)不推荐,因为insert的时候select,会锁定select的表
这个SQL语句的含义是,如果插入的数据 name='phl',password='123'不存在,则执行插入;
补充:
方法1里面,之所以没有过滤。是因为没有建立name与password的联合主建;
但是这样是不是对效率产生比较大的影响了?因为我现在需要录入大量的日志信息,如果这样将索引,是不是在数据量大之后,插入的速度会受到很大的影响?因为我觉得既然是自己制定了惟一约束,那在插入每条记录的时候都需要检查一下这个记录是否在数据库中存在的吧
可以,是根据你的unique索引来决定是否过滤的
如果这样的话
你的建表语句中还需要添加
ALTER TABLE `tt`
ADD UNIQUE INDEX (`name`, `password`);才对吧
可以,是根据你的unique索引来决定是否过滤的
mysql里当然有dual了
对,MYSQL专有的.效率非常高
有的,这个代码就是我项目中使用的
表结构:只有3个字段
id,name,password
CREATE TABLE `tt` ( `Id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `password` varchar(255) DEFAULT NULL, PRIMARY KEY (`Id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
sql语句
1)推荐
insert ignore into tt(name,password) values('phl','123')
2)不推荐,因为insert的时候select,会锁定select的表
insert into tt(name,password) select 'phl','123' from dual where not exists(select * from tt where name='phl' and password='123')
这个SQL语句的含义是,如果插入的数据 name='phl',password='123'不存在,则执行插入;
补充:
方法1里面,之所以没有过滤。是因为没有建立name与password的联合主建;
评论
14 楼
gonglil
2011-01-20
但是我执行第一个方法就是insert ignore into tt(name,password) values('phl','123') 时候并未过滤啊,第二个方法是正常的。
13 楼
85977328
2011-01-06
如果你是在日志方面应用,那可以针对时间字段,进行分区,这样他判断的时候,性能不会降低
12 楼
finallygo
2011-01-06
85977328 写道
对的。否则没办法根据部分字段进行重复判断
但是这样是不是对效率产生比较大的影响了?因为我现在需要录入大量的日志信息,如果这样将索引,是不是在数据量大之后,插入的速度会受到很大的影响?因为我觉得既然是自己制定了惟一约束,那在插入每条记录的时候都需要检查一下这个记录是否在数据库中存在的吧
11 楼
85977328
2011-01-05
对的。否则没办法根据部分字段进行重复判断
10 楼
finallygo
2011-01-05
85977328 写道
finallygo 写道
如果我的语句是insert ignore into tt(name,password,update_dt) values('phl','123',now())
这样的话,它能过滤重复吗?
这样的话,它能过滤重复吗?
可以,是根据你的unique索引来决定是否过滤的
如果这样的话
你的建表语句中还需要添加
ALTER TABLE `tt`
ADD UNIQUE INDEX (`name`, `password`);才对吧
9 楼
85977328
2010-12-31
finallygo 写道
如果我的语句是insert ignore into tt(name,password,update_dt) values('phl','123',now())
这样的话,它能过滤重复吗?
这样的话,它能过滤重复吗?
可以,是根据你的unique索引来决定是否过滤的
8 楼
finallygo
2010-12-31
如果我的语句是insert ignore into tt(name,password,update_dt) values('phl','123',now())
这样的话,它能过滤重复吗?
这样的话,它能过滤重复吗?
7 楼
85977328
2010-12-28
shangtang004 写道
select 'phl','123' from dual
mysql 中有dual吗,
这不是oracle的吗
mysql 中有dual吗,
这不是oracle的吗
mysql里当然有dual了
6 楼
85977328
2010-12-28
show variables like '%char%';
你用实例设置向导,选择字符编码的时候,选UTF8就可以了
或者在my.ini里面,把上述的相关内容,设置成utf8也可以.
horseroad 写道
再请教个问题,我下载了这两天刚发布的5.5安装了之后,用 show variables like '%char%';查看字符集,结果发现都是拉丁,我本来设置的是utf8,不明白是怎么一回事。
具体结果:
| character_set_client | latin1
|
| character_set_connection | latin1
|
| character_set_database | latin1
|
| character_set_filesystem | binary
|
| character_set_results | latin1
|
| character_set_server | latin1
|
| character_set_system | utf8
具体结果:
| character_set_client | latin1
|
| character_set_connection | latin1
|
| character_set_database | latin1
|
| character_set_filesystem | binary
|
| character_set_results | latin1
|
| character_set_server | latin1
|
| character_set_system | utf8
你用实例设置向导,选择字符编码的时候,选UTF8就可以了
或者在my.ini里面,把上述的相关内容,设置成utf8也可以.
5 楼
horseroad
2010-12-27
再请教个问题,我下载了这两天刚发布的5.5安装了之后,用 show variables like '%char%';查看字符集,结果发现都是拉丁,我本来设置的是utf8,不明白是怎么一回事。
具体结果:
| character_set_client | latin1
|
| character_set_connection | latin1
|
| character_set_database | latin1
|
| character_set_filesystem | binary
|
| character_set_results | latin1
|
| character_set_server | latin1
|
| character_set_system | utf8
具体结果:
| character_set_client | latin1
|
| character_set_connection | latin1
|
| character_set_database | latin1
|
| character_set_filesystem | binary
|
| character_set_results | latin1
|
| character_set_server | latin1
|
| character_set_system | utf8
4 楼
85977328
2010-12-27
horseroad 写道
insert ignore into tt(name,password) values('phl','123')
这句没看太懂,ignore是什么用法?mysql专有的?
mysql菜鸟不好意思
这句没看太懂,ignore是什么用法?mysql专有的?
mysql菜鸟不好意思
对,MYSQL专有的.效率非常高
3 楼
horseroad
2010-12-27
insert ignore into tt(name,password) values('phl','123')
这句没看太懂,ignore是什么用法?mysql专有的?
mysql菜鸟不好意思
这句没看太懂,ignore是什么用法?mysql专有的?
mysql菜鸟不好意思
2 楼
85977328
2010-08-12
shangtang004 写道
select 'phl','123' from dual
mysql 中有dual吗,
这不是oracle的吗
mysql 中有dual吗,
这不是oracle的吗
有的,这个代码就是我项目中使用的
1 楼
shangtang004
2010-08-12
select 'phl','123' from dual
mysql 中有dual吗,
这不是oracle的吗
mysql 中有dual吗,
这不是oracle的吗
发表评论
-
MySQL主从复制讨论纪要
2016-02-09 21:40 1677读了一篇技术文章,和架构部的全体兄弟们进行了讨论。 以下为讨论 ... -
MYSQL使用心得(十二)----主从复制指定二进制日志位置
2013-12-11 19:25 4531相关命令 show slave status \G的具体含义 ... -
MYSQL使用心得(十一)----按日期进行表分区
2013-12-01 23:03 5775创建 create table user (id int(11 ... -
MYSQL使用心得(十)----常用命令
2013-12-01 09:04 2000mysql查看状态 ./mysqladmin ... -
MYSQL使用心得(九)----联合索引
2013-11-30 00:18 1577注意:Index(Name,Age)表示在Name,Age两列 ... -
MYSQL使用心得(八)----在线主从复制集群的配置与恢复及主主配置
2013-11-30 00:08 2228在线执行主从配置 步骤 1.锁表 FLUSH TABLES W ... -
MYSQL使用心得(七)----读写分离集群方案之haproxy+keepalived+abstractRoutingDataSource
2013-11-29 23:33 7294在公司做mysql集群方案的时候,经过多次的分析与讨论,以及性 ... -
MYSQL使用心得(六)----cluster
2013-11-29 09:15 2222官方网站 http://dev.mysql.com/downl ... -
MYSQL集群介绍
2013-11-28 22:55 2078mysql-proxy MySQL Proxy是一个处于你的c ... -
mysql读写分离高级驱动
2013-11-25 09:58 1157负载均衡 http://dev.mysql.com/doc/r ... -
MySQL乱码处理
2013-11-25 09:50 7421。过滤器 2。头文件 3。MySQL数据库的 my.ini文 ... -
mysql日期函数
2013-11-25 09:48 753对于每个类型拥有的值范围以及并且指定日期何时间值的有效格式的描 ... -
MYSQL使用心得(二)----主从复制
2013-11-25 09:30 1646基本配置 主数据库 配置文件,修改server_id=1 建立 ... -
MYSQL使用心得(一)----centOS or ubuntu下安装mysql5.6
2013-11-14 00:02 5828官方网站 http://www.mysql.com/ 下载 d ... -
cmake的安装
2013-11-13 22:51 1341安装mysql5.5和5.6的时候,需要使用cmake编译,所 ... -
MYSQL使用心得(三)----性能与管理优化
2013-03-01 22:36 6997基于 /application/search/mysql/my ... -
MYSQL使用心得(五)----InnoDB与MyISAM
2012-11-08 21:31 1610本文主要整理了Mysql 两 ... -
MySQL基础----彻底解决phpMyAdmin安装问题
2011-02-11 12:27 3068一 环境 httpd-2.2.17-win32-x86-no_ ... -
centOS or ubuntu下安装mysql5.5
2010-12-31 16:10 3080依赖库 ubuntu apt-get install gcc ... -
MYSQL使用心得(四)----临时表与内存表
2010-12-19 14:43 3470mysql5.5性能优化-内存表 内存表分为2种,但共同点是, ...
相关推荐
### MySQL基础 - 流程函数 #### 概述 MySQL是一种广泛使用的开源关系型数据库管理系统,在数据管理和查询方面提供了强大的支持。为了实现更复杂的逻辑控制和条件判断,MySQL内置了一系列流程控制函数,如IF函数、...
MySQL Connector/J 5.1.39 是 MySQL 官方提供的用于 Java 应用程序连接 MySQL 数据库的驱动程序。这个资源是 MySQL 社区版本的一部分,它允许开发者使用 Java 编程语言来访问和操作 MySQL 数据库。下面将详细介绍这...
重复执行程序步骤(LESSON8)** - **知识点概述:** 介绍如何在PHP中实现循环结构。 - **详细知识点:** - **for循环:** 固定次数循环的实现。 - **while循环:** 不确定次数循环的实现。 **9. 学习作用域...
在使用上述方法处理重复数据时,需要在表中定义相应的唯一键(主键或唯一索引),以便 MySQL 能够判断冲突并执行相应的操作。否则,MySQL 将无法判断冲突,导致数据插入失败。 四、应用场景 处理重复数据的方法在...
MySQL 是一个关系型数据库管理系统,可以用来存储和管理大量数据。在使用 MySQL 之前,需要首先创建一个数据库。本节将详细介绍如何创建 MySQL 数据库。 为什么需要创建数据库 在使用 MySQL 之前,需要首先创建一...
根据给定文件的信息,我们可以总结出以下MySQL SQL知识点: ### 数据库结构 #### 教学数据库Education - **学生关系S** - SNO (int auto_increment): 学生编号 - SNAME: 学生姓名 - AGE: 年龄 - SEX: 性别 - ...
通过这种方式,我们可以直观地看到所有匹配的数据行,进而判断是否有重复项存在。 #### 查看重复数据的数量 如果想要知道特定字段下重复记录的具体数量,可以使用以下 SQL 语句: ```sql SELECT Hname, COUNT(*) ...
### MySQL数据库基础知识点总结 #### 数据库概念理解 数据库是一种按照特定格式存储数据的仓库,其目的是为了方便数据的存取操作。在IT领域中,数据库是存储与管理大量数据的关键工具之一,它能有效组织数据,使得...
在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是...
在MySQL中,InnoDB通过MVCC实现了事务的隔离级别,如可重复读和读已提交。 #### 6. Redo Log 和 Undo Log - **Redo Log**:重做日志,用于记录数据修改前后的物理位置信息,确保即使系统崩溃也能恢复数据的一致性...
### MySQL基础操作语句知识点详解 #### 一、查询与筛选 **1. 按条件筛选记录** - **语法**: `SELECT name FROM pet WHERE birth < '1980-08-09' AND (csd = 'sx' OR csd = 'bj');` - **解释**: 此SQL语句用于从`...
在MySQL数据库中,存储...它适用于需要检查数据唯一性的场景,例如避免重复的书籍记录。在实际应用中,可以根据具体需求调整存储过程,比如添加更多的条件判断,或者在书名已存在时执行其他操作,如更新书籍的价格等。
在 MySQL 中,可以通过创建不同的数据库来区分不同业务或项目的数据。 2. **表**: 表是数据库中的基本单元,它由行和列组成。每个表都有自己的结构定义,包括字段名称、数据类型等。 3. **数据 SQL 语句**: SQL ...
MySQL提供了不同类型的索引,如主键索引(唯一且非空)、唯一索引(不允许重复值)和普通索引(无限制)。`ALTER TABLE`语句可以用来为现有列添加索引。 5. **视图**:视图是虚拟的表,基于一个或多个表的查询结果...
MySQL中的REPEATABLE-READ隔离级别是事务处理中的一种策略,它的主要目的是为了防止脏读和不可重复读问题,但可能会引入幻读现象。在这个隔离级别下,事务内的多次读取操作将始终返回同一份数据,即使其他事务在这...
在面试中,MySQL的基础知识,特别是优化技巧,通常是考察候选人技术能力的重要部分。以下是一些关于MySQL优化和事务处理的关键知识点: 1. **索引优化**: - 索引能够显著提升查询速度,特别是在WHERE子句和ORDER ...
在 MySQL 中,聚合函数用于对数据进行汇总和计算。 SUM 函数用于计算数据的总和,MAX 函数用于取得最大值,COUNT 函数用于计算数据的行数,AVG 函数用于计算数据的平均值。 2.游标声明 在 MySQL 中,DECLARE ...