mysql
晓亮09
一直问自己怎样才能把程序写的更好?
编程境界:干净利落,没有任何多余步骤。
动态能力:反应,逻辑思维和推理能力。
展开
-
mysql主从同步
我在配置主从的时候 有几点需要注意:1、Slave_IO_Running和slave_sql_running 必须为yes2、如果配置成功以后 read_master_log_pos一定是跟 主服务器的偏移量一样 可以在主服务器使用 show master status\G;来查看3、binlog-do-db=heartphp 一定写你备份的数据库,我看网上写的是data 这样原创 2013-07-21 18:15:34 · 750 阅读 · 0 评论 -
在Ubuntu上搭建PHP+Mysql+Nginx环境(apt-get方式)
ubuntu版本:Ubuntu 10.04 LTS1、首先使用apt-get下载Nginx,php,mysql,phpmyadmin,spawn-fcgi。sudo apt-get install nginx php5-cgi php5-cli mysql-ser转载 2011-09-15 10:29:57 · 620 阅读 · 0 评论 -
MySQL坏表?异常:Incorrect key file for table './xx_db/xx_table.MYI'; try to repair it
最近在用PHPCMS重建索引的时候发现 myisam表换了,导致搜索功能不能用。在网上找到了解决办法,记录下来分享精神...爱看TV www.2kantv.com解决办法一:俺使用的SQLyog工具,右击出问题的表,选择:Alter Table... -原创 2011-09-02 11:16:09 · 1079 阅读 · 1 评论 -
MySQL索引类型一览 让MySQL高效运行起来
索引是快速搜索的关键。MySQL索引的建立对于MySQL的高效运行是很重要的。下面介绍几种常见的MySQL索引类型。在数据库表中,对字段建立索引可以大大提高查询速度。假如我们创建了一个 mytable表:CREATE TABLE mytable( ID I原创 2011-07-05 15:41:47 · 399 阅读 · 0 评论 -
MySQL索引分析和优化 (笔记)
1.MySQL能够在name的索引中查找“Mike”值,然后直接转到数据文件中相应的行,准确地返回该行的 peopleid(999)。在这个过程中,MySQL只需处理一个行就可以返回结果。如果没有“name”列的索引,MySQL要扫描数据文件中的所有 记录,即原创 2011-07-05 12:58:29 · 492 阅读 · 0 评论 -
实例讲解MYSQL数据库的查询优化技术
数据库系统是管理信息系统的核心,基于数据库的联机事务处理(OLTP)以及联机分析处理(OLAP)是银行、企业、政府等部门最为重要的计算机应用之一。从大多数系统的应用实例来看,查询操作在各种数据库操作中所占据的比重最大,而查询操作所基于的SELECT语句在SQL转载 2011-07-05 16:01:21 · 401 阅读 · 0 评论 -
在cmd下进入mysql.(方法及遇到的问题)
开始学习php了,这个语言啊就是和mysql数据库比较好使用了。mysql数据库又是开源的,哈哈!虽然有好多问题需要解决。就把自己遇到的问题和解决方法show出来,免得以后自己忘记了.要想通过cmd进入mysql还真是遇到好多问题,我一路是过关斩将哦,不容易哦转载 2011-07-05 09:27:05 · 809 阅读 · 0 评论 -
乐观锁
<br />相对悲观锁而言,乐观锁机制采取了更加宽松的加锁机制。悲观锁大多数情况下依靠数据库的锁机制实现,以保证操作最大程度的独占性。但随之而来的就是数据库 性能的大量开销,特别是对长事务而言,这样的开销往往无法承受。 <br /> 如一个金融系统,当某个操作员读取用户的数据,并在读出的用户数据的基础上进行修改时(如更改用户帐户余额),如果采用悲观锁机制,也就意味着整个操作过 程中(从操作员读出数据、开始修改直至提交修改结果的全过程,甚至还包括操作 员中途去煮咖啡的时间),数据库记录始终处于加锁状态,可以转载 2010-12-28 17:38:00 · 565 阅读 · 0 评论 -
[MySQL优化] -- 如何定位效率较低的SQL
<br />一般通过以下两种方式定位执行效率较低的 SQL 语句。<br />通过慢查询日志定位那些执行效率较低的 SQL 语句,用 --log-slow-queries[=file_name] 选项启动时, mysqld 会 写一个包含所有执行时间超过 long_query_time 秒的 SQL 语句的日志文件,通过查看这个日志文件定位效率较低的 SQL 。 慢查询日志在查询结束以后才纪录,所以在应用反映执行效率出现问题的时候查询慢查询日志并不能定位问题,可以使用 show processlist 命令转载 2010-11-06 23:13:00 · 420 阅读 · 0 评论 -
[MySQL优化] -- 如何查找SQL效率地下的原因
<br />查询到效率低的 SQL 语句 后,可以通过 EXPLAIN 或者 DESC 命令获取 MySQL 如何执行 SELECT 语句的信息,包括在 SELECT 语句执行过程中表如何连接和连接的顺序,比如我们想计算 2006 年所有公司的销售额,需要关联 sales 表和 company 表,并且对 profit 字段做求和( sum )操作,相应 SQL 的执行计划如下: <br />mysql> explain select sum(profit) from sales a,company b w转载 2010-11-06 23:10:00 · 358 阅读 · 0 评论 -
mysql存储过程
<br />MySQL 5.1版支持存储程序和函数。一个存储程序是可以被存储在服务器中的一套SQL语句。一旦它被存储了,客户端不需要再重新发布单独的语句,而是可以引用存储程序来替代。 <br />下面一些情况下存储程序尤其有用: <br />·当用不同语言编写多客户应用程序,或多客户应用程序在不同平台上运行且需要执行相同的数据库操作之时。<br />·安全极为重要之时。比如,银行对所有普通操作使用存储程序。这提供一个坚固而安全的环境,程序可以确保每一个操作都被妥善记入日志。在这样一个设置中,应用程序和用户不转载 2010-12-28 11:45:00 · 432 阅读 · 0 评论 -
Linux下Mysql
<br />1、安装<br />查看是否已经安装了MYSQL<br />rpm -qa mysql<br /><br />mysql-4.1.7-4.RHEL4.1<br /><br />点开add/remove programe里面的mysql的detail<br />勾上mysql-server<br /><br />2、启动<br />来检测mysql是否已经启动<br />service mysqld status<br /><br />我们可以用三种方法来启动Mysql:<br />方法一:使用s转载 2010-12-27 10:31:00 · 576 阅读 · 0 评论 -
MySQL复制表结构问题的解决方法
<br />MySQL复制表结构的方法是我们经常讨论的话题,下面对MySQL复制表结构进行了分析,供您参考,希望可以让您都MySQL复制表结构有更深刻的认识。<br />之前看到网上很多说用<br />SELECT * INTO 表2 FROM 表1 WHERE 1=2<br />可以将表1结构复制到表2<br />用SELECT * INTO 表2 FROM 表1<br />可以将表1内容全部复制到表2<br />但是每次都会报错:说表2没有声明<br />事先创建了表2,这里还是会说表2没有声明<br转载 2010-10-28 13:32:00 · 510 阅读 · 0 评论 -
mysql 添加字段、删除字段、调整字段顺序
<br />添加字段:<br />alter table `user_movement_log` <br />Add column GatewayId int not null default 0 AFTER `Regionid` (在哪个字段后面添加)<br /> 删除字段:<br />alter table `user_movement_log` drop column Gatewayid<br />调整字段顺序:<br />ALTER TABLE `user_movement_log` CHANG转载 2010-10-26 17:39:00 · 537 阅读 · 0 评论 -
linux mysql备份
方法一、适合所有格式的mysql数据库,通过对数据库导出导进写个脚本定时执行:1.导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名 mysqldump -u username -p database > url/databas.sql转载 2011-09-15 16:44:24 · 343 阅读 · 0 评论 -
修改MYSQL默认编码为UTF8[转载+个人总结]
1转载部分MySQL的默认编码是Latin1,不支持中文,那么如何修改MySQL的默认编码呢,下面以UTF-8为例来说明需要注意的是,要修改的地方非常多,相应的修改方法也很多。下面是一种最简单最彻底的方法:一、Windows1、中止MySQL服务2、在转载 2011-09-22 11:12:20 · 802 阅读 · 0 评论 -
查看MYSQL当前编码状态
show variables like 'char%'原创 2011-09-22 11:03:42 · 868 阅读 · 0 评论 -
mysql:find_in_set 查找逗号分隔的数据
查询表字段 pingid = (1,2,3,) SELECT * FROM `linkinfo` WHERE `pingid` REGEXP '{id},' AND `pingid` NOT REGEXP '[[:alnum:]]+{id},' 使用上面的语句,可以查询出来 用FIND_IN_SET() 更简单 SELECT* FROM linkinfo WHE原创 2013-04-12 12:30:08 · 1351 阅读 · 0 评论 -
Ubuntu下彻底卸载mysql
1、删除 mysql1 sudo apt-get autoremove --purge mysql-server-5.02 sudo apt-get remove mysql-server3 sudo apt-get autoremove mysql-server4 sudo apt-get remove mysql-common (非常重要)上面的其实有一些是多余转载 2013-04-08 21:48:00 · 601 阅读 · 0 评论 -
E: Sub-process /usr/bin/dpkg returned an error code (1)错误解决
被我解决了,现在我把我的办法写在这里,以让新手和大侠们看看,少走弯路,大侠们不要见怪阿,卡卡 。办法如下:1.$ sudo mv /var/lib/dpkg/info /var/lib/dpkg/info_old //现将info文件夹更名2.$ sudo mkdir /var/lib/dpkg/info //再新建一个新的info文件夹3.$ sudo apt-get update转载 2013-04-08 21:44:07 · 621 阅读 · 0 评论 -
mysql主从复制
怎么安装mysql数据库,这里不说了,只说它的主从复制,步骤如下:1、主从服务器分别作以下操作: 1.1、版本一致 1.2、初始化表,并在后台启动mysql 1.3、修改root的密码2、修改主服务器master: #vi /etc/my.cnf [mysqld] log-bin=mysql-bin //[必须]启用二进原创 2013-02-19 17:04:28 · 431 阅读 · 0 评论 -
MySQL随机查询记录的效率测试分析
以下就是文章的主要内容。 1.SELECT * FROM `table` ORDER BY RAND() LIMIT 5 就可以了。 但是真正测试一下才发现这样效率非常低。一个15万余条的库,查询5条数据,居然要8秒以上 查看官方手册,也说rand()放在ORDER BY 子句中会被执行多次,自然效率及很低。 You cannot use a column转载 2013-01-20 04:05:29 · 416 阅读 · 0 评论 -
学习索引:当字段为varchar时查询数字,遇到的坑
create table test(id int(4) not null primary key auto_increment,user_id varchar(50) not null,key `idx_user_id` (user_id));user_id为varchar可是当我们查询数据的时候使用explain select * from zhangliang where u原创 2013-01-20 00:42:18 · 1370 阅读 · 0 评论 -
复习记录:mysql innodb 外键约束
首先保证父表和子表都是innodb 而不是临时表1/当父表删除子表对应外键值也对应删除2/当子表更新父表没有的数据会报错,禁止添加insert和更新update操作父表create table tblmaster (id int not null auto_increment primary key,name varchar(50) not null) engine=i原创 2013-01-25 18:55:07 · 458 阅读 · 0 评论 -
在Ubuntu下用MySQL-Client连接XAMPP中MySQL-Server
XAMPP(apache(Unix平台最流行的WEB服务器平台)+MySQL(和PHP搭配之最佳组合)+PHP+PERL)是一个功能强大的建站集成软件包。这个软件包原来的名字是LAMPP,但是为了避免误解,最新的几个版本就改名为 XAMPP了。它可以在Windows、Linux、Solaris三种操作系统下安装使用,支持多语言:英文、简体中文、繁体中文、韩文、俄文、日文等。XAMPP是绿色的,转载 2012-12-22 17:29:39 · 693 阅读 · 0 评论 -
mysql - distinct的用法
distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用 它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是distinct只有用二重循环查询来解决,而这样对于一个数据量非常大的站来说,无疑是会直接影响到效率的。下面先来看看例子:table表字段1 字段2 id name 1 a 2转载 2012-05-02 15:36:58 · 371 阅读 · 0 评论 -
更换MYSQL datadir数据路径发生的错误
vmysqld_safe mysqld from pid file /data0/mysql/3306/data/chenyi.pid ended解决方法:/usr/local/mysql/bin/mysqld_safe --user=mysql --log-error=/data0/mysql/3306/mysq.error --datadir=/data0/mysql/3306/d原创 2012-04-14 00:59:40 · 570 阅读 · 0 评论 -
PHPCMS v9 查找重复数据
$video_obj = $video_db->query("select title,id,count(id) c from v9_video where vod_siteid = 4 group by title having c>1");$video_info= $video_db->fetch_array();原创 2012-04-10 17:26:12 · 1036 阅读 · 0 评论 -
连表删除多条记录
delete v,s from v9_video v left join v9_subvideo s on v.id=s.vod_id where v.id in(52966, 53188);原创 2012-04-10 17:15:13 · 534 阅读 · 0 评论 -
MySQL 学习笔记 一
一、数据库简单介绍1、 按照数据库的发展时间顺序,主要出现了以下类型数据库系统:Ø 网状型数据库Ø 层次型数据库Ø 关系型数据库Ø 面向对象数据库上面4中数据库系统中,关系型数据库使用最为广泛。面向对象数据库则是由面向对象语言催生的新型数据库,目前的一些数据库系统,如:SQL Server 2005、Oracle10g等都开始增加面向对象的特性。转载 2011-12-26 10:51:31 · 584 阅读 · 0 评论 -
MYSQL 删除列,增加列 alter table
好久没有用命令行操作了,我发现以前总用地语法居然然我给我忘记了,记录一下吧删除MYSQL列alter table a drop column col1, drop column, col2;增加多列alter table a add(a varchar default '', b varchar default '');原创 2011-11-21 10:50:50 · 552 阅读 · 0 评论 -
php+mysql分库分表的哈希(hash)算法
<br />php+mysql分库分表的哈希(hash)算法:<br />我们在实际开发的时候,难免会遇到大访问量的问题,一个表中的数据就可以到百万甚至千万级的数据,这样一来数据库的压力会比较大,我们通常的做法就是给数据库分表来减轻数据库的压力,下面是用php写的一个分库分表的算法,需要的朋友可以参考一下:<br /><?php<br />function calc_hash_db($u, $s = 4){ <br />$h = sprintf("%u", crc32($u)); <br />$h1 = i转载 2010-12-16 17:04:00 · 1409 阅读 · 0 评论 -
MySQL索引分析和优化
什么是索引?<br /><br /><br />索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存。如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。表里面的记录数量越多,这个操作的代价就越高。如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置。如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录快100倍。 <br /><br />假设我们创建了一个名为people的表: <b原创 2010-12-16 14:25:00 · 387 阅读 · 0 评论 -
MySQL 导出数据库
<br /><br />使用命令 mysqldump<br /> <br />格式如下:<br /> <br />mysqldump -u root -p *** DBNAME > E://test.sql<br /> <br />注意:执行该命令的时候不要进入mysql的控制台再使用,这样会报outfile disabled 错误。而直接使用MYSQL/bin目录下的mysqldump.exe通过windows的命令行进行<br /> <br />C:/>mysqldump -u root -p data原创 2010-10-06 00:17:00 · 312 阅读 · 0 评论 -
[MySQL优化案例]系列 -- InnoDB主键设计
[MySQL优化案例]系列 -- InnoDB主键选择2010/08/02/sth_about_innodb_primary_key_select.html众所周知,InnoDB是clustered-index table,因此对于InnoDB而言,主键具有特殊意义。可以通过主键直接定位到对应的某一数据行记录的物理位置,主键索引指向对应行记录,其他索引则都指向主键索引;因此,可以这么说,InnoDB其实就是一个 B-树索引,这棵B-树的索引就是主键,它的值则是对应的行记录。在InnoDB数据表设转载 2010-10-05 20:18:00 · 417 阅读 · 0 评论 -
Union和Union all 的区别
<br /><br />在数据库中,union和union all关键字都是将两个结果集合并为一个,但这两者从使用和效率上来说都有所不同。<br />union在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。<br />如:<br />select * from test_union1<br /> union<br />select * from test_union2<br /> 这个SQL在运行时先取出两个表的结果,再用排序空间进行转载 2010-09-17 13:15:00 · 418 阅读 · 0 评论 -
mysql sql 百万级数据库优化方案
<br />1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 <br /><br />2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: <br /><br />select id from t where num is null <br /><br />可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: <br /><br />select id from t原创 2010-09-17 16:02:00 · 363 阅读 · 0 评论 -
InnoDB和MyISAM区别总结
InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能。 MyIASM是IASM表的新版本,有如下扩展: ·二进制层次的可移植性。 ·NULL列索引。 ·对变长行比ISAM表有更少的碎片。 ·支持大文件。 ·更好的索引压缩。 ·更好的键原创 2010-08-31 13:55:00 · 431 阅读 · 0 评论 -
MySQL数据库中的外键约束详解
<br />本文介绍MySQL数据库中的外键约束的相关内容。<br /> 使用MySQL开发过数据库驱动的小型web应用程序的人都知道,对关系数据库的表进行创建、检索、更新和删除等操作都是些比较简单的过程。理论上,只要掌握了最常见的SQL语句的用法,并熟悉您选择使用的服务器端脚本语言,就足以应付对MySQL表所需的各种操作了,尤其是当您使用了快速MyISAM数据库引擎的时候。但是,即使在最简单的情况下,事情也要比我们想象的要复杂得多。下面我们用一个典型的例子进行说明。假设您正在运行一个博客网站,您几乎天天原创 2010-08-31 14:30:00 · 958 阅读 · 0 评论 -
mysql存储引擎:InnoDB和MyISAM的区别与优劣
MyISAM:这个是默认类型,它是基于传统的ISAM类型,ISAM是Indexed Sequential Access Method (有索引的顺序访问方法) 的缩写,它是存储记录和文件的标准方法.与其他存储引擎比较,MyISAM具有检查和修复表格的大多数工具. MyISAM表格可以被压缩,而且它们支持全文搜索.它们不是事务安全的,而且也不支持外键。如果事物回滚将造成不完全回滚,不具有原子性。如果执行大量的SELECT,MyISAM是更好的选择。InnoDB:这种类型是事务安全的.它与BDB类型具有转载 2010-08-31 14:05:00 · 488 阅读 · 0 评论