分类目录归档:数据库

读取mysql一个库下面的所有的表table

<?php require ‘class/db.php’;   $sql = "select * from information_schema.tables where table_schema=’ecshop’ and table_type=’base table’ order by TABLE_ROWS desc ";   $arr = $db->queryArray($sql);   //var_dump($arr); foreach ($arr as $k => $v) { $tbname = $v->TABLE_NAME; $rows = $v->TABLE_ROWS; echo … 继续阅读

发表在 PHP, 数据库 | 标签为 | 留下评论

redis操作命令大全

一、key pattern 查询相应的key   (1)redis允许模糊查询key  有3个通配符 *、?、[]   (2)randomkey:返回随机key     (3)type key:返回key存储的类型   (4)exists key:判断某个key是否存在   (5)del key:删除key   (6)rename key newkey:改名   (7)renamenx key newkey:如果newkey不存在则修改成功   (8)move key 1:将key移动到1数据库   (9)ttl key:查询key的生命周期(秒)   (10)expire key 整数值:设置key的生命周期以秒为单位   (11)pexpire key 整数值:设置key的生命周期以毫秒为单位   (12)pttl key:查询key 的生命周期(毫秒)   (13)perisist key:把指定key设置为永久有效 二、字符串类型的操作   (1)set key value [ex 秒数] … 继续阅读

发表在 数据库 | 标签为 , , | 留下评论

redis使用场景

不要放冷数据 首先,对于冷数据,无论大小,都不建议放在 Redis 中。Redis 数据要全部放在内存中,资源宝贵,把冷数据放在其中实在是一种浪费,冷数据放在普通的存储比如关系数据库中就好了。 冷数据的例子 1.网站的文章 2.几万年不变的数据 放热数据 尤其是写频繁的热数据,如果量比较小,是最适合放到 Redis 中的。 热数据的例子 1.用户注册数 2.文章阅读量 3.热度排行榜 4.用户订阅量 一个游戏,用户分数存储结构     ZADD leaderboard <score> <username> 例子:一个在线游戏你会需要 1.前100名高手榜 ZREVRANGE leaderboard 0 99 2.某一个用户在游戏的实时排名 ZRANK leaderboard <username> 3.强大的计数功能 这要感谢INCRBY和其他相似命令。 INCR user: EXPIRE     user: … 继续阅读

发表在 JAVA, 数据库 | 标签为 , | 留下评论

mac 下安装redis

本来以为mac下安装redis要折腾一会,完全出乎意外。和linux下基本一样 curl -O http://download.redis.io/releases/redis-3.2.4.tar.gz tar xzf redis-3.2.4.tar.gz $ cd redis-3.2.4 $ make test $ make install 搞定 启动redis $ src/redis-server 客户端 mac启动另外一个控制台 $ src/redis-cli redis> set foo bar OK redis> get foo "bar" 有点惊喜。上几天mac下安装PHP的图形处理,折腾了 好几天 redis的密码配置

发表在 JAVA, 数据库 | 标签为 , | 留下评论

mysql 的 MyISAM和 InnoDB的区别

  一、文件存储     MyISAM   每个MyISAM在磁盘上存储成三个文件。第一个文件的名字以表的名字开始,扩展名指出文件类型。   .frm文件存储表定义。   数据文件的扩展名为.MYD (MYData)。   索引文件的扩展名是.MYI (MYIndex)。   InnoDB   基于磁盘的资源是InnoDB表空间数据文件和它的日志文件,InnoDB 表的大小只受限于操作系统文件的大小,一般为 2GB   二、事务支持   MyISAM   MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持   InnoDB   InnoDB提供事务支持事务,外部键等高级数据库功能   三、mysql执行方式   MyISAM   如果执行大量的SELECT,MyISAM是更好的选择   InnoDB   1.如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表   2.DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除。   3.LOAD TABLE FROM MASTER操作对InnoDB是不起作用的,解决方法是首先把InnoDB表改成MyISAM表,导入数据后再改成InnoDB表,但是对于使用的额外的InnoDB特性(例如外键)的表不适用   四、AUTO_INCREMENT   每表一个AUTO_INCREMEN列的内部处理。   MyISAM为INSERT和UPDATE操作自动更新这一列。这使得AUTO_INCREMENT列更快(至少10%)。在序列顶的值被删除之后就不能再利用。(当AUTO_INCREMENT列被定义为多列索引的最后一列,可以出现重使用从序列顶部删除的值的情况)。   AUTO_INCREMENT值可用ALTER TABLE或myisamch来重置   对于AUTO_INCREMENT类型的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中,可以和其他字段一起建立联合索引   更好和更快的auto_increment处理   INNODB   如果你为一个表指定AUTO_INCREMENT列,在数据词典里的InnoDB表句柄包含一个名为自动增长计数器的计数器,它被用在为该列赋新值。   自动增长计数器仅被存储在主内存中,而不是存在磁盘上   关于该计算器的算法实现,参考AUTO_INCREMENT列在InnoDB里如何工作 … 继续阅读

发表在 数据库 | 标签为 , , | 留下评论

使用一个脚本监控mysql进程

#!/bin/sh ps -fe|grep mysqld |grep -v grep if [ $? -ne 0 ] then echo "start process….." service mysql start else echo "runing….." fi   DATE=`date +%Y%m%d%H%M%S` echo $DATE >> /backup/mysql/test.txt 0表示存在的 $? -ne 0 不存在,$? -eq 0 存在 vi … 继续阅读

发表在 Linux, 数据库 | 标签为 , , , | 留下评论

mysql 无故崩溃,自动退出解决方案

最近博客服务器的mysql mysql经常崩溃,挂了,不过我发现了的时候,重启就好了。基本一周来一次 2016-09-20 15:17:04 13896 [Note] Event Scheduler: Loaded 0 events 2016-09-20 15:17:04 13896 [Note] /opt/lampp/sbin/mysqld: ready for connections. Version: ’5.6.21′ socket: ‘/opt/lampp/var/mysql/mysql.sock’ port: 3306 Source distribution 2016-09-21 13:34:04 27385 mysqld_safe Number of processes running now: 0 2016-09-21 13:34:04 27385 … 继续阅读

发表在 数据库 | 标签为 , , | 留下评论

mysqldump 导出发生Lost connection to MySQL server during query

在mysqldump备份导出的时候类似用如下语句导出数据 mysqldump -uroot -p’passwd’ –opt –default-character-set=utf8 –triggers -R –hex-blob –single-transaction –no-autocommit –master-data=2 test_game mail >mail.sql 出现类似如下报错: mysqldump: Error 2013: Lost connection to MySQL server during query when dumping table `mail` at row: 1754283 查询资料 大概说是因为mysqldump来不及接受mysql server端发送过来的数据,Server端的数据就会积压在内存中等待发送,这个等待不是无限期的,当Server的等待时间超过net_write_timeout(默认是60秒)时它就失去了耐心,mysqldump的连接会被断开,同时抛出错误Got error: 2013: Lost connection。 … 继续阅读

发表在 数据库 | 标签为 , | 留下评论

ubuntu下安装service 无法启动问题

今天从ubuntu 下安装mysql apt-get install mysql-server 启动的时候发现 service mysql start Rather than invoking init scripts through /etc/init.d, use the service(8) utility, e.g. service mysql start   Since the script you are attempting to invoke has been converted to an Upstart job, … 继续阅读

发表在 Linux, 数据库 | 标签为 , | 留下评论

数据库Error:MySQL,reading initial communication packet

意外,就是你想不到的时候就会发生的。 今天一台在美国虚拟主机上的一个网站发生数据库无法链接问题。 数据库发生如下错误 MySQL:reading initial communication packet 解决方法之一: 网站访问出现如题错误,经过检查my.cnf,发现innodb_buffer_pool_size = 2048M 设置过大,调整为innodb_buffer_pool_size = 1024M即可,网上也有该问题的其他解决方法,但都不能解决我的问题。 Lost connection to MySQL server at ‘reading initial communication packet’ 错误解决 上次解决了这个问题,今天又碰到,突然失忆,又做了一番无用功后终于搞定,这次一定要记录下来,免得下次又浪费时间 1、修改mysql配置文件 vi /etc/my.cnf [mysqld]段加skip-name-resolve 在这个之前要把mysql的远程访问权限打开,或者再加skip-grant-table(不推荐) 2、修改hosts.allow vi /etc/hosts.allow 加mysqld : ALL : ALLOW mysqld-max … 继续阅读

发表在 数据库 | 标签为 , , | 留下评论