MySQL数据库优化
Mr羽墨青衫
专注
展开
-
前三范式概述
1,MySQL优化包含的内容,由上到下重要性降低。l 数据库(表)设计合理,表的设计要符合3NF,有时我们需要适当的逆范式。l SQL语句优化。l 数据的配置。 l 适当硬件配置和操作系统。2,第一范式1NF。1NF是对属性原子性的约束,要求属性具有原子性,不可以再分解(只要是关系型数据库都满足1NF)3,第二范式2NF。在满足1NF的基础上,2NF要求记录原创 2013-11-04 21:58:53 · 751 阅读 · 0 评论 -
SQL语句优化,基本介绍
使用工具找出导致速度变慢的sql语句。1,SQL优化的一般步骤:(1)通过show status命令了解各种SQL的执行频率。(2)定位执行效率较低的SQL语句,重点是select语句。(核心)(3)通过explain分析低效率的SQL语句的执行情况。(4)确定问题并采取相应的优化措施。 面试题:SQL语句有几类?l DDL,数据定义语言,create alter原创 2013-11-06 11:18:27 · 939 阅读 · 0 评论 -
SQL优化:索引,explain
从100号部门开始,创建10个部门。delimiter $$drop procedure insert_dept $$create procedure insert_dept(in start int(10),in max_num int(10))begin declare i int default 0; set autocommit = 0; repeat set i =原创 2013-11-06 11:27:23 · 991 阅读 · 0 评论 -
SQL语句优化经典小技巧
1,对于MyISAM引擎,当导入大批量数据的时候,可以先将他的一些keys禁用掉:alter table table_name disable keys;再加载数据:loading data;再重新启用keys:altertable table_name enable keys;如果不禁用keys会比较慢,因为只要向里添加一条数据就做索引,就会很慢,禁用以后,先将数据导入进去,再启原创 2013-11-06 11:31:04 · 867 阅读 · 0 评论 -
表的垂直分割和水平分割
1,水平分割:例:QQ的登录表。假设QQ的用户有100亿,如果只有一张表,每个用户登录的时候数据库都要从这100亿中查找,会很慢很慢。如果将这一张表分成100份,每张表有1亿条,就小了很多,比如qq0,qq1,qq1...qq99表。用户登录的时候,可以将用户的id%100,那么会得到0-99的数,查询表的时候,将表名qq跟取模的数连接起来,就构建了表名。比如123456789用户,取模的原创 2013-11-06 11:31:51 · 3000 阅读 · 0 评论