随笔分类 -  MySql

摘要:我有一个 foo 表,定义了如下几个字段:id / a / b,其中 id 是主键,a,b 原本应该具有唯一性, 但因为程序 bug 导致 a,b 内容有重复,现在我要在 a,b 上加唯一索引,请问如何删除 a,b 上重复的数据 阅读全文
posted @ 2019-04-10 16:54 WhoAmMe 阅读(269) 评论(0) 推荐(0)
摘要:原文:http://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins这个图文解释mysql join的各种技巧 阅读全文
posted @ 2015-07-28 17:27 WhoAmMe 阅读(310) 评论(0) 推荐(0)
摘要:问题描述比如table1中有两条记录name noa 2,9b 8,10然后有一串字符串,是0,1,2,3,4然后通过一条sql,找出no为2,9的记录来```因为字符串中有2,数据中也有2详细解释------------------------------表的字段就是name noa 2,9b 8... 阅读全文
posted @ 2015-01-27 11:13 WhoAmMe 阅读(4186) 评论(1) 推荐(1)
摘要:今天在用sql模糊查询包含字母d的时候,发现一些不包含此字母的也被查询出来了:SELECT * FROM customWHERE custom_realname LIKE '%d%'查询了一下,发现以下说明:(最后修改为:SELECT * FROM customWHERE custom_real... 阅读全文
posted @ 2014-09-17 13:14 WhoAmMe 阅读(12564) 评论(0) 推荐(0)
摘要:看到很多数据库的设计对于中文字符都是选择选用utf8_general_ci而非utf8_unicode_ciutf8_general_ci和utf8_unicode_ci的区别并不大:utf8_unicode_ci校对更准确,utf8_general_ci速度比较快。它们的差别主要在德语和法语上,对于准确性utf8_general_ci足够了,所以一般选用utf8_general_ci。详细说明如下: utf8_unicode_ci的最主要的特色是支持扩展,即当把一个字母看作与其它字母组合相等时。例如,在德语和一些其它语言中‘ß’等于‘ss’。 utf8_general_ci是一个遗 阅读全文
posted @ 2013-11-15 14:43 WhoAmMe 阅读(327) 评论(0) 推荐(0)
摘要:今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库。希望下面的这些优化技巧对你有用。1. 为查询缓存优化你的查询大多数的MySQL服务器都开启了查询缓存。这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的。当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一个缓存中,这样,后 阅读全文
posted @ 2013-11-06 13:12 WhoAmMe 阅读(363) 评论(0) 推荐(0)
摘要:对于一些数据量较大的系统,数据库面临的问题除了查询效率低下,还有就是数据入库时间长。特别像报表系统,每天花费在数据导入上的时间可能会长达几个小时或十几个小时之久。因此,优化数据库插入性能是很有意义的。经过对MySQL innodb的一些性能测试,发现一些可以提高insert效率的方法,供大家参考参考。1. 一条SQL语句插入多条数据。常用的插入语句如:1234INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`) VALUES ('0', 'userid_0', 'content 阅读全文
posted @ 2013-09-26 14:48 WhoAmMe 阅读(305) 评论(0) 推荐(1)
摘要:数据库设计三大范式为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。在实际开发中最为常见的设计范式有三个:1.第一范式(确保每列保持原子性)第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式。第一范式的合理遵循需要根据系统的实际需求来定。比如某些数据库系统中需要用到“地址”这个属性,本来直接将“地址”属性设计成一个数据库表的字段就行。但是如果系统经常会访问“地址”属性中的“城市”部分,那么就非要将“地址 阅读全文
posted @ 2013-08-02 15:35 WhoAmMe 阅读(269) 评论(0) 推荐(0)
摘要:一般来说,当我们的数据库的数据超过了100w记录的时候就应该考虑分表或者分区了,这次我来详细说说分表的一些方法。目前我所知道的方法都是MYISAM的,INNODB如何做分表并且保留事务和外键,我还不是很了解。首先,我们需要想好到底分多少个表,前提当然是满足应用。这里我使用了一个比较简单的分表方法,就是根据自增id的尾数来分,也就是说分0-9一共10个表,其取值也很好做,就是对10进行取模。另外,还可以根据某一字段的md5值取其中几位进行分表,这样的话,可以分的表就很多了。好了,先来创建表吧,代码如下CREATE TABLE `test`.`article_0` ( `id` BIGINT( . 阅读全文
posted @ 2013-03-13 23:19 WhoAmMe 阅读(12900) 评论(2) 推荐(1)
摘要:网上也很多关于limit的五条优化准则,都是翻译自MySQL手册,虽然正确但不实用。今天发现一篇文章写了些关于limit优化的,很不错。 文中不是直接使用limit,而是首先获取到offset的id然后直接使用limit size来获取数据。根据他的数据,明显要好于直接使用limit。这里我具体使用数据分两种情况进行测试。1、offset比较小的时候select * from student limit 10,10多次运行,时间保持在0.0004-0.0005之间Select * From student Where id >=(Select id From student Order ... 阅读全文
posted @ 2013-01-13 23:50 WhoAmMe 阅读(322) 评论(0) 推荐(0)
摘要:SELECT*FROM`crm_class`WHEREclass_idIN(1,2,3,4)ORDERBYFIELD(class_id,2,3,4,1)LIMIT0,30 阅读全文
posted @ 2012-06-06 10:49 WhoAmMe 阅读(555) 评论(0) 推荐(0)