@chenxuxiong
2016-05-23T08:55:35.000000Z
字数 447
阅读 374
数据库
数据库遇到百万级别的表的查询优化:
1、首先要说的是创建索引会提高搜索速度
2、不要使用like %xx%,or关键字或者一些函数,这个会导致索引失效,使用like查询都是进行全表扫描。可以使用like %x 或者like x%
3、可以使用第三方框架:利用lucene建立分词索引,这样查询速度会得到优化。
4、不要用join了,用最原始的办法一个表一个表的查,效率会更高点,join数据条数是相乘的
5、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。
6、使用limit关键字进行限制查询每页查询条数。
7、避免sort,如果场景适合的话,可以利用联合索引。
8、如果mysql估计使用全表扫描要比使用索引快,则不使用索引
9、小表查询不要使用索引
10、使用预编译语句缓存sql语句
为了要查一条数据而要去连接一张百万级别的表)怎么解决?
可以利用缓存数据库memcached或redis,要了解memcached,了解他的主要参数和主要作用,优势在哪里。