随笔分类 -  MySQL

无法在同一张表上查询和更新的问题解决方法
摘要:一、问题引入 要在一张已存在并且有数据的表上建一个唯一索引,由于建索引的这列有很多重复的数据,导致无法建unique索引!要一条条数据手工删除吗?不!我是工程师,我要用技术的手段删除重复数据。写了一个删除重复数据的sql,如下: 写完了,十分兴奋的跑一下这个sql,结果大跌眼镜 [语句1]: del 阅读全文

posted @ 2016-10-19 17:45 imxiu 阅读(775) 评论(0) 推荐(0)

windows主机mysql忘记密码如何重置
摘要:本文主要是针对mysql重置密码过程中出现“mysqld不是内部命令或外部命令”的问题而写的。网上有很多关于mysql忘记密码了如何找回的文章,但是很多说的都不够详细,特别是还要用到DOS命令,可能这对于很大一部分刚接触这方面的朋友来说还是个难题。本文针对网上教程中有难点和疑惑的步骤进行再次剖析,如... 阅读全文

posted @ 2015-10-12 16:19 imxiu 阅读(534) 评论(0) 推荐(0)

windows环境下mysql忘记密码如何重置
摘要:本文主要是针对mysql重置密码过程中出现“mysqld不是内部命令或外部命令”的问题而写的。网上有很多关于mysql忘记密码了如何找回的文章,但是很多说的都不够详细,特别是还要用到DOS命令,可能这对于很大一部分刚接触这方面的朋友来说还是个难题。本文针对网上教程中有难点和疑惑的步骤进行再次剖析,如... 阅读全文

posted @ 2015-07-27 19:05 imxiu 阅读(19159) 评论(2) 推荐(1)

mysql in 子查询 效率慢 优化(转)
摘要:现在的CMS系统、博客系统、BBS等都喜欢使用标签tag作交叉链接,因此我也尝鲜用了下。但用了后发现我想查询某个tag的文章列表时速度很慢,达到5秒之久!百思不解(后来终于解决),我的表结构是下面这样的,文章只有690篇。文章表article(id,title,content)标签表tag(tid,... 阅读全文

posted @ 2014-07-31 18:09 imxiu 阅读(575) 评论(0) 推荐(0)

mysql group by 用法解析(详细)
摘要:在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供 有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是 distinct只能返回它的目标字段,而无法返回其它字段,这个问题让我困扰了很久,... 阅读全文

posted @ 2014-06-17 18:13 imxiu 阅读(1189) 评论(0) 推荐(0)

优化临时表使用,SQL语句性能提升100倍
摘要:【问题现象】线上mysql数据库爆出一个慢查询,DBA观察发现,查询时服务器IO飙升,IO占用率达到100%, 执行时间长达7s左右。SQL语句如下:SELECT DISTINCTg.*,cp.name AS cp_name, c.name AS category_name, t.name AS t... 阅读全文

posted @ 2014-06-13 17:04 imxiu 阅读(426) 评论(0) 推荐(0)

巧用MySQL之Explain进行数据库优化
摘要:前记:很多东西看似简单,那是因为你并未真正了解它。Explain命令用于查看执行效果。虽然这个命令只能搭配select类型语句使用,如果你想查看update,delete类型语句中的索引效果,也不是太难的事情,只要保持条件不变,把类型转换成select就行了。explain的语法如下:explain... 阅读全文

posted @ 2014-06-09 13:04 imxiu 阅读(316) 评论(0) 推荐(0)

MySql避免全表扫描
摘要:对查询进行优化,应尽量避免全表扫描,首先应考虑在where 及order by 涉及的列上建立索引:.尝试下面的技巧以避免优化器错选了表扫描:· 使用ANALYZE TABLE tbl_name为扫描的表更新关键字分布。· 对扫描的表使用FORCE INDEX告知MySQL,相对于使用给定的索引表扫描将非常耗时。SELECT * FROM t1, t2 FORCE INDEX (index_for_column)WHERE t1.col_name=t2.col_name;用--max-seeks-for-key=1000选项启动mysqld或使用SET max_seeks_ 阅读全文

posted @ 2014-01-22 20:44 imxiu 阅读(678) 评论(0) 推荐(0)

MySql中启用InnoDB数据引擎的方法
摘要:1、存储引擎是什么? Mysql中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。这些不同的技术以及配套的相关功能在MySQL中被称作存储引擎(也称作表类型)。MySql默认配置了许多不同的存储引擎,可以预先设置或者在MySql服务器中启用。 2、MYSQL支持的数据引擎 MyISAM:默认的MySQL插件式存储引擎,它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。 InnoDB:用于事务处理应... 阅读全文

posted @ 2014-01-14 15:08 imxiu 阅读(968) 评论(0) 推荐(0)

mysql常见优化,更多mysql,Redis,memcached等文章
摘要:mysql常见优化http://www.cnblogs.com/ggjucheng/archive/2012/11/07/2758058.html更多mysql,Redis,memcached等文章:http://www.cnblogs.com/ggjucheng/category/424948.html 阅读全文

posted @ 2014-01-04 16:03 imxiu 阅读(202) 评论(0) 推荐(0)

MySQL索引和优化查询
摘要:索引和优化查询恰当的索引可以加快查询速度,可以分为四种类型:主键、唯一索引、全文索引、普通索引。主键:唯一且没有null值。create table pk_test(f1 int not null,primary key(f1));alter table customer modify id int not null, add primary key(id);普通索引:允许重复的值出现。create table tableanme (fieldname1 columntype,fieldname2 columntype,index [indexname] (fieldname1 [,field 阅读全文

posted @ 2013-12-12 11:28 imxiu 阅读(214) 评论(0) 推荐(0)

MySQL数据库建立外键失败的原因总结
摘要:在MySQL数据库创建外键时,经常会发生一些错误,这是一件很令人头疼的事。一个典型的错误就是:Can’t create table... 的错误。在很多实例中,这种错误的发生都是因为mysql一直以来都不能很好的支持的关系的问题, 更不幸的是它也并没有指明到底是哪一个问题会导致上面那种错误,下面我把导致这个可怕的150错误的常见原因列出来了,并且我以可能性的大小作了排序,已知的原因:1.两个字段的类型或者大小不严格匹配,例如,如果一个是INT(10), 那么外键也必须设置成INT(10), 而不是 INT(11) 也不能是TINYINT. 你得使用SHOW命令来查看字段的大小,因为一些查询浏览 阅读全文

posted @ 2013-12-10 21:28 imxiu 阅读(1311) 评论(0) 推荐(0)

MySQL外键约束On Delete、On Update各取值的含义
摘要:主键、外键和索引的区别?主键外键索引定义:唯一标识一条记录,不能有重复的,不允许为空表的外键是另一表的主键,外键可以有重复的,可以是空值主索引(由关键字PRIMARY定义的索引),用于表的主键上,不可重复,不可为空;普通索引(由关键字KEY或INDEX定义的索引)可以重复;唯一索引(由关键字UNIQUE定义的索引),不可重复,但可以有一个空值作用:用来保证数据完整性用来和其他表建立联系用的是提高查询排序的速度个数:主键只能有一个一个表可以有多个外键一个表只能有一个主索引,可以有多个其它类型索引附:MySQL索引类型介绍MySQL外键约束On Delete、On Update各取值的含义‍先看O 阅读全文

posted @ 2013-12-10 15:35 imxiu 阅读(653) 评论(0) 推荐(0)

30种mysql优化sql语句查询的方法
摘要:1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中使用!=或操作符,否则将引擎放弃使用索引而进行全表扫描。 3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id from t where num=0 4.应尽量避免在 where 子句中使用 or 来连接条件,否... 阅读全文

posted @ 2013-12-08 18:38 imxiu 阅读(282) 评论(0) 推荐(0)

Yii中用递归方法实现无限级分类
摘要:用递归方法实现多级分类,适合分级不太多的分类,如三到四级。数据库结构:Model中(Category.php) /** * 获取全部分类信息 */ public function getAllcategory() { $sql = 'select * from '.$this->tableName().' order by id asc'; $category = ZDBTool::QueryAll($sql); return $category; } Controller中(Ca... 阅读全文

posted @ 2013-12-08 15:30 imxiu 阅读(3219) 评论(1) 推荐(1)

MySQL WorkBench中文教程
摘要:在网上找到了一份MySQL WorkBench的教程,点此可以下载Work Bench教程(原文),为了便于学习和交流,请朋友帮忙翻译成了中文,点此可以下载Work Bench教程(中文翻译版)。具体内容如下:在今天的辅助教程里,你将会学到怎样用一个可视化数据库建模实用工具设计一个数据库图表和自动生成SQL语句。 特别说一下, 我们将会回顾一下怎样用MySQLWorkbench, 一个交叉平台,可视化数据库设计工具。什么是 MySQL Workbench?MySQL Workbench是由MySQL开发的强大的工具, 它有以下三个基本功能区域。SQL Development: 代替了 MySQ 阅读全文

posted @ 2013-11-05 18:31 imxiu 阅读(55770) 评论(0) 推荐(2)

ECshop 数据库表结构
摘要:-- 表的结构 `ecs_account_log`CREATE TABLE IF NOT EXISTS `ecs_account_log` (`log_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID号',`user_id` mediumint(8) unsigned NOT NULL COMMENT '用户登录后保存在session中的id号,跟users表中的user_id对应',`user_money` decimal(10,2) NOT NULL COMMENT '用户 阅读全文

posted @ 2013-11-03 20:37 imxiu 阅读(2172) 评论(1) 推荐(0)

MySQL数据库设计复习笔记及项目实战
摘要:最近手头上有3个项目开动,其他2个都是从底层开始的,一个已经开始了一段时间的了,在小城市小团队开发的条件下,都没有专门的DBA来做数据库的设计和维护,往往都是开发人员顶上,可是看了很多的数据库的设计,感觉很多设计都不是很完美,包括DZ的Ucenter和UcenterHome的数据库,所以这段时间话了近5个小时的时间好好的整理了下数据库方面的基本内容,配合现有的框架来实现快捷的数据库设计,来满足目前项目的需求参考的数据库文档主要有:目前国内的常见的PHP系统的数据库DZ6.0的数据库 ECSHOP SUPESITE7 UCHOME UCENTER的数据库结构 还有DEDECMS的数据库结构,这些 阅读全文

posted @ 2013-10-30 22:27 imxiu 阅读(434) 评论(0) 推荐(0)

Mysql中查看表的类型InnoDB
摘要:问题描述: MySQL 数据表主要支持六种类型 ,分别是:BDB、HEAP、ISAM、MERGE、MYISAM、InnoBDB。这六种又分为两类,一类是“事务安全型”(transaction-safe),包括BDB和InnoDB;其余都属于第二类,称为”非事务安全型”(non-transaction-safe)。问题解决: 存储引擎说白了就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型)。InnoDB 是较新的事务安全型存储引擎,用于事务处理应用程序,支持BDB的 阅读全文

posted @ 2013-10-30 11:41 imxiu 阅读(10540) 评论(0) 推荐(0)

mysql数据库引擎问题汇总
摘要:可以使用mysql> show engines;查看mysql支持何种引擎, 其中default表明该引擎为默认引擎。在windows下面的mysql引擎默认为InnoDB,linux下的为 MyISAM。数据库有多重引擎,具体参见php mysql web开发教程,里面很详细。一、关于如何查看引擎:1. 在mysql监视器(客户端)使用命令: show table status from 数据库库名 where name = '表名';或者直接在默认选择的数据库下面使用 show table status, 这样将会该数据库下的所有表的status列出来。2. 在操作系 阅读全文

posted @ 2013-10-30 11:40 imxiu 阅读(292) 评论(0) 推荐(0)

导航