2017-01-12 8 views
0

私はmysqlのパーティション機能を使いたいです。ミリ秒(bigInt)の値を使用して、日にちにmysqlパーティショニングを使用することはできますか?

私はミリ秒をbigint(私はそれを変更することができないと仮定)として格納するlog_time列を持っています。

私は31のパーティションを1日に1つ(log_time値を使用して計算)します。私が試した何

alter table my_table partition by hash(day(from_unixtime(log_time/1000))) partitions 31; 

私が取得しています:このパーティション機能が許可されていません。 (

は、MySQLだけでパーティショニングのために計算されるように特定の機能は、ハッシュの一部にすることができますようで、それがFROM_UNIXTIMEだ)それらの一つではない(?)

どのように私はlog_timeにこの分割を達成することができますか?

ありがとうございます。

答えて

0

BY HASHを使用しないと、思ったように動作しません。特に処理を高速化することはできません。

代わりにBY RANGEとし、複雑な式は使用しないでください。ミリ秒を1日に刻む代わりに、曜日の定数をミリ秒単位で展開します。

古いデータをパージするように見えるので、BY RANGEがはるかに適しています。新しい一日の価値を得るには、DROP PARTITIONREORGANIZEを入力するだけです。詳細はこちらを参照してください。http://mysql.rjweb.org/doc.php/partitionmaint

関連する問題