MyISAM与Innodb的比较

从mysql-5.5.5开始,InnoDB作为默认存储引擎,InnoDB作为支持事务的存储引擎,拥有相关的RDBMS特性:包括ACID事务支持,参考完整性(外健),灾难恢复能力等特性。
同时作为维护mysql内部结构的mysql和information_schema两个databases中的表,依然使用MyISAM存储引擎,而且不能被更改为InnoDB,一般来说不是有太多人关心这个东西。决定使用什么样的存储引擎是一个很tricky的事情,但是还是值我们去研究一下,这里的文章只考虑 MyISAM 和InnoDB这两个,因为这两个是最常见的。

myisam只有索引缓存

阅读更多

PHP连接MySQL数据库的常用方式

平时写好的类库以及各种框架自带的MYSQL类都已经封装,只需要修改配置文件即可进行数据操作流程,可是平时当有人问起的时候,突然忘了,其实并不难,只是很少用,突然的一下子想不起来了,在这里整理出3种常用的PHP连接数据库的方式。

@先声明连接信息的变量

阅读更多

找回mysql密码

Windows下的实际操作如下

1.关闭正在运行的MySQL。 net stop mysql
2.打开DOS窗口,转到mysql\bin目录。
3.输入mysqld –skip-grant-tables回车。如果没有出现提示信息,那就对了

阅读更多

MySQL replace into 用法(insert into 的增强版)

在向表中插入数据的时候,经常遇到这样的情况:1. 首先判断数据是否存在; 2. 如果不存在,则插入;3.如果存在,则更新。

在 SQL Server 中可以这样处理:

 if not exists (select 1 from t where id = 1) insert into t(id, update_time) values(1, getdate()) else update t set update_time = getdate() where id = 1

阅读更多

解决MySQL 服务器进程CPU占用100%

MYSQL CPU 占用 100% 的解决过程

进入 mysql 的 shell 命令行,调用 show processlist, 查看当前 mysql 使用频繁的 sql 语句:

mysql> show processlist;

反复调用此命令,发现网站 A 的两个 SQL 语句经常在 process list 中出现,其语法如下:

阅读更多

mysql字段之间的操作

有时候想在某个字段后或后插入一个新字段,一般phpmyadmin的时候,直接在某个字段前后增加相应字段即可,也可以用如下命令进行操作

ALTER TABLE `表明` ADD `字段` 字段属性 AFTER `上一个字段`  // ……表示 (例如 NOT NULL,相关参数 )

但有时候想移动一个字段的时候,这时候就要用到如下命令进行操作了

阅读更多

mysql错误代码查询

0101 属于其他进程的专用标志。
0102 标志已经设置,无法关闭。
0103 无法再次设置该标志。
0104 中断时无法请求专用标志。
0105 此标志先前的所有权已终止。
0106 请将软盘插入驱动器 %1。
0107 后续软盘尚未插入,程序停止。
0108 磁盘正在使用或已由其他进程锁定。
0109 管道已经结束。
0110 系统无法打开指定的设备或文件。
0111 文件名太长。 0112 磁盘空间不足。
0113 没有其他可用的内部文件标识符。
0114 目标内部文件标识符不正确。
0117 该应用程序所运行的 IOCTL 调用不正确。
0118 校验写入的开关参数值不正确。
0119 系统不支持所请求的命令。
0120 该系统上不支持此功能。
0121 标记已超时。

阅读更多

Mysql的FIND_IN_SET优化使用

假如字符串str 在由N 子链组成的字符串列表strlist 中, 则返回值的范围在 1 到 N 之间 。一个字符串列表就是一个由一些被‘,’符号分开的自链组成的字符串。如果第一个参数是一个常数字符串,而第二个是type SET列,则 FIND_IN_SET() 函数被优化,使用比特计算。如果str不在strlist 或strlist 为空字符串,则返回值为 0 。如任意一个参数为NULL,则返回值为 NULL。 这个函数在第一个参数包含一个逗号(‘,’)时将无法正常运行。

mysql> SELECT FIND_IN_SET(‘b’,’a,b,c,d’);

例:

阅读更多

mysql随机查询

最近无事,翻了一下以前的博客,发现部分文章现在看起来确实有很大的差异,对于这篇mysql随机查询的文章,现在看起来,问题的确存在。

举个例子,要从tbl_consult表中随机提取一条记录,大家一般的写法就是:

阅读更多