0%

MySQL索引

总结一下索引失效情况:leihen的博客

针对于某些长字符串,可以通过前缀索引优化。

1
2
/*查询表s1中name列的前缀字符串出现次数*/
SELECT count(*) as a,LEFT(name,3) as b from s1 GROUP BY b ORDER BY b LIMIT 100;

SQL语句在数据库中到底是如何运行的?

系统从磁盘读取数据到内存时是以磁盘块(block)为基本单位的,位于同一个磁盘块中的数据会被一次性读取出来,而不是需要什么取什么。

InnoDB存储引擎有页(Page)的概念,页是磁盘管理的最小单位。InnoDB存储引擎中默认每个页的大小为16KB,通过参数Innodb_page_size将页的大小设置为4K、8K、16K,在MySQL中可以通过如下命令查看页的大小。

1
show variables like 'innodb_page_size'