
数据库
ImClive_wx
这个作者很懒,什么都没留下…
展开
-
MySQL表的数据量大小会影响索引的选择
现象新建了一张员工表,插入了少量数据,索引中所有的字段均在where条件出现时,正确走到了idx_nap索引,但是where出现部分自左开始的索引时,却进行全表扫描,与MySQL官方所说的最左匹配原则“相悖”。数据背景CREATE TABLE `staffs` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(24) NOT...原创 2019-07-03 09:38:31 · 4181 阅读 · 0 评论 -
MySQL ORDER BY主键id加LIMIT限制走错索引
背景及现象report_product_sales_data表数据量2800万;经测试,在当前数据量情况下,order by主键id,limit最大到49的时候可以用到索引report_product_sales_data_hq_code_orgz_id_index,大于49时就走PRIMARY主键索引。表结构CREATE TABLE `report_product_sales_dat...原创 2019-07-03 09:40:07 · 2290 阅读 · 0 评论 -
MySQL索引原理及使用
一、磁盘IO磁盘IO是非常高昂的操作,计算机操作系统做了一些优化,当一次IO时,不光把当前磁盘地址的数据,而是把相邻的数据也都读取到内存缓冲区内,因为局部预读性原理告诉我们,当计算机访问一个地址的数据的时候,与其相邻的数据也会很快被访问到。每一次IO读取的数据我们称之为一页(page)。具体一页有多大数据跟操作系统有关,一般为4k或8k,也就是我们读取一页内的数据时候,实际上才发生了一次IO,这...原创 2019-07-03 09:41:07 · 183 阅读 · 0 评论 -
MySQL分库分表
#一、分库分表类型##1、单库单表所有数据都放在一个库,一张表。##2、单库多表数据在一个库,单表水平切分多张表。##3、多库多表数据库水平切分,表也水平切分。#二、分库分表查询通过分库分表规则查找到对应的表和库的过程:如分库分表的规则是acc_id mod 4的方式,当用户新注册了一个账号,账号id的123,我们可以通过acc_id mod 4的方式确定此账号应该保存到Acc_...原创 2019-07-03 09:41:47 · 555 阅读 · 0 评论 -
Mysql锁
锁类型/引擎行锁表锁页锁MyISAM有InnoDB有有BDB(被InnoDB取代)有有锁的分类表锁:开销小,加锁快,不会死锁,粒度大,冲突率高,并发低。行锁:开销大,加锁慢,会死锁,粒度小,冲突率低,并发高。页锁:处于表锁和行锁之间,会死锁。锁的适用场景表锁:更适用于查询为主,按少量索引条件更新。行锁:更适用于大量按索引...原创 2019-07-03 09:44:10 · 143 阅读 · 0 评论 -
高性能MySQL之架构与历史
MySQL逻辑架构优化与执行MySQL会解析查询,创建内部数据结构(解析树),对齐进行优化(重写查询、决定表的读取顺序、选择合适的索引);使用explain,可以解释优化过程的各个因素,使用户知道服务器是如何进行优化决策的,并提供一个参考基准,便于重构查询和表、修改配置;优化器不关心表用的是什么存储引擎,但存储引擎对优化查询是有影响的;例:SELECT语句,解析查询之前,服务器先检查...原创 2019-07-03 09:51:06 · 130 阅读 · 0 评论 -
PHP数据库扩展mysql、mysqli及pdo
mysql<?php $conn = mysql_connect("localhost", "root", "") or die("Mysql connect error"); mysql_select_db("test", $conn); $res = mysql_query("select * from user"); var_dump($res);?&...原创 2019-07-04 09:24:32 · 719 阅读 · 0 评论