Category: Database

0

几个常见的SQL面试题

1、表一test1 id fgid source,表二test2 id fgid cuid,test1的fgid和source是一一对应的,求每个source的cuid的个数。 思路:第一遍读这个题有点晕,不知所云。然后反复读了几遍,终于有所顿悟,不就是求表一的fgid对应表二的fgid行数数吗。 考察点: right join 数据实例: test1                                          ...

1

Mysql 基准测试

为什么要进行Mysql基准测试?答案显而易见,如果在一个模拟的环境中系统设计能承受住压力并且能满足性能目标,那么产品上线时我们是不是可以更放心了。

Mysql的存储引擎 0

Mysql的存储引擎

在文件系中,Mysql将每个数据库(也可称为schema)保存为数据目录下的子目录。创建表时,Mysql会在数据子目录下创建一个和表名相同的.frm文件保存表的定义。可以使用SHOW TABLE STATUS 命令查看表的信息。

Mysql多版本并发控制

Mysql多版本并发控制

Mysql大多数事务型存储引擎实现的都不是简单的行级锁。为了提升并发性能,他们一般都实现了多版本并发控制(MVCC)。不仅仅是Mysql,包括Oracle、PostgreSQL等他其他数据库系统也都实现了MVCC。

Mysql事务 0

Mysql事务

事务就是一组原子性的Sql查询,或者是一个独立的工作单元。事务内的语句,要么全部执行成功,要么全部执行失败。

Mysql并发控制 2

Mysql并发控制

无论何时,只要有多个请求需要在同一时刻修改或提取数据,就会存在并发控制的问题。 设计良好的数据库系统都会用锁来防止数据算损坏,如果客户端修改数据,而数据已经被其他客户端锁住,那就必须等待,直到释放锁才能进行修改。

0

Mysql逻辑架构

本人最近在系统学习Mysql,决定写成博客记录下学习过程。内容多摘自书籍再加上自己的理解,希望可以对各位有所帮助,也能使自己加深印象。如果博客内容有错,希望各位大神指出。

Mysql在命令行下引入sql文件 0

Mysql在命令行下引入sql文件

高手一般都在命令行里操作mysql,今天介绍一个常用的命令–导入sql文件。 mysql -u root -p database_name < file_name file_name 最好写绝对路径。

初识MongoDB 1

初识MongoDB

到了新公司,没想到公司有用Mongo数据库,这让从未接触过MongoDB的我有点手足无措,只能恶补了。

mySQL优化 my.ini 配置说明(转) 0

mySQL优化 my.ini 配置说明(转)

转自:http://www.oicto.com/mysql%E4%BC%98%E5%8C%96-my-ini-%E9%85%8D%E7%BD%AE%E8%AF%B4%E6%98%8E/

windows mysql 自动备份的几种方法(转) 0

windows mysql 自动备份的几种方法(转)

1、复制date文件夹备份 ============================ 假想环境: MySQL   安装位置:C:\MySQL 论坛数据库名称为:bbs 数据库备份目的地:C:\db_bak\ ============================ 新建db_bak.bat,写入以下代码

(转)php防sql攻击—— mysql_real_escape_string 的使用 0

(转)php防sql攻击—— mysql_real_escape_string 的使用

定义和用法 mysql_real_escape_string() 函数转义 SQL 语句中使用的字符串中的特殊字符。 下列字符受影响: \x00 \n \r \ ‘ “ \x1a 如果成功,则该函数返回被转义的字符串。如果失败,则返回 false。 语法 mysql_real_escape_string(string,connection) 参数 描述 string 必需。规定要转义的字符串。 connection 可选。规定 MySQL 连接。如果未规定,则使用上一个连接。 说明 本函数将 string 中的特殊字符转义,并考虑到连接的当前字符集,因此可以安全用于 mysql_query()。 提示和注释 提示:可使用本函数来预防数据库攻击。 例子 例子 1 例子 2...

php数据库基本安全措施 0

php数据库基本安全措施

记住一条简单的原则:深入防御。 1 连设计数据库 第一步一般都是创建数据库,除非是使用第三方的数据库服务。当创建一个数据库的时候,会指定一个所有者来执行和新建语句。通常,只有所有者(或超级用户)才有权对数据库中的对象进行任意操作。如果想让其他用户使用,就必须赋予他们权限。 应用程序永远不要使用数据库所有者或超级用户帐号来连接数据库,因为这些帐号可以执行任意的操作,比如说修改数据库结构(例如删除一个表)或者清空整个数据库的内容。 应该为程序的每个方面创建不同的数据库帐号,并赋予对数据库对象的极有限的权限。仅分配给能完成其功能所需的权限,避免同一个用户可以完成另一个用户的事情。这样即使攻击者利用程序漏洞取得了数据库的访问权限,也最多只能做到和该程序一样的影响范围。 鼓励用户不要把所有的事务逻辑都用 web 应用程序(即用户的脚本)来实现。最好用视图(view)、触发器(trigger)或者规则(rule)在数据库层面完成。当系统升级的时候,需要为数据库开辟新的接口,这时就必须重做所有的数据库客户端。除此之外,触发器还可以透明和自动地处理字段,并在调试程序和跟踪事实时提供有用的信息。 2 连接数据库 把连接建立在 SSL 加密技术上可以增加客户端和服务器端通信的安全性,或者 SSH 也可以用于加密客户端和数据库之间的连接。如果使用了这些技术的话,攻击者要监视服务器的通信或者得到数据库的信息是很困难的。 3 加密存储模型 SSL/SSH 能保护客户端和服务器端交换的数据,但 SSL/SSH 并不能保护数据库中已有的数据。SSL 只是一个加密网络数据流的协议。 如果攻击者取得了直接访问数据库的许可(绕过 web 服务器),敏感数据就可能暴露或者被滥用,除非数据库自己保护了这些信息。对数据库内的数据加密是减少这类风险的有效途径,但是只有很少的数据库提供这些加密功能。 对于这个问题,有一个简单的解决办法,就是创建自己的加密机制,然后把它用在 PHP 程序内。PHP 有几个扩展库可以完成这个工作,比如说 Mcrypt 和 Mhash 等,它们包含多种加密运算法则。脚本在插入数据库之前先把数据加密,以后提取出来时再解密。有关加密如何工作的例子请参考相关手册。...

0

五种修改Mysql密码的办法

一 、(适用于管理员或者有全局权限的用户重设其它用户的密码) 进入命令行模式 mysql -u root mysql mysql> UPDATE user SET password=PASSWORD(“your new password”) WHERE user= ‘ your mysql username’; mysql> FLUSH PRIVILEGES; mysql> QUIT 二、(应用同上,只是方法不同) mysql -u root mysql mysql> SET PASSWORD FOR...