
Mysql
文章平均质量分 52
zf213
这个作者很懒,什么都没留下…
展开
-
MySQL中group_concat函数
MySQL中group_concat函数完整的语法如下:group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator 分隔符])基本查询mysql> select * from aa;+------+------+| id| name |+------+------+|1 | 10|转载 2009-07-09 15:38:00 · 847 阅读 · 0 评论 -
二十行语句实现从Excel到mysql的转化
自从对php和mysql有了一定的了解之后,我就对公司里庞大的Excel数据库虎视眈眈,想偷偷地"共享"这被保密的商业数据,一边琢磨着怎么搞到手,一边考虑如何转化成mysql数据库,去了很多php站点论坛请教高手,都没有一个结果,某天突发想象,为何不试试这种方法呢?结果也真行,一切Ok,下面我就把我的心得与大家完全共享(可能你有更好的方法) & x7 a/ Z; P5 |8 B y7转载 2009-06-12 17:08:00 · 594 阅读 · 0 评论 -
将Excel导入到mysql
这个方法最简单但不是傻瓜式的方法,需要你对Excel和MySQL都有一点点了解。 当然,我在最后提供了一个作为例子的Excel文件,但仍然需要你会写MySQL的INSERT语句,这样才能调试可能出现的错误。 1.在需要导入的数据最后一列,写入一个Excel公式(例子中是“SQL”下面的单元格,“SQL”是不必要的,仅仅是为了看起来方便)。 =CONCATENATE("insert转载 2009-06-12 17:06:00 · 1606 阅读 · 0 评论 -
MySQL中将一个表数据批量导入另一表
不管是在网站开发还是在应用程序开发中,我们经常会碰到需要将MySQL或MS SQLServer某个表的数据批量导入到另一个表的情况,甚至有时还需要指定导入字段。 本文就将以MySQL数据库为例,介绍如何通过SQL命令行将某个表的所有数据或指定字段的数据,导入到目标表 中。此方法对于SQLServer数据库,也就是T-SQL来说,同样适用 。类别一、 如果两张张表(导原创 2009-06-12 17:06:00 · 703 阅读 · 0 评论 -
MYSQL导出成EXCEL表
select * from xi_table into outfile d:/test.xls; 没想到这么简单。 导出为txt文件: select * from xi_table into outfile d:/test.txt; 有时候有excel打开的时候会出现乱码,因为office默认的是gb2312编码,服务器端生成的很有可能是utf-8编码,这个转载 2009-06-12 13:42:00 · 1072 阅读 · 0 评论 -
EXPLAIN句法
EXPLAIN tbl_nameor EXPLAIN SELECT select_optionsEXPLAIN tbl_name是DESCRIBE tbl_name或SHOW COLUMNS FROM tbl_name的一个同义词。 当你在一条SELECT语句前放上关键词EXPLAIN,MySQL解释它将如何处理SELECT,提供有关表如何联结和以什么次序联结的信息。转载 2009-06-10 17:17:00 · 397 阅读 · 0 评论 -
SQL注入专题
SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别, 所以目前市面的防火墙都不会对SQL注入发出警报,如果管理员没查看IIS日志的习惯,可能被入侵很长时间都不会发觉。 随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户转载 2009-06-08 15:18:00 · 374 阅读 · 0 评论 -
InnoDB与UUID
CakePHP本身有一个uuid实现,所以一直以来,我都在尝试使用uuid做主键的可能性。虽然MySQL是我最常用的数据库,但是和auto_increment_int主键相比,我对uuid主键更有好感,一方面是因为uuid的数据库无关性,另一方面是当你想把程序分布在多台服务器上时,uuid操作更简单。不过MySQL还没有原生的uuid支持,在和innodb表类型配合时,可能会出现一转载 2009-06-06 15:30:00 · 1158 阅读 · 0 评论 -
MySQL主从服务器的一些技巧
问题:主从服务器表类型的选择一般的共识是主服务器使用innodb,事务,行锁等功能是myisam所没有的,对修改操作而言,它更高效;从服务器使用myisam,全文检索功能是innodb所没有的,对查询操作而言,它更高效。这样就可以各尽其能。问题:主从服务器字段类型的选择字段类型对于分页等操作有很大影响。主服务器一般是innodb,因为不涉及查询,所以可以使用varc转载 2009-06-06 15:29:00 · 284 阅读 · 0 评论 -
MySQL里建立索引应该考虑数据库引擎的类型
以前一直没注意这一点,突然一闪念想起来,下面唠唠:比方说有一个文章表,我们要实现某个类别下按时间倒序列表显示功能:SELECT * FROM articles WHERE category_id = ... ORDER BY created DESC LIMIT ...这样的查询很常见,基本上不管什么应用里都能找出一大把类似的SQL来,学院派的读者看到上面的SQL,可能转载 2009-06-06 15:29:00 · 232 阅读 · 0 评论 -
如何修复损坏的MyISAM表
当我们用PHPMyAdmin浏览数据库时,有时候会发现某些MyISAM表的Collation项显示为“in use”,这多半说明此表已经损坏。即便是没有出现“in use”字样,也不能就此说明表是完好无损的,熟悉检查及修复方法是必须的。通过语句:检查表使用CHECK TABLE语句,如下:CHECK TABLE tbl_name [, tbl_name] ...转载 2009-06-06 15:28:00 · 355 阅读 · 0 评论 -
Nginx分布式负载的设置
Nginx分布式负载的设置是通过Upstream模块实现的,而且相当简单。upstream www.foobar.com {server backend1.foobar.com;server backend2.foobar.com;}server {location / {proxy_pass http://www.foobar.com;}}转载 2009-06-06 15:27:00 · 317 阅读 · 0 评论 -
备份还原数据库
备份数据,自定义默认编码字符集,格式如下:mysqldump.exe -uroot -ppass --default-character-set=utf8 test > d:/test.sql导入数据:mysql -u xxx -ppass new_database 其它常用方法: 1.导出整个数据库 mysqldump -u 用户名 -p 数据库名原创 2009-06-15 16:50:00 · 450 阅读 · 0 评论 -
索引设计原则
索引设计原则 1. 最合适的索引列是在查询语句中的条件部分经常出现的列。2. 使用唯一值索引。即列值尽可能具有唯一性。3. 使用短索引。如需索引字符串,尽量使用尽可能短的但是能区分列值的长度。较短的列值意味着,缓存中能存放更多的值,也就增加的命中率。4. 利用最左前缀。如果创建了多列索引(n列),则其最原创 2009-06-18 09:14:00 · 476 阅读 · 0 评论 -
MySQL服务器安装完之后如何调节性能
My favorite question during Interview for people to work as MySQLDBAs or be involved with MySQL Performance in some way is to ask themwhat should be tuned in MySQL Server straight after installati转载 2009-07-06 19:29:00 · 425 阅读 · 0 评论 -
sql语句总结
1、批量删除数据 "DELETE FROM `表名` WHERE `被删除的数据ID` IN("传值过来的被删除的数据ID")";SQL用这种写法,只要发送一次SQL语句就可以批量删除数据,数据量大时这种写法的效果犹及明显。 2、从数据表t1中把那些id值在数据表t2里有匹配的记录全删除掉DELETE t1 FROM t1,t2 WHERE t1.id=t2.id原创 2009-07-04 14:58:00 · 561 阅读 · 0 评论 -
MySQL配置文件my.cnf中文版
从 hi!admin 抄来的一份配置.注释得非常好.精#BEGIN CONFIG INFO#DESCR: 4GB RAM, 只使用InnoDB, ACID, 少量的连接, 队列负载大#TYPE: SYSTEM#END CONFIG INFO## 此mysql配置文件例子针对4G内存# 主要使用INNODB转载 2009-06-26 19:33:00 · 599 阅读 · 0 评论 -
MySQL学习笔记:InnoDB和MyISAM的差别
InnoDB和MyISAM是在使用MySQL最常用的两个表类型,各有优缺点,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能。MyIASM是IASM表的新版本,有如下扩展: 二进制层次的可移植性转载 2009-06-26 19:23:00 · 426 阅读 · 0 评论 -
MySQL中MyISAM引擎与InnoDB引擎性能简单测试
MySQL中MyISAM引擎与InnoDB引擎性能简单测试[硬件配置]CPU : AMD2500+ (1.8G)内存: 1G/现代硬盘: 80G/IDE[软件配置]OS : Windows XP SP2SE : PHP5.2.1DB : MySQL5.0.37Web: IIS6[MySQL表结构]CREAT转载 2009-06-26 19:22:00 · 501 阅读 · 0 评论 -
mysql外键(foreign key)的用法
在mysql中MyISAM和InnoDB存储引擎都支持外键(foreign key),但是MyISAM只能支持语法,却不能实际使用。下面通过例子记录下InnoDB中外键的使用方法: 创建主表: mysql> create table parent(id int not null,primary key(id)) engine=innodb; Query OK, 0 rows aff转载 2009-06-26 19:06:00 · 2855 阅读 · 0 评论 -
使用 GUID 值来作为数据库行标识
GUID(Global unique identifier)全局唯一标识符,它是由网卡上的标识数字(每个网卡都有唯一的标识号)以及 CPU 时钟的唯一数字生成的的一个 16 字节的二进制值。GUID 的格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,其中每个 x 是 0-9 或 a-f 范围内的一个十六进制的数字。例如:6F9619FF-8B86转载 2009-06-26 18:18:00 · 436 阅读 · 0 评论 -
Query Cache,看上去很美
query cache在开发中应该算是应用的挺广泛的。但事实上,在高并发网站,query cache是应该并关闭的(我是指论坛、SNS类型的网站),而应该用其他的方式进行缓存,不是用数据库。众所周知,在设置了query cache后,连续的查询同样的sql,那么这些SQL是会被缓存下来的,然而一旦有更新cahce会被清空。数据量小的时候可能感觉不出来,如果数据量大了,其实反而是影响效率的。因此转载 2009-08-28 09:35:00 · 954 阅读 · 0 评论 -
MySQL五个查询优化方法
熟悉SQL的人都知道,完成同一个任务,SQL可能有多种写法,但不同写法的查询性能可能会有天壤之别,本文列举出五个查询优化的方法,当然,优化的方法还有很多。 1、优化数据类型MySQL中数据类型有多种,如果你是一名DBA,正在按照优化的原则对数据类型进行严格的检查,但开发人员可能会选择他们认为最简单的方案,以加快编码速度,或者选择最明显的选择转载 2009-08-28 09:19:00 · 484 阅读 · 0 评论 -
关于MySQL字符集架构的备忘--转
MySQL的字符集处理是这样的:1)发送请求客户端(character_set_client)=》数据库连接(character_set_connection)=》存储(table,column)2)返回请求存储(table,column)=》数据库连接(character_set_connection )=》客户端(character_set_results)在每一个非初始节转载 2009-08-28 08:48:00 · 470 阅读 · 0 评论 -
索引设计原则
索引设计原则 1. 最合适的索引列是在查询语句中的条件部分经常出现的列。2. 使用唯一值索引。即列值尽可能具有唯一性。3. 使用短索引。如需索引字符串,尽量使用尽可能短的但是能区分列值的长度。较短的列值意味着,缓存中能存放更多的值,也就增加的命中率。4. 利用最左前缀。如果创建了多列索引(n列),则其最原创 2009-06-18 09:08:00 · 389 阅读 · 0 评论 -
MySQL数据的导出和导入工具
导出要用到MySQL的mysqldump工具,基本用法是: shell> mysqldump [OPTIONS] database [tables] 如果你不给定任何表,整个数据库将被导出。 通过执行mysqldump –help,你能得到你mysqldump的版本支持的选项表。 注意,如果你运行mysqldump没有–quick或–opt选项,mysqldump将在导出结果前装载转载 2009-06-06 15:07:00 · 535 阅读 · 0 评论 -
MYSQl left join 联合查询效率分析
user表: id | name ——— 1 | libk 2 | zyfon 3 | daodaouser_action表:user_id | action————— 1 | jump 1 | kick 1 | jump 2 | run 4原创 2009-06-06 15:04:00 · 454 阅读 · 0 评论 -
验证使用子查询提高MySQL分页效率
很久以前,我写过一篇文章,说明了MySQL下的几种分页方式。这些天,陆续有几个人问过我其中的子查询方式,并对子查询分页的高效率表示质疑。今天我特意做了一个试验来验证这一点。我选择了公司一个Discuz测试论坛作为试验体,其cdb_posts的记录数接近10000000行。注意:如果想避免缓存的影响,可以使用SQL_NO_CACHE的方式:SELECT SQL_NO_CACH转载 2009-06-06 15:30:00 · 708 阅读 · 0 评论 -
TableCache设置过小造成MyISAM频繁损坏
前些天说了一下如何修复损坏的MyISAM表,可惜只会修复并不能脱离被动的境地,只有查明了故障原因才会一劳永逸。如果数据库服务非正常关闭(比如说进程被杀,服务器断电等等),并且此时恰好正在更新MyISAM表,那么发生损坏的概率就比较大。今天我要说的是另一种情况:频繁的打开关闭MyISAM表文件造成MyISAM表损坏。什么时候会出现频繁的打开关闭MyISAM表文件的情况呢?转载 2009-06-06 15:28:00 · 263 阅读 · 0 评论 -
MySQL-Proxy的安装配置
MySQL-Proxy的二进制版本的安装相对简单,无需多言,下面介绍的是源代码安装:安装pkg-config:tar zxvf pkg-config-0.23.tar.gzcd pkg-config-0.23./configuremakemake install确保PKG_CONFIG_PATH环境变量包含了相关的pkg-config配置文件转载 2009-06-06 15:26:00 · 491 阅读 · 0 评论 -
对千万级MySQL数据库建立索引的事项及提高性能的手段
一、注意事项:首先,应当考虑表空间和磁盘空间是否足够。我们知道索引也是一种数据,在建立索引的时候势必也会占用大量表空间。因此在对一大表建立索引的时候首先应当考虑的是空间容量问题。其次,在对建立索引的时候要对表进行加锁,因此应当注意操作在业务空闲的时候进行。二、性能调整方面:首当其冲的考虑因素便是磁盘I/O。物理上,应当尽量把索引与数据分散到不同的磁盘上(不考虑阵列的情况)。转载 2009-06-06 15:03:00 · 367 阅读 · 0 评论 -
MySQL的索引是以及数据库索引应用
数据库引入了索引用户对数据库最频繁的操作是进行数据查询。一般情况下,数据库在进行查询操作时需要对整个表进行数据搜索。当表中的数据很多时,搜索数据就需要很长的时间,这就造成了服务器的资源浪费。为了提高检索数据的能力,数据库引入了索引机制。有关“索引”的比喻从某种程度上,可以把数据库看作一本书,把索引看作书的目录,通过目录查找书中的信息,显然较没有目录的书方便、快捷。转载 2009-06-06 15:02:00 · 429 阅读 · 0 评论 -
MyISAM几个容易忽视的配置选项
MyISAM在读操作占主导的情况下是很高效的。可一旦出现大量的读写并发,同InnoDB相比,MyISAM的效率就会直线下降,而且,MyISAM和InnoDB的数据存储方式也有显著不同:通常,在MyISAM里,新数据会被附加到数据文件的结尾,可如果时常做一些UPDATE,DELETE操作之后,数据文件就不再是连续的,形象一点来说,就是数据文件里出现了很多洞洞,此时再插入新数据时,按缺省设置会转载 2009-06-06 14:50:00 · 327 阅读 · 0 评论 -
mssql和mysql区别
最近在做mssql转换成mysql的工作,总结了点经验,跟大家分享一下。同时这些也会在不断更新。也希望大家补充。 1 mysql支持enum,和set类型,sql server不支持2 mysql不支持nchar,nvarchar,ntext类型3 mysql的递增语句是AUTO_INCREMENT,而mssql是identity(1,1)4 msms默认到处表创建语句的默转载 2009-05-29 22:16:00 · 744 阅读 · 0 评论 -
mysql数据类型及列类型(1)
我们要把现实世界中的各种信息转换成计算机能理解的东西,这些转换后的信息就形成了数据。例 如,某人的出生日期是“1987年5月23日”,他的身高是170厘米,等等。数据不仅包括数字、字母、文字和其他特殊字符组成的文本形式的数据,而且还 包括图形、图像、动画、影像、声音等多媒体数据。但使用最多、最基本的仍然是文本数据。1. mysql的数据类型 在mysql中有如下几种数据类型: (1)数原创 2009-05-29 10:55:00 · 845 阅读 · 0 评论 -
mysql数据类型及列类型(2)
2. mysql的列(字段)类型 数据库中的每个表都是由一个或多个列(字段)构成的。在用create table语句创建一个表时,要为每列(字段)指定一个类型。列(字段)的类型比数据类型更为细化,它精确地描述了给定表列(字段)可能包含的值的种类,如是否带小数、是否文字很多。 2.1数值列类型 mysql有整数和浮点数值的列类型,如表1所示。整数列类型可以有符号也可无符号。有一种特殊的属原创 2009-05-29 10:57:00 · 488 阅读 · 0 评论 -
Mysql show status
Aborted_clients 由于客户没有正确关闭连接已经死掉,已经放弃的连接数量。 Aborted_connects 尝试已经失败的MySQL服务器的连接的次数。 Connections 试图连接MySQL服务器的次数。 Created_tmp_tables 当执行语句时,已经被创造了的隐含临时表的数量。 Delayed_insert_threads 正在使用的延迟插入处理器线转载 2009-08-01 14:40:00 · 1142 阅读 · 0 评论 -
带你深入了解Web站点数据库的分布存储
在Web2.0时代,网站将会经常面临着快速增加的访问量,但是我们的应用如何满足用户的访问需求,而且基本上我们看到的情况都是性能瓶颈都是在数据库上,这个不怪数据库,毕竟要满足很大访问量确实对于任何一款数据库都是很大的压力,不论是商业数据库Oracle、MS sqlServer、DB2之类,还是开源的MySQL、PostgreSQL,都是很大的挑战,解决的方法很简单,就是把数据分散在不转载 2009-07-25 23:50:00 · 489 阅读 · 0 评论 -
MySQL与分页
如果和MSSQL的TOP语法相比,那么MySQL的LIMIT语法要显得优雅了许多。使用它来分页是再自然不过的事情了。最基本的分页方式: SELECT ... FROM ... WHERE ... ORDER BY ... LIMIT ...在中小数据量的情况下,这样的SQL足够用了,唯一需要注意的问题就是确保使用了索引:举例来说,如果实际SQL类似下面语转载 2009-06-06 15:31:00 · 420 阅读 · 0 评论 -
MySQL主从服务器(Replication)的设置
首先设置MySQL主服务器:在主服务器上为从服务器建立一个用户:grant replication slave on *.* to 用户名@主机 identified by 密码;如果使用的是MySQL 4.0.2之前的版本,则用file权限来代替replication slave 编辑主服务器的配置文件:/etc/my.cnfserver-id=1转载 2009-06-06 15:33:00 · 674 阅读 · 0 评论