MySQL优化设计和优化技巧

本文简单讲述了PHP数据库编程之MySQL优化策略。分享给大家供大家参考,具体如下:前些天看到一篇文章说到PHP的瓶颈很多情况下不在PHP自身,而在于数据库。我们都知道,PHP开发中,数据的增删改查是核心。为了提升PHP的运行效率,程序员不光需要写出逻辑清晰,效率很高的代码,还要能对query语句进行优化。虽然我们对数据库的读取写入速度上却是无能为力,但在一些数据库类扩展像memcache、mongodb、redis这样的数据存储服务器的帮助下,PHP也能达到更快的存取速度,所以了解学习这些扩展也是非常必要,这一篇先说一下MySQL常见的优化策略。几条M...

阅读全文

mysql复制拷贝表以及表内容的几种方式

mysql拷贝表操作我们会常常用到,下面就为您详细介绍几种mysql复制拷贝表以及表内容的方式复制一个一模一样的,但是不包含表结构CREATE TABLE 新表名 LIKE 表名复制表和表内容,但是不包含索引,主键等CREATE TABLE 表名 AS   (   SELECT *   FROM admin   )那么来介绍下复制新表和表结构的最终...

阅读全文

mysql查询去掉重复结果及删除重复记录保存id最小的一条的方法

在使用MySQL时,有时需要查询出某个字段不重复的记录,虽然mysql提供有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是distinct只能返回它的目标字段,而无法返回其它字段,这个问题让我困扰了很久,用distinct不能解决的话,我只有用二重循环查询来解决,而这样对于一个数据量非常大的站来说,无疑是会直接影响到效率的。下面先来看看例子:tableid name1 a2 b3 c4 c5...

阅读全文

mysql赋权grant与收回权限revoke

在数据库的管理当中,我们偶尔也需要对一个库添加管理用户,同时对这个用户赋权,当然赋权完了,用完了需要收回权限,这点需要注意,基本好多数据库管理员赋权完了基本就不管这个用户了,这是非常危险的。赋权操作GRANT ALL PRIVILEGES ON db_name.* TO 'db_user'@'%' IDENTIFIED BY 'dn_user' WITH GRANT OPTION;&nbs...

阅读全文

linux mysql启动停止脚本

自己写的收藏下,免得每次都要重写,mark mark mark!系统约定,mysql编译在/usr/local/mysql下,数据存放路径是/data/mysql,如果你已经在/etc/init.d/下添加了服务来管理启动停止,最好不要再使用这个脚本,不然会有问题,但是解决这个问题也很简单,把mysql-bin.index这个删除掉就行了,再用/etc/init.d/下的服务来管理#bin/bash#author mercifunction mysql_start(){  &nbs...

阅读全文

mysql报错ERROR 2002 (HY000)的解决方法

启动mysql报错:ERROR 2002 (HY000): Can’t connect to local MySQL server throughsocket ‘/var/lib/mysql/mysql.sock’ (2)1、先查看/etc/rc.d/init.d/mysqldstatus看看mysql是否已经启动.另外看看是不是权限问题.2、确定你的mysql.sock是不是在那个位置,mysql-u你的mysql用户名-p-S...

阅读全文

mysql数据库中间件mysql-proxy实现读写分离配置

mysql集群架构方式很多,根据不同的需求做不一样的架构,简单一点的就是mysql的replication,也就是Mysql的复制功能,模式有:master-slaves,master-slaves-slaves,master-master-slaves等可以有多个分层,那么现在我所要说的是master-slaves的模式(其他的模式原理基本都一样),然后再通过mysql官方提供的Mysql-proxy实现读写分离,达到负载均衡的效果。前期的mysql主从配置这里不再赘述,主要讲下架构,主库192.168.128.131,从库192.168.128.13...

阅读全文

Linux下mysql主从AB复制配置

mysql服务器的主从配置,这样可以实现读写分离,也可以在主库挂掉后从备用库中恢复需要两台机器,安装mysql,两台机器要在相通的局域网内主机A:192.168.1.100从机B:192.168.1.101可以有多台从机1、先登录主机Amysql>GRANT REPLICATION SLAVE ON *.* TO 'backup'@'192.168.1.101' IDENTIFIED BY '123456';...

阅读全文

mysql创建新用户报错ERROR 1045

今天在mysql数据库中添加一个新用户CREATE USER 'demo'@'%' IDENTIFIED BY 'password'  GRANT ALL PRIVILEGES ON *.* TO 'demo'@ '%'FLUSH PRIVILEGES;然后用新用户登录报错ERROR 1045 (28...

阅读全文

mysql的binlog详解

什么是binlogbinlog日志用于记录所有更新了数据或者已经潜在更新了数据(例如,没有匹配任何行的一个DELETE)的所有语句。语句以“事件”的形式保存,它描述数据更改。binlog作用因为有了数据更新的binlog,所以可以用于实时备份,与master/slave复制和binlog有关参数log_bin设置此参数表示启用binlog功能,并指定路径名称log_bin_index设置此参数是指定二进制索引文件的路径与名称binlog_do_db此参数表示只记录指定数据库的二进制日志binlog_ignore_db此参数表示不记录指定的数据库的二进制日...

阅读全文