标签 - MySQL

MySQL    2017-10-13 18:06:28    228    0    0

建表优化

"IP地址存成 UNSIGNED INT"(inet_ntoa)

"如“性别”,使用 ENUM 而不是 VARCHAR"

"固定长度的表读取更快,但是浪费一些空间"

"绝大多数只需要读表和插入的操作的表,MyISAM会更好,在写操作和高级应用,比如事务,用InnoDB"(争议)

"垂直分割分出去的字段所形成的表,你不会经常性地去Join他们,不然的话,性能会是指数级的下降。"

"索引并不只是给主键或是唯一字段。如果某个字段经常用来搜索,就建立索引。"

MySQL    2017-10-09 21:35:27    249    0    0

MySQL 版本5.5.40

表结构如下
表结构
(text 为4K无意义数据)

测试以下几种情况

  1. user_id 无索引下sum 在text 之后
  2. user_id 无索引下sum 在text 之前
  3. user_id 有索引下sum 在text 之后
  4. user_id 有索引下sum 在text 之前

填充数据
填充数据

好了,下面开始吧
title

进行测试的SQL 为select sum(sum) as sum,user_id from test group by user_id order by sum desc


1. user_id 无索引下sum 在text 之后

title
title
title

2. user_id 无索引下sum 在text 之前

title
title
title

3. user_id 有索引下sum 在text 之后

title
title
title

4. user_id 有索引下sum 在text 之前

title
title
title


什么鬼?我都怀疑是不是我测试错了

索引大量重复的情况下,并不会快

统计user_id

title

有索引的话

title

MySQL    2017-07-21 18:35:52    195    0    0

  1. ///强制使用索引
  2. SELECT 字段 from with(index(索引名)) where num=@num

  1. //数据替换
  2. UPDATE SET 字段 = REPLACE(字段, '</td>', '' );