数据库实战优化--Duplicate,效率
来源:互联网 发布:网络电视直播tv版 编辑:程序博客网 时间:2024/06/08 19:56
数据库实战优化–Duplicate,效率
php1>. Duplicate的问题:
如果mysql设置了主键或unique索引,或者查询时检索到的内容,暂时我遇到的一些mysql的默认duplicate的规则是:
1)首尾空格去除再匹配;
2)忽略大小写;
3)utf-8,其他外来语(比如法语之类的与相应英语字母匹配),eg:
ÀÁÂÃÄÅÆàáâãäåæÒÓÔÕÕÖØòóôõöøÈÉÊËèéêëðÇçÐÌÍÎÏìíîïÙÚÛÜùúûüÑñÞßÿý 匹配
aaaaaaaaaaaaaaoooooooooooooeeeeeeeeecceiiiiiiiiuuuuuuuunntsyy
如果我们需要精确匹配,解决办法:
将要匹配的字段或者整个表设为binary的:
eg:创建表的SQL语句
keyword varchar(30) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
这样会以二进制来精确匹配, 只要其二进制码不一样就会视为不一样
php2>. 关于速度:
1)多条插入:
分别插入
insert into tablename (field) values ("a") insert into tablename (field) values ("b")
整合版
insert into tablename (field) values ("a"), ("b")
第一种时间主要消耗在,处理数据库的连接和操作上,而整合以后只有一次操作,速度能快1~2个量级,网上有人做过具体的速度比对试验,可以去搜一下,如果实在需要逐条插入,我们也可以用事物操作:
优点(整合版或事物版):快
缺点(整合版或事物版):全或无,导致容错性略差,若代码不严谨,容易全部操作失效,有时需要较大内存开销
需要注意:mysql默认SQL语句长度为1M,折算后简单数据能一次插入2~3万条,若我们插入的量大,需要修改my.ini中的设置,比如修改为10M
max_allowed_packet = 10M
2)删除:
整表删除的话,两种命令:
1. delete from tablename2. truncate tablename
同样,第一种安全,但是比较慢;第二种直接重构表、快速,但是数据无法恢复,有安全隐患
- 数据库实战优化--Duplicate,效率
- 数据库查询效率优化
- 数据库存储效率优化实战:从50PB到32PB(超大容量优化策略)
- RMAN复制(Duplicate)数据库之实战
- 实战:rman异机duplicate active数据库
- 数据库优化和效率问题
- RMAN高级应用之Duplicate复制数据库(4)实战
- 数据库SQL执行效率优化方法整理
- 使用索引优化数据库查询效率
- 使用索引优化数据库查询效率
- 数据库之搜索效率及优化
- 数据库之搜索效率及优化
- 数据库优化---Oracle多表连接优化和效率解读
- SQL Server数据库优化实战(一)
- SQL Server数据库优化实战(二)
- SQL Server数据库优化实战(三)
- 数据库高可用实战案例:架构优化
- 数据库优化之统计分析实战篇
- Learning Spark - LIGHTNING-FAST DATA ANALYSIS 第三章 - (1)
- c++中char[], char*, string的用法初学
- IOS开发 IOS9.0上遇到的一些新问题
- iOS安全系列之 HTTPS(一)
- 如何观察?
- 数据库实战优化--Duplicate,效率
- NYOJ 60:谁获得了最高奖学金
- sg面
- 三、python安装cocos2d-x3.4 autoBindings
- 【POJ】:POJ3386 Halloween Holidays
- 白话经典算法系列之十一 一道有趣的GOOGLE面试题 --【解法2】
- MAHOUT文本向量相似度计算
- PAT(甲级)1027
- String、StringBuffer与StringBuilder的区别