目前系统有些查询(只是单表查询)不走索引导致系统速度变慢。
问题1:把25个字段全部加上索引是不是一个好的方案,会不会带来其他问题? 问题2:如果表数据量可能会在短期增长到800万,在不考虑分表的情况下,有没有什么比较好的方法?
PS:表引擎是 innodb. 服务器配置:双核cpu 2.4Ghz ,1G内存.. 除了跑mysql还跑了nginx.. 硬件确实有点拙计..
学习是最好的投资!
不加硬體的情況下要優化基本只有改善業務邏輯,或者適當加索引(寫入速度換讀取速度) 或者內存緩存了,不過1G的內存也捉急……
有硬體預算的話自然有一百種方法可以優化,其中最粗暴&低成本的方法是加一塊SSD放數據庫,800W數據平均一條15K的話240G的差不多夠了
可針對慢查詢最佳化。索引主要對where後面的條件欄位十分有效,可嘗試建立。
索引利於查詢,增加資料就會變慢,估計索引過多也不好。
使用PostgreSQL的GIN索引,是最簡單有效的方法,詳細參考:高並發低基數多字段任意組合查詢的最佳化
不加硬體的情況下要優化基本只有改善業務邏輯,或者適當加索引(寫入速度換讀取速度) 或者內存緩存了,不過1G的內存也捉急……
有硬體預算的話自然有一百種方法可以優化,其中最粗暴&低成本的方法是加一塊SSD放數據庫,800W數據平均一條15K的話240G的差不多夠了
可針對慢查詢最佳化。索引主要對where後面的條件欄位十分有效,可嘗試建立。
索引利於查詢,增加資料就會變慢,估計索引過多也不好。
使用PostgreSQL的GIN索引,是最簡單有效的方法,詳細參考:高並發低基數多字段任意組合查詢的最佳化