首页 技术教程 实用代码 注册破解 正则表达式 网址导航 电子书籍

如何提高MySQL中数据装载效率

很多时候关心的是优化SELECT 查询,因为它们是最常用的查询,而且确定怎样优化它们并不总是直截了当。相对来说,将数据装入数据库是直截了当的。然而,也存在可用来改善数据装载操作效率的策略,其基本原理如下: 成批装载较单行装载更快,因为在装载每个记录后,不需要刷新索引高速缓存;可在成批记录装入后才刷新。 在表无索引时装载比索引后装载更快。如果有索引,不仅必须增加记录到数据文件,而且还要修改每个索引以反映增加了的新记录。 较短的SQL 语句比较长的SQL 语句要快,因为它们涉及服务器方的分析较少,而且还因为将它们通过网络从客户机发送到服务器更快。这些因素中有一些似乎微不足道(特别是最后一个因素...
类别:数据库 - MySQL    查看:97    更新:2014-05-19

MySQL全文搜索的SQL写法学习

首先,大家先去下载一份dvbbs.php beta1的代码,解压后先抛开php代码,找出你的mysql手册,如果没有手册那么就直接看下面的实例操作吧! mysql全文搜索,sql的写法: MATCH (col1,col2,…) AGAINST (expr [IN BOOLEAN MODE | WITH QUERY EXPANSION]) 比如: SELECT * FROM articles WHERE MATCH (title,body) AGAINST (’database’); MATCH()函数对于一个字符串执行资料库内的自然语言搜索。一个资料库就是1套1个或2个包含在FULLTEXT内的列。搜索字符串作为对 AGAINST()的参数而被给定。对于表中的每一行, MATC...
类别:数据库 - MySQL    查看:110    更新:2014-05-19

MYSQL错误代码及出错信息对照

mysql的出错代码表,根据mysql的头文件mysql/include/mysqld_error.h整理而成。错误之处,请大家指正。 1005:创建表失败 1006:创建数据库失败 1007:数据库已存在,创建数据库失败 1008:数据库不存在,删除数据库失败 1009:不能删除数据库文件导致删除数据库失败 1010:不能删除数据目录导致删除数据库失败 1011:删除数据库文件失败 1012:不能读取系统表中的记录 1020:记录已被其他用户修改 1021:硬盘剩余空间不足,请加大硬盘可用空间 1022:关键字重复,更改记录失败 1023:关闭时发生错误 1024:读文件错误 1025:更改名字时发生错误 1026:写文件错误 1032:记录不存在 1036:数据表是只读的,不能对它进行修改 10...
类别:数据库 - MySQL    查看:100    更新:2014-05-19

PHP中操作MySQL的一些要注意的问题

对于 MySQL ,第一件你必须牢记的是它的每一行命令都是用分号 (;) 作为结束的,但……没有完全绝对的事,在这儿也是一样,当一行 MySQL 被插入在 PHP 代码中时,最好把后面的分号省略掉,例如: mysql_query ("INSERT INTO tablename (first_name, last_name) VALUES ('$first_name', $last_name')");  这是因为 PHP 也是以分号作为一行的结束的,额外的分号有时会让 PHP 的语法分析器搞不明白,所以还是省略掉的好。在这种情况下,虽然省略了分号,但是 PHP 在执行 MySQL 命令时会自动的帮你加上的。  另外还有一个不要加分号的情况。当你想把要字段的竖者排列显示下...
类别:数据库 - MySQL    查看:92    更新:2014-05-19

MYSQL 关键字 相关性排序 匹配度排序

曾今我也用LIKE ‘%kw%’ 来查找满足条件的数据,但是如果遇到多关键字,在排序上就出现了问题,而大家当然愿意把最匹配的搜索结果排在前列,而不是按其他标准排序。 打个比方,如果搜索关键字“IBM”,“服务器”, 首先,对搜索关键字的处理,代码如下: $kw = preg_replace(”/(s+)|( +)+/”, ” “, $kw);//替代空格,换行,tab,中文空格 $kw = preg_replace( “/(^s*)|(s*$)/ “, “”,$kw);//去除首尾空格 $kw = preg_replace(”/(s+)/”, ” “, $kw);//替换多个空格为一个空格 //$kw = preg_replace( “/[[:punct:]]/&rdqu...
类别:数据库 - MySQL    查看:100    更新:2014-05-19

Apache基于MySQL的身份验证

本文介绍在Apache中实现用户身份验证的方法,讨论如何在MySQL数据库中保存验证信息,然后通过mod_auth_mysql模块实现身份验证。      一、概述   前文讨论了在身份验证中使用数据库的方法,具体介绍了mod_auth_db模块和DB文件的使用。这里要介绍的是如何使用非常流行的MySQL数据库保存身份验证信息,再通过mod_auth_mysql访问MySQL数据库实现身份验证。      1.1 关于MySQL      MySQL是一种优秀的数据库服务器,具有体积小速度快的特点。MySQL以GPL方式发行,它的主页在http://www.mysql.com/。MySQL缺少某些昂贵的大型数据库所提供的功能,比如存储过程、触发子等等,但它具备了大多数...
类别:数据库 - MySQL    查看:101    更新:2014-05-19

MySQL修改root密码的多种方法

方法1: 用SET PASSWORD命令 mysql -u root mysql> SET PASSWORD FOR ‘root’@’localhost’ = PASSWORD(’newpass’); 方法2:用mysqladmin mysqladmin -u root password “newpass” 如果root已经设置过密码,采用如下方法 mysqladmin -u root password oldpass “newpass” 方法3: 用UPDATE直接编辑user表 mysql -u root mysql> use mysql; mysql> UPDATE user SET Password = PASSWORD(’newpass’) WHERE user = ‘root’; mysql> FLUSH PRIVILEGES; ...
类别:数据库 - MySQL    查看:109    更新:2014-05-19

mysql_insert_id()错误

mysql_insert_id –  取得上一步 INSERT 操作产生的 ID int mysql_insert_id ( [resource link_identifier]) mysql_insert_id() 返回给定的 link_identifier 中上一步 INSERT 查询中产生的 AUTO_INCREMENT 的 ID 号。如果没有指定 link_identifier,则使用上一个打开的连接。 如果上一查询没有产生 AUTO_INCREMENT 的值,则 mysql_insert_id() 返回 0。如果需要保存该值以后使用,要确保在产生了值的查询之后立即调用 mysql_insert_id()。 注: MySQL 中的 SQL 函数 LAST_INSERT_ID() 总是保存着最新产生的 AUTO_INCREMENT 值,并且不会在查询语...
类别:数据库 - MySQL    查看:109    更新:2014-05-19

mysql不知道root密码情况下五步修改root密码

1.停止MySQL的服务。 2.进入命令窗口,然后进入MySQL的安装目录,比如我的安装目录是d:mysql,进入d:mysqlbin 3.跳过权限检查启动MySQL, mysqld --skip-grant-tables 4. 然后,重新打开一个窗口,用空密码方式使用root用户登录 MySQL; mysql -h localhost -u root 5. 修改root用户的密码; mysql> update mysql.user set passWord=PASSWORD('新密码') where User='root'; mysql> flush privileges; mysql> quit...
类别:数据库 - MySQL    查看:91    更新:2014-05-19

在MySQL中获得更好的全文搜索结果

很多互联网应用程序都提供了全文搜索功能,用户可以使用一个词或者词语片断作为查询项目来定位匹配的记录。在后台,这些程序使用在一个SELECT查询中的LIKE语句来执行这种查询,尽管这种方法可行,但对于全文查找而言,这是一种效率极端低下的方法,尤其在处理大量数据的时候。 MySQL针对这一问题提供了一种基于内建的全文查找方式的解决方案。在此,开发者只需要简单地标记出需要全文查找的字段,然后使用特殊的MySQL方法在那些字段运行搜索,这不仅仅提高了性能和效率(因为MySQL对这些字段做了索引来优化搜索),而且实现了更高质量的搜索,因为MySQL使用自然语言来智能地对结果评级,以去掉不相关的项目。 这篇...
类别:数据库 - MySQL    查看:109    更新:2014-05-19

MySQL的Master/Slave数据同步配置

redhat 9.0 mysql3.23.57 mysql数据同步备份 A服务器: 192.168.1.2 主服务器master B服务器: 192.168.1.3 副服务器slave A服务器设置 #mysql –u root –p mysql>GRANT FILE ON *.* TO [email protected] IDENTIFIED BY ‘1234’; mysql>exit 上面是Master开放一个账号backup密码1234给IP:192.168.1.3有档案处理的权限 mysqladmin –u root –p shutdown 备份Master所有数据库..通常都用tar指令. #tar –cvf /tmp/mysql.tar /var/lib/mysql 注意:tar的时候,MySQL是要在stop情况下 在A机器上修改/etc/my.cnf 在[mysqld...
类别:数据库 - MySQL    查看:148    更新:2014-05-19

ACCESS数据库向MySQL快速迁移小程序

为开发的一个信息管理系统从以前试运行的开发机器上(Windows NT + IIS4.0 + Access)迁移至一台真正的Linux服务器上(Apache1.3.12 + PHP 4.03 + MySQL 3.23.26),其中数据库中的几十个表的内容迁移,开始让我小费了一些周折,从网上也下载了一些MySqL的客户软件或是数据库管理软件,写得较好的软件均有数据迁移功能,但其迁移方式不外乎两种,一种是采用文件引入方式,此种方式在处理数据库中有和分隔符相同的字符时,会产生错误,尤其是在处理ACCESS中的Memo字段,很容易出错,最后导致导出后的数据不是多了就是少了。而另一种支持ODBC直接导入的功能较强,基本可无错误地导入各个表的内容,但很遗憾,这必须是...
类别:数据库 - MySQL    查看:104    更新:2014-05-19

MySQL中的SQL TEXT DATE和SET数据类型

MySQL 数据表的字段必须有定义一个数据类型。这有大约 25 种选择,大部分都是直接明了的,就不多费口舌了。但有几个有必要提一下。      TEXT 不是一种数据类型,虽然可能有些书上是这么说的。它实际上应该是“ LONG VARCHAR ”或者“ MEDIUMTEXT ”。      DATE 数据类型的格式是 YYYY-MM-DD ,比如: 1999-12-08 。你可以很容易的用 date 函数来得到这种格式的当前系统时间:      date("Y-m-d")      并且,在 DATA 数据类型之间可以作减法,得到相差的时间天数:      $age = ($current_date - $birthdate);      集合 S...
类别:数据库 - MySQL    查看:92    更新:2014-05-19

MySQL数据的导出和导入工具mysqldump

MySQL数据的导出和导入工具:mysqldump 导出要用到MySQL的mysqldump工具,基本用法是: shell> mysqldump [OPTIONS] database [tables] 如果你不给定任何表,整个数据库将被导出。 通过执行mysqldump --help,你能得到你mysqldump的版本支持的选项表。 注意,如果你运行mysqldump没有--quick或--opt选项,mysqldump将在导出结果前装载整个结果集到内存中,如果你正在导出一个大的数据库,这将可能是一个问题。 mysqldump支持下列选项: --add-locks 在每个表导出之前增加LOCK TABLES并且之后UNLOCK TABLE。(为了使得更快地插入到MySQL)。 --add-drop-table 在每个creat...
类别:数据库 - MySQL    查看:101    更新:2014-05-19

MYSQL中怎样设列的默认值为Now()的介绍

MySQL目前不支持列的Default 为函数的形式,如达到你某列的默认值为当前更新日期与时间的功能,你可以使用TIMESTAMP列类型,下面就详细说明TIMESTAMP列类型: TIMESTAMP列类型 TIMESTAMP值可以从1970的某时的开始一直到2037年,精度为一秒,其值作为数字显示。 TIMESTAMP值显示尺寸的格式如下表所示: +---------------+----------------+ | 列类型| 显示格式  | | TIMESTAMP(14) | YYYYMMDDHHMMSS |  | TIMESTAMP(12) | YYMMDDHHMMSS  | | TIMESTAMP(10) | YYMMDDHHMM | | TIMESTAMP(8) | YYYY...
类别:数据库 - MySQL    查看:100    更新:2014-05-19

MySQL中修改密码及访问限制设置详解

MySQL是一个真正的多用户、多线程SQL数据库服务器。MySQL是以一个客户机/服务器结构的实现,它由一个服务器守护程序mysqld和很多不同的客户程序和库组成。由于其源码的开放性及稳定性,且与网站流行编 挥镅 PHP的完美结合,现在很多站点都利用其当作后端数据库,使其获得了广泛应用。处于安全方面的考虑,需要为每一用户赋于对不同数据库的访问限制,以满足不同用户的要求。下面就分别讨论,供大家参考。      一、MySQL修改密码方法总结   首先要说明一点的是:一般情况下,修改MySQL密码是需要有mysql里的root权限的,这样一般用户是无法更改密码的,除非请求管理员帮助修改。      方法一   使用phpM...
类别:数据库 - MySQL    查看:105    更新:2014-05-19