-
python结合mysql实现的简单队列以及跨进程锁实例代码
本文是一个python结合mysql实现的简单队列以及跨进程锁的示例代码,感兴趣的朋友可以参考下 通常在我们进行多进程应用开发的过程中,不可避免的会遇到多个进程访问同一个资源(临界资源)的状况,这时候必须通过加一个全局性的锁,来实现资源的同步访问(即:同一时间里只能有一个进程访问资源)。 举个例子如下: 假设我们用mysql来实现一个任务队列,实现的过程如下: 1. 在Mysql中创建Job表,用于储存队列任务,如下: create table jobs( id auto_increment not null primary key, message text not null, job_status not null default 0 ); message 用来存储任务信息,job_status用来标识任务状态,假设只有两种状态,0:在队列中, 1:已出队列 2. 有一个生产者进程,往job表中放新的数据,进行排队: insert into jobs(messag...
数据库操作教程 2014-11-30 01:35:48 -
mysql 性能的检查和优化方法
本文为大家整理了一些mysql性能分析及优化方面的知识,感兴趣的同学参考下. mysql在遇到严重性能问题时,一般都有这么几种可能 1、索引没有建好; 2、sql写法过于复杂; 3、配置错误; 4、机器实在负荷不了; 1、索引没有建好 如果看到mysql消耗的cpu很大,可以用mysql的client工具来检查。 在linux下执行 /usr/local/mysql/bin/mysql -hlocalhost -uroot -p 输入密码,如果没有密码,则不用-p参数就可以进到客户端界面中...
数据库操作教程 2014-11-30 01:25:01 -
mysql limit查询优化分析
本文 为大家讲解的是mysql 的limit优化方法,MYSQL的优化是非常重要的。其他最常用也最需要优化的就是limit...
数据库操作教程 2014-11-30 01:23:31 -
MYSQL 小技巧 -- LAST_INSERT_ID
本文为大家讲解的是mysq中的一个小技巧,LAST_INSERT_ID,从字面上理解就是获取 最后一个写入的主键id,感兴趣的同学参考下. 用PHP调用mysql , 内置的LAST_INSERT_ID() 这个函数可能没有什么人用,用的最多的还是 mysql_insert_id() 其实,这两个是有区别的,LAST_INSERT_ID() 能返回 bigint 值的id。而,mysql_insert_id 返回的是 int ...
数据库操作教程 2014-11-30 01:21:57 -
php mysql Errcode: 28 终极解决方法
本文为大家讲解的是php mysql Errcode: 28 终极解决方法,碰到这类问题的朋友可以参考下。 perror 28 Error code 28: No space left on device SQL语句执行错误:SELECT title,gid FROM blog_blog WHERE date < 1246200383 and hide = 'n' and type='blog' ORDER BY date DESC LIMIT 1 Error writing file 'C:\WINDOWS\TEMP\MY9B6F.tmp' (Errcode: 28) 解决方法: 1.释放C:\WINDOWS\TEMP空间 2.因为原表太大,所以查询时生成的临时表过大,因此出错...
数据库操作教程 2014-11-30 01:18:40 -
新安装的MySQL数据库需要注意的安全知识
在你自己安装了一个新的MySQL服务器后,你需要为MySQL的root用户指定一个目录(缺省无口令),否则如果你忘记这点,你将你的MySQL处于极不安全的状态(至少在一段时间内)。 在Unix(Linux)上,在按照手册的指令安装好MySQL后,你必须运行mysql_install_db脚本建立包含授权 表的mysql数据库和初始权限...
数据库操作教程 2014-11-30 01:17:23 -
mysql5的sql文件导入到mysql4的方法
本文为大家讲解的是高版本的mysql生成的sql文件导入到低版本mysql中的方法,感兴趣的同学参考下. 有时候用到将高版本的数据库转移到低版本的数据库中,下面是mysql5数据转到mysql4的方法 1、将mysql5里导出的sql文件导入到mysql5中。 2、用mysqldump -uroot -p1234 --opt --compatible=mysql40 -A -re:localhost.sql --compatible=name参数描述如下: --compatible=name Change the dump to be compatible with a given mode. By default tables are dumped in a format optimized for MySQL. Legal modes are: ansi, mysql323, mysql40, postgresql, oracle, mssql, db2, maxdb, no_key_options, no_table_options, no_field_op...
数据库操作教程 2014-11-30 01:15:49 -
使用Limit参数优化MySQL查询的方法
我们在做一些查询的时候总希望能避免数据库引擎做全表扫描,因为全表扫描时间长,而且其中大部分扫描对客户端而言是没有意义的。那么在 MySQL 中有那些方式是可以避免全表扫面的呢?除了我们大家很熟悉的通过使用索引列或分区等方式来进行查询的优化之外还有那些呢? 前些天看了一个老外写的程序,在 MySQL 查询中使用了很多 Limit 关键字,这就让我很感兴趣了,因为在我印象中, Limit 关键字似乎更多被使用 MySQL 数据库的程序员用来做查询分页(当然这也是一种很好的查询优化),那在这里举个例子,假设我们需要一个分页的查询 ,Oracle中一般来说都是用以下 SQL 句子实现: SELECT * FROM ( SELECT a1.*, rownum rownum_ FROM testtable a1 WHERE rownum > 20) WHERE rownum_ <= 1000 这个语句就能查询到 testtable 表中的 20 到 1000 记录,而且还需要嵌套查询,效率不会太高,看看 MySQL 的实现: SELECT * FROM testta...
数据库操作教程 2014-11-30 01:14:13 -
用mysql触发器自动更新memcache的实现代码
本文为大家讲解的是使用mysql触发器自动更新memcache的实现代码,非常实用的一个技巧,感兴趣的同学参考下. mysql 5.1支持触发器以及自定义函数接口(UDF)的特性,如果配合libmemcache以及Memcached Functions for MySQL,就能够实现memcache的自动更新。简单记录一下安装测试步骤...
数据库操作教程 2014-11-30 01:13:26 -
Mysql错误:mysql服务无法启动 发生系统错误1067的解决办法
本文主要为大家讲解的是Mysql错误:mysql服务无法启动 发生系统错误1067的解决办法 ,非常实用,感兴趣的同学参考下。 mysql错误如下图: 问题原因: 将本地的Apache+MySQL+PHP环境移植到别人电脑,其中mysql中的data没有拷贝,导致别人电脑运行mysql时出现“mysql服务无法启动 发生系统错误1067”的错误...
数据库操作教程 2014-11-30 01:11:02 -
memcached 和 mysql 主从环境下php开发详解
本文为大家讲解的是memcached 和 mysql 主从环境下php开发详解及思路,感兴趣的同学参考下。 一般的大站通常做法是 拿着内存当数据库来用(memcached). 和很好的读 写分离 备份机制 (mysql 的主从) 在这样的环境下我们怎么进行PHP开发呢...
PHP 2014-11-29 23:45:16 -
使用python将mdb数据库文件导入postgresql数据库示例
本文是一个python实现的可以将mdb数据库文件导入到postgresql数据库的示例代码,非常实现的一个功能,感兴趣的同学参考下. mdb格式文件可以通过mdbtools工具将内中包含的每张表导出到csv格式文件。由于access数据库和postgresQL数据库格式上会存在不通性,所以使用python的文件处理,将所得csv文件修改成正确、能识别的格式 导入脚本说明(此脚本运行于linux): 1.apt-get install mdbtools,安装mdbtools工具 2.将mdb 文件拷贝到linux虚拟机中,修改脚本中mdb文件目录‘dir' 3.修改服务器及数据库配置 4.执行脚本 # -*- encoding: utf-8 -*- import os import re import psycopg2 import csv #mdb文件目录 dir = r'/home/kotaimen/mdb_file/' mdb_tbl_dic =...
PHP 2014-11-29 11:11:14