Mysql PARTITION 数据表分区技术

在这一章节里, 我们来了解下 Mysql 中的分区技术 (RANGE, LIST, HASH)

Mysql 的分区技术与水平分表有点类似, 但是它是在逻辑层进行的水平分表, 对于应用而言它还是一张表, 换句话说: 分区不是实际真正的对一张表进行拆分,分区之后表还是一个表,它是把存储文件进行拆分。

在 Mysql 5.1(后) 有了几种分区类型:

  • RANGE分区: 基于属于一个给定连续区间的列值, 把多行分配给分区

  • LIST分区: 类似于按 RANGE 分区, 区别在于 LIST 分区是基于列值匹配一个离散值集合中的某个值来进行选择

  • HASH分区: 基于用户定义的表达式的返回值来进行选择分区, 该表达式使用将要插入到表中的这些行的列值进行计算, 这个函数可以包含 Mysql 中有效的、产生非负整数值的任何表达式

  • KEY分区: 类似于按HASH分区,区别在于KEY分区只支持计算一列或多列,且MySQL 服务器提供其自身的哈希函数。必须有一列或多列包含整数值。

Read More

Minify把CSS和JS压缩和削减

Minify把CSS和JS压缩和削减(Minify:去掉空格回车符等),以及把多个CSS,JS文件整合到一个文件里。不要以为你的大带宽没有必要进行这类优化。使用它的理由更重要的是文件合并,而不是压缩,而是文件整合,这样可以减少浏览器端不断发出新的连接请求,就像FTP服务器一样,多个小文件和一个大文件耗时是不一样的。

安 装

  1. 下载最新的Minify然后解压缩到minify目录。
  2. 复制”min”目录到你的DOCUMENT_ROOT.

基本用法

假设你有http://localhost/a.js,http://localhost/b.js 两个文件。那么现在,你可以使用http://localhost/min/?f=a.js,b.js ,看看浏览器返回结果,是不是minify的两个js文件的内容?

Read More

CI批量插入数据方法

使用$this->db->insert_batch();

生成一条基于你所提供的数据的SQL插入字符串并执行查询。你可以向函数传递数组一个对象。下面是一个使用数组的例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$data = array(  
array(
'title' => 'My title' ,
'name' => 'My Name' ,
'date' => 'My date'
),
array(
'title' => 'Another title' ,
'name' => 'Another Name' ,
'date' => 'Another date'
)
);

$this->db->insert_batch('mytable', $data);

//生成:INSERT INTO mytable (title, name, date) VALUES ('My title', 'My name', 'My date'), ('Another title', 'Another name', 'Another date');

第一个参数包含表名,第二个是一个包含数据的关联数组。

注意: 每条记录的键名要保持一致,所有的值已经被自动转换为安全查询。

MySQL中安装样本数据库Sakila过程

通常情况下对于一个全新的MySQL服务器,没有任何数据供我们测试和使用。对此,MySQL为我们提供了一些样本数据库,我们可以基于这些数据库作基本的操作以及压力测试等等。本文描述的是安装sakila数据库。该数据库需要安装在MySQL 5.0以上的版本。以下是其描述。

1、下载种子数据库

下载位置:http://downloads.mysql.com/docs/sakila-db.zip

Read More