帖子标记 ‘MySQL’

MySQL Query Cache 小结

作者: seasun

顾名思义, Query Cache 就是用来缓存和 Query 相关的数据的。具体来说,Query Cache 缓存了我们客户端提交给 的 SELECT 语句以及该语句的结果集。大概来讲,就是将 SELECT 语句和语句的结果做了一个 HASH 映射关系然后保存在一定的内存区域中。

在大部分的 MySQL 分发版本中,Query Cache 功能默认都是打开的,我们可以通过调整 MySQL Server 的参数选项打开该功能。主要由以下5个参数构成:

  • query_cache_limit:允许 Cache 的单条 Query 结果集的最大容量,默认是1MB,超过此参数设置的 Query 结果集将不会被 Cache
  • query_cache_min_res_unit:设置 Query Cache 中每次分配内存的最小空间大小,也就是每个 Query 的 Cache 最小占用的内存空间大小
  • query_cache_size:设置 Query Cache 所使用的内存大小,默认值为0,大小必须是1024的整数倍,如果不是整数倍,MySQL 会自动调整降低最小量以达到1024的倍数
  • query_cache_type:控制 Query Cache 功能的开关,可以设置为0(OFF),1(ON)和2(DEMAND)三种,意义分别如下:
    • 0(OFF):关闭 Query Cache 功能,任何情况下都不会使用 Query Cache
    • 1(ON):开启 Query Cache 功能,但是当 SELECT 语句中使用的 _NO_CACHE 提示后,将不使用Query Cache
    • 2(DEMAND):开启 Query Cache 功能,但是只有当 SELECT 语句中使用了 SQL_CACHE 提示后,才使用 Query Cache
  • query_cache_wlock_invalidate:控制当有写锁定发生在表上的时刻是否先失效该表相关的 Query Cache,如果设置为 1(TRUE),则在写锁定的同时将失效该表相关的所有 Query Cache,如果设置为0(FALSE)则在锁定时刻仍然允许读取该表相关的 Query Cache。

(全文 …)

之alter语句用法总结

1:删除列

ALTER TABLE 【表名字】 DROP 【列名称】

2:增加列

ALTER TABLE 【表名字】 ADD 【列名称】 INT NOT NULL COMMENT ‘注释说明’

3:修改列的类型信息

ALTER TABLE 【表名字】 CHANGE 【列名称】【新列名称(这里可以用和原来列同名即可)】 BIGINT NOT NULL COMMENT ‘注释说明’
(全文 …)

昨晚一个客户联系我做网站,提出的要求是需要把客户提供的excel文件里面的数据导入到mysql数据库,最常用的方法就是先把xls文件导出为csv格式的文件,然后在解析csv格式的文件 导入到mysql数据库。方法比较冗余,而且分好几步进行,很不方便,断桥残雪今天介绍一种方法是直接跳过csv的 中间环节,直接把excel文件导入mysql数据库。

首先我们需要下载-ExcelReader这是一个开源的项目,主要是来解析excel的文件,下载地 址:http://sourceforge.net/projects/phpexcelreader, 下载之后解压,主要用到excel文件夹里面的两个文件reader.php和oleread.php(这个文件默认的是oleread.inc,不清楚 为啥,一堆e文,没看,直接改名即可)。

在reader.php文件中找到以下类似代码(第一行既是),改成正确的oleread.php路径即可:require_once 'oleread.php';
(全文 …)

经常会碰到需要从数据库中导出数据到Excel文件,用一些开源的类库,比如PHPExcel,确实比较容易实现,但对大量数据的支持很不好,很容易到达PHP内存使用上限。这里的方法是利用fputcsv写CSV文件的方法,直接向浏览器输出Excel文件。
(全文 …)

Innodb数据库对于已经删除的数据只是标记为删除,并不真正释放所占用的磁盘空间,这就导致InnoDB数据库文件不断增长。如果想彻底释放这些已经 删除的数据,需要把数据库导出,删除InnoDB数据库文件,然后再倒入。 下面是基本的步骤:

1 使用mysqldump命令将InnoDB数据库导出

2 停止MySQL

3 删除所有InnoDB数据库文件和日志

4 启动MySQL并自动重建InnoDB数据库文件和日志文件

5 导入前面备份的数据库文件

有一点要注意,你配置了MySQL数据库复制,当你导入数据库备份文件的时候,所有的Query都可能会被写入Binlog,可以执行SET _LOG_BIN = 0;暂时停止Binlog的写入。

还有一种方式是在创建数据库的时候设置innodb_file_per_table,这样InnoDB会对每个表创建一个数据文件,然后只需要运 行OPTIMIZE TABLE 命令就可以释放所有已经删除的磁盘空间。

在MySQL-Front v5.0 build 1.126下测试通过。

NAME:xok.la

Key:

e1Ns2izlxZwu9Lb4X8qlcWGoxQpUU+hI
8CsVahbbMjpH2F5PfAgosxzjGhATkWJu
UsE8QXsqfZ5iSs9yM7D2XMOUVFpKud9K
2977pO7s1Efi72iGWxUn+209a6tulHkq
5cgLtLSpWsK7uvsOeG4UgYZoRnbp+0T4
PJEplfQk9YpMfY9yYJG+NOUbvM1+kMcf
CWd9iq3AZHrFHTm5qpSWEiJamTtIpyAD
4UuLXoNyojh5Ne0S6SWxxUJsUQS3DStB
o/e0aVBzhRwmrtvg4QdUIg==

注册机下载:/file/2009/03/MySQL-Front5_key.rar

SQL注入漏洞曾经是Web应用程序的噩梦,CMS、BBS、Blog无一不曾受其害。

SQL注入的原理

以往在Web应用程序访问数据库时一般是采取拼接字符串的形式,比如登录的时候就是根据用户名和密码去查询:

string = "SELECT TOP 1 * FROM [User] WHERE UserName = ‘” + userName + “‘ AND Password = ‘” + password + “‘”;

其中userName和password两个变量的值是由用户输入的。在userName和password都合法的情况下,这自然没有问题,但是 用户输入是不可信的,一些恶意用户只要用一些技巧,就可以绕过用户名、密码登录。

假设password的值是”1′ or ‘1′ = ‘1“,userName的值随便取,比如是”abc”,那变量sql的 值就是:
(全文 …)

板凳注:在日常开发过程中,其实我更偏爱使用 -Front 这款GUI工具,使用起来决不亚于Navicat,尤其是在更加字段值过滤数据时,相当便捷。
这款软件也是收费的,所幸的是,她也有提供30天的试用。

接下去请看 Rob Gravelle 推荐的10款最好MySQL GUI的工具

绝大多数的关系数据库都明显不同于MS Access,它们都有两个截然不同的部分:后端作为数据仓库,前端作为用于数据组件通信的用户界面。这种设计非常巧妙,它并行处理两层编程模型,将数据 层从用户界面中分离出来,同时运行数据库软件制造商专注于它们的产品强项:数据存储和管理。它同时为第三方创建大量的应用程序提供了便利,使各种数据库间 的交互性更强。这类产品包括Embarcadero Rapid SQL和Oracle Developer。这里有十款优秀的MySQL图形化界面。

1. Workbench

制造商:Sun Systems/Oracle
网站:http://dev.mysql.com/downloads/workbench/
价格:免费
许可证:GPL License
支持平台:Microsoft Windows,Mac OS X,Linux
(全文 …)

如果说哪个开源程序不需要介绍大家就认识,那一定是phpMyAdmin,一款流行的MySQL数据库的Web管理界面。而出乎人意料的是,他们的团队只有仅仅4个人来支持整个phpMyAdmin。MySQL是全球最流行的Web程序数据库,而phpMyAdmin让MySQL更易于管理。phpMyAdmin允许数据库设计师连接MySQL,查看他们具有权限的所有数据库和数据表,并在 上面执行操作,如创建和调整表结构、插入和更新数据、导入和导出,以及在多个服务器上同步数据。

phpMyAdmin是SourceForge.net上“最活跃” 和“下载量最多”的程序。phpMyAdmin项目主导人之一的Marc Delisle说,像phpMyAdmin这样流行的程序,难题之一是如何支持如此之多的用户。“我们的用户范围非常宽,一些人精通数据库原理,而另一些 则几乎是门外汉。我们努力为不同用户提供支持,这非常不容易。另一个难题是是处理web环境自身的问题,如应对不同的操作系统,web服务器问题,以及浏 览器兼容性问题”。

你也许认为如此流行的项目需要很多开发者来维护,而据Delisle透露,“不算翻译人员,当前我们实际上只有4名开发者,因此在沟通协作上完全没 有问题。其他人员虽然没有参与代码编写,但他们也在负责着项目的重要组成部分,如维护项目wiki、在IRC上提供帮助、帮我安排好phpMyAdmin 的各类会议等等。”

phpMyAdmin项目同时欢迎来自用户的贡献。“这是一个社区项目,”Delisle说到,“是的,人们可以建议新的功能,但我们更希望用户给 项目贡献真正的代码,或参与到我们超过60种语言的翻译工作中来。”

“近几年,通过加入Google Summer of Code,我们实现了一些重大的新功能。参与GSoC的一个巨大好处就是为我们带来了很多活跃的开发者。”

phpMyAdmin于2001年进驻SourceForge.net。“SourceForge很好的满足了我们的需求,我们找不到换到其他平台 的理由。”Delisle说。“但是同时,我们在我们的SourceForge主页上发现很多用户在抱怨下载出错,希望SourceForge在这方面能 做得更好。”

不要轻易就直接执行SQL语句来折腾你的数据库。但有的时候,使用SQL可以大大提高你的办事效率,或者有的时候,你不得不用SQL来改变一些东西;比如,WordPress的默认账户名称“admin”,由于这个账户使用过于广泛,日夜总是让你觉得提心吊胆的,于是就萌生了一定要把“admin”这几个字换成其它的;比如,你想收集所有留言者的邮箱地址来实现你的垃圾营销目的,比如我想把站内所有含链接的留言完全删掉!

本文为大家介绍19条 WordPress 实用的 SQL 查询语句,某天你可能就会用到。

使用方法:

进入你主机的phpmyadmin,选择你的WordPress数据,点击SQL选项卡,在文本框中输入SQL查询语句,执行!

高度注意:
(全文 …)