您好,欢迎光临! 推荐您使用Chrome浏览器访问本站。

MySQL分区(partion)概述

554 views
MySQL分区(partion)概述在MySQL中,InnoDB存储引擎长期支持表空间的概念,并且MySQL服务器甚至在分区引入之前,就能配置为存储不同的数据库使用不同的物理路径。分区(partion)更进一步,它允许你通过设置各种规则将一个表的各个分区跨文件系统存储。实际上,不同位置的不同表分区是作为一个单独的表来存储的。用户所选择的、实现数据分割的规则被称为分区函数(partioning function),这在MySQL中它可以是模数,或者是简单的匹配一个连续的数值区间或数值列表,或者是一个内部HASH函数,或一个线性HASH函数。 最常见是的水平分区(horizontal partitioning)......

MySQL5.6之Index Condition Pushdown(ICP,索引条件下推)

739 views
MySQL5.6之Index Condition Pushdown(ICP,索引条件下推)ICP(index condition pushdown)是mysql利用索引(二级索引)元组和筛字段在索引中的where条件从表中提取数据记录的一种优化操作。ICP的思想是:存储引擎在访问索引的时候检查筛选字段在索引中的where条件(pushed index condition,推送的索引条件),如果索引元组中的数据不满足推送的索引条件,那么就过滤掉该条数据记录。ICP(优化器)尽可能的把index condition的处理从server层下推到storage engine层。storage engine使用索引过过滤不相关的数据,仅返回符合index condition条件的数据给server层。也是说数据过滤尽可能在st......

PHP MySQL PDO持久化连接与关闭

801 views
PHP MySQL PDO持久化连接与关闭PDO持久化连接的方式来访问数据库,代码如下: <?php $type = 'mysql'; //数据库类型 $db_name = 'test'; //数据库名 $host = '127.0.0.1'; $username = 'root'; $password = 'ready'; $dsn = "$type:host=$host;dbname=$db_name"; try { //建立持久化的PDO连接 $pdo = new PDO($dsn, $username, $password, array(PDO::ATTR_PERSISTENT => true)); } catch (Exception $e) { die('连接数据库失败!'); } $stmt = $pdo->query('SELECT id, body FROM demo'); while ($row ......

mysql死锁-非主键索引更新引起的Deadlock

768 views
mysql死锁-非主键索引更新引起的Deadlock问题: 执行如下更新时产生死锁 UPDATE contactlist SET name=’xxx’ WHERE userid=’1′ AND contact_id=’90’ 报Deadlock found when trying to get lock; try restarting transaction 其中userid和c_contact_id都有索引,但不是主索引。 解决方式: 先通过userid=’1′ AND contact_id=’90’取得主键,再用主键更新。 注: 在采用INNODB的MySQL中,更新操作默认会加行级锁,行级锁是基于索引的,在分析死锁之前需要查询一下mysql的执行计划,看看是否用到了索引,用到了哪......

MySQL 重复插入时更新 insert into on dumplicate key update /replace into

613 views
MySQL 重复插入时更新 insert into on dumplicate key update /replace into方式1: insert into on dumplicate key update 例如,如果列 a 为 主键 或 拥有UNIQUE索引,并且包含值1,则以下两个语句具有相同的效果: 代码如下: INSERT INTO TABLE (a,c) VALUES (1,3) ON DUPLICATE KEY UPDATE c=c+1; UPDATE TABLE SET c=c+1 WHERE a=1; 方式2:replace into replace into 有三种形式: 1. replace into tbl_name(col_name, …) values(…) 2. replace into tbl_name(col_name, …) select … 3. replace into tbl_name set col_name=value, … 第一种形式类似于insert into的用法......